 (declare analyze-wrap-meta)
 
 (defn analyze-map
-  [env form name]
+  [env form]
   (let [expr-env (assoc env :context :expr)
-        ks (disallowing-recur (vec (map #(analyze expr-env % name) (keys form))))
-        vs (disallowing-recur (vec (map #(analyze expr-env % name) (vals form))))]
+        ks (disallowing-recur (vec (map #(analyze expr-env %) (keys form))))
+        vs (disallowing-recur (vec (map #(analyze expr-env %) (vals form))))]
     (analyze-wrap-meta {:op :map :env env :form form
                         :keys ks :vals vs
-                        :children (vec (interleave ks vs))}
-                       name)))
+                        :children (vec (interleave ks vs))})))
 
 (defn analyze-list
-  [env form name]
+  [env form]
   (let [expr-env (assoc env :context :expr)
-        items (disallowing-recur (doall (map #(analyze expr-env % name) form)))]
-    (analyze-wrap-meta {:op :list :env env :form form :items items :children items} name)))
+        items (disallowing-recur (doall (map #(analyze expr-env %) form)))]
+    (analyze-wrap-meta {:op :list :env env :form form :items items :children items})))
 
 (defn analyze-vector
-  [env form name]
+  [env form]
   (let [expr-env (assoc env :context :expr)
-        items (disallowing-recur (vec (map #(analyze expr-env % name) form)))]
-    (analyze-wrap-meta {:op :vector :env env :form form :items items :children items} name)))
+        items (disallowing-recur (vec (map #(analyze expr-env %) form)))]
+    (analyze-wrap-meta {:op :vector :env env :form form :items items :children items})))
 
 (defn analyze-set
-  [env form name]
+  [env form ]
   (let [expr-env (assoc env :context :expr)
-        items (disallowing-recur (vec (map #(analyze expr-env % name) form)))]
-    (analyze-wrap-meta {:op :set :env env :form form :items items :children items} name)))
-
-(defn analyze-wrap-meta [expr name]
+        items (disallowing-recur (vec (map #(analyze expr-env %) form)))]
+    (analyze-wrap-meta {:op :set :env env :form form :items items :children items})))
+
+(defn analyze-wrap-meta [expr]
   (let [form (:form expr)
         m (dissoc (meta form) :line :column)]
     (if (seq m)
       (let [env (:env expr) ; take on expr's context ourselves
             expr (assoc-in expr [:env :context] :expr) ; change expr to :expr
-            meta-expr (analyze-map (:env expr) m name)]
+            meta-expr (analyze-map (:env expr) m)]
         {:op :meta :env env :form form
          :meta meta-expr :expr expr :children [meta-expr expr]})
       expr)))

       (cond
        (symbol? form) (analyze-symbol env form)
        (and (seq? form) (seq form)) (analyze-seq env form name)
        (map? form) (analyze-map env form name)
        (vector? form) (analyze-vector env form name)
        (set? form) (analyze-set env form name)
        (keyword? form) (analyze-keyword env form)
        (= form ()) (analyze-list env form name)
        :else {:op :constant :env env :form form})))))

(defn forms-seq

(defn analyze-seq
  [env form name]
  (if (:quoted? env)
    (analyze-list env form)
    (let [env (assoc env
                :line (or (-> form meta :line)
                          (:line env))
