 
 (deftype Context [parents before after])
 
-(defn open-context
+(defn- open-context
   "Opens context c, and all its parents, unless it is already active."
   [active c]
   (let [active (reduce open-context active (:parents c))

        args (if (string? (first args)) (next args) args)]
    [m args]))

(defn options
  "Reads keyword-value pairs from args, returns [m a] where m is a map
  of keyword/value options and a is remaining arguments."
  [args]

                 nxt))
        `(SimpleContainer ~r)))))

(defn- attributes
  "Reads optional name symbol and doc string from args,
  returns [m a] where m is a map containing keys
  [:name :doc :ns :file :line] and a is remaining arguments."
