   `(let [active# ~active
          contexts# ~contexts
          merged# (reduce open-context active# contexts#)
-         ~states (map merged contexts#)]
+         ~states (map merged# contexts#)]
      (try
       ~@body
       (finally

  name  => a symbol, will def a Var if provided.
"
  [& decl]
  (let [[m decl] (assoc (attributes decl)
                   :line (:line (meta &form))
                   :generator `dotest
                   :form &form)
        bindings (first decl)
        body (next decl)
        sym (gensym "c")]

  [:name :doc :ns :file] and a is remaining arguments."
  [args]
  (let [m {:ns *ns*, :file *file*}
        m    (if (symbol? (first args)) (assoc m :name (first args)) m)
        args (if (symbol? (first args)) (next args) args)
        m    (if (string? (first args)) (assoc m :doc (first args)) m)
        args (if (string? (first args)) (next args) args)]
    [m args]))

