   [gen max-size]
   (reify Generator
     (arbitrary [this]
-      (vec (take (rand-int max-size)
-                 (repeatedly #(arbitrary gen)))))
+      (vec (repeatedly (rand-int max-size) #(arbitrary gen))))
     (shrink [this v]
       (map vec (shrink-seq gen v)))))
 

  [key-gen val-gen max-num-keys]
  (reify Generator
    (arbitrary [this]
      (into {} (take (rand-int max-num-keys)
                     (repeatedly (fn [] [(arbitrary key-gen)
                                         (arbitrary val-gen)])))))))

  [generators]
  (reify Generator
    (arbitrary [this]
      (vec (map arbitrary generators)))
    (shrink [this value]
      (mapcat (partial apply shrink-index value)
              (map-indexed vector generators)))))
