        (emit/fail failure#)
        (emit/pass))
      (reset! formula-reports []))))
+
+
+
 
 (defmacro formula 
   "ALPHA/EXPERIMENTAL (subject to change) - Generative-style fact macro. 

        [clojure.walk :only [prewalk]])
  (:require [midje.emission.boundaries :as emission-boundary]
            [midje.emission.api :as emit]
            [midje.clojure-test-facade :as ctf]))

;; Formulas work by running up to *num-trials* trials per formula. If there is a failure,

        [opts-map [bindings & body]] (pop-opts-map more-args)]
    [docstring? opts-map bindings body]))


;; Formula Reporting - 
;; one report for every batch of trials generated by a single formula run

(def formula-reports (atom []))

(def formula-emission-functions
  (merge emission-silence/emission-map
         { :fail (fn [report-map]
                   (when-not (= :pass (:type report-map))
                     ;; TODO: This is temporary until Midje proper no longer
                     ;; depends on clojure.test's counters.
                     (ctf/note-fail))
                   (swap! formula-reports conj report-map))}))

(defmacro around-formula [& body]
  `(try
