         (TestResult t results))
       (catch Throwable e (TestThrown t e)))))
 
-(defn- coerce-context [c]
-  (if (and (symbol? c) (= ::Context (type (var-get (resolve c)))))
-    c (Context [] (fn [] c) nil)))
-
 (defmacro deftest
   "Defines a test case containing assertions that share the same contexts.
   decl => docstring? [binding*] assertion*

  (eval (format-assertion a)))
 
(defmacro assertion [locals & body]
  (format-assertion (Assertion locals `(do ~@body))))

(defmacro defassert
  "Defines an Assertion.

      (apply f (active c) states))
    (let [active (reduce close-context active (:parents c))]
      (dissoc active c))))

(defn- coerce-context [c]
  (if (and (symbol? c) (= ::Context (type (var-get (resolve c)))))
    c (Context [] (fn [] c) nil)))

(defmacro defcontext
  "Defines a context.
