 
   (gen-args
     [ctx]
-    [(gen/vector
-       (gen/fmap
-         (fn [[id data]]
-           (assoc data :id id))
-         (gen/tuple
-           (gen-id ctx)
-           (gen-some-map
-             :a gen/large-integer
-             :b gen/boolean
-             :c (gen/scale #(/ % 10) gen/string)
-             :d (gen/double* {:NaN? false, :infinite? false})))))])
+    [(gen/vector (gen-record ctx))])
 
   (apply-op
     [this table]



(defn- model-insert
  "Models an insertion into the database, where some records may turn into
  deletions if all the fields are nulled out."
  [model records]
  (reduce
    (fn [db r]

  (gen/set (gen-id ctx) {:max-elements (:n ctx)}))


(defn- gen-record
  [ctx]
  (gen/fmap
    (fn [[id data]]
      (assoc data :id id))
    (gen/tuple
      (gen-id ctx)
      (gen-some-map
        :a gen/large-integer
        :b gen/boolean
        :c (gen/scale #(/ % 10) gen/string)
        :d (gen/double* {:NaN? false, :infinite? false})))))


(defn- gen-range-query
  [ctx]
  (let [n+ (+ (:n ctx) 10)]
