         vs (take-nth 2 (rest kvs))]
     (assert (every? generator? vs)
             "Value args to hash-map must be generators")
-    (fmap (partial zipmap ks)
+    (fmap #(zipmap ks %)
           (apply tuple vs))))
 
 (def char


(defn- halfs
  [n]
  (take-while (partial not= 0) (iterate #(quot % 2) n)))

(defn- shrink-int
  [integer]
  (core/map (partial - integer) (halfs integer)))

(defn- int-rose-tree
  [value]

  `key-gen` and values chosen from `val-gen`."
  [key-gen val-gen]
  (let [input (vector (tuple key-gen val-gen))]
    (fmap #(into {} %) input)))

(defn hash-map
  "Like clojure.core/hash-map, except the values are generators.
