                 frame (new-x86 0 (cons "obj" args) obj)
                 name (str (.name x) "_" (.name i))
                 ir (Seq (cons (Label name) (tree i frame)))]
-(addMethod name ir frame)
-))))})
+            (addMethod name ir frame)))))})
 
 
 

(def *methods* (atom (hash-map)))

(defn addMethod [name method frame]
  (reset! *methods* (assoc @*methods* name {:ir method :frame frame}))
)

(defn binop
  "Quick BinaryOp for objects with e1 and e2 fields."


(defn apply-tree [prog]
  (tree prog nil)
  @*methods*)

(defn tree-prog
  "Walks through a program, applying tree."
  [seq]
  (let [frame (new-x86 0 [] nil)]
    (for [s seq] (tree s frame))))

(defmacro deftree [type [obj frame] & body]
  `(extend-class ~type
