   [x] (let [t (label)
             f (label)
             d (label)]
-        (Seq [(unCx (tree (.tst x)) (Name t) (Name f))
+        (Seq [(-> x .tst tree (unCx (Name t) (Name f)))
               (Label t)
-              (unNx (tree (.thn x)))
+              (-> x .thn tree unNx)
               (Jump d)
               (Label f)
-              (unNx (tree (.els x)))
+              (-> x .els tree unNx)
               (Label d)])))
 
 (defmethod tree minijava.ast.IntegerLiteral

            f (label)
            d (label)
            r (minijava.ir.temp.Temp.)]
        (ExpSeq [(unCx (tree (.e x)) (Name t) (Name f))
                 (Label t)
                 (Move (Const 0) (Temp r))
                 (Jump d)


(defmethod tree minijava.ast.Plus
  [x] (binop :+ x))

(defmethod tree minijava.ast.Print
  [x] (Call (Name "print") [(-> x .exp tree unEx)]))

;; (defmethod tree minijava.ast.This
;;   [x] )
