   (map second (partition 2 bindings)))
 
 (defmacro for-all
+  "Macro sugar for `for-all*`. `for-all` lets you name the parameter
+  and use them in expression, without wrapping them in a lambda. Like
+  `for-all*`, it returns a property.
+
+  Examples
+
+    (for-all [a gen/int
+              b gen/int]
+      (>= (+ a b) a))
+  "
   [bindings expr]
   `(for-all* ~(vec (binding-gens bindings))
              (fn [~@(binding-vars bindings)]

(ns simple-check.properties
  (:require [simple-check.generators :as gen]))

;; The fields that should be returned from each test
;; run:
;;

;; stamp: haskell QC nomenclature for stats/values collected
;; callbacks: maybe this is where printing/clojure.test stuff goes?

(defn- apply-gen
  [function]
  (fn [args]
    [:gen (fn [random-seed size]
