   (sized (fn [size] (choose (- size) size))))
 
 (def nat
+  "Generates natural numbers, starting at zero. Shrinks to zero."
   (fmap #(Math/abs (long %)) int))
 
 (def pos-int

                 (choose 97 122)])))

(def string
  "Generate strings."
  (fmap clojure.string/join (vector char)))

(def string-ascii

    (fmap clojure.core/keyword)))

(def ratio
  "Generates a `clojure.lang.Ratio`. Shrinks toward 0. Not all values generated
  will be ratios, as many values returned by `/` are not ratios."
  (fmap
    (fn [[a b]] (/ a b))
    (tuple int
