          :meta meta-expr :expr expr :children [meta-expr expr]})
       expr)))
 
-(defn infer-type [env ast]
+(defn infer-type [env ast _]
   (let [tag (:tag ast)]
     (if (nil? tag)
       (let [tag (infer-tag env ast)]

          (assoc ast :tag tag)
          ast))
      ast)))

(def ^:dynamic *passes* nil)


                 (if (seq form) form ())
                 form)
        ast    (analyze-form env form name opts)]
    (reduce (fn [ast pass] (pass env ast opts)) ast passes)))

(defn analyze
  "Given an environment, a map containing {:locals (mapping of names to bindings), :context
