                                                                 next
                                                                 (cons retval))))
 
+             [:INTRINSIC 'clojure.metal.native/-] (let [retval (math- (first stack)
+                                                                      (second stack))]
+                                                    (recur (inc ip)
+                                                           (->> stack
+                                                                next
+                                                                next
+                                                                (cons retval))))
+
              [:JMP-IF-FALSE a] (if (identical? WFalse (first stack))
                                   (recur (+ ip a)
                                          (next stack))

(-> (analyze '(do
                (defn + [x y]
                  (clojure.metal.native/+ x y))
                #_(defn - [x y]
                  (clojure.metal.native/- x y))
                (defn < [x y]
                  (clojure.metal.native/< x y))

                  (if (< x max)
                    (count-up (+ x 1) max)
                    x))
                (defn fib [max]
                  (if (< max 2)
                    max
                    (+ (fib (- max 1))
                       (fib (- max 2)))))
                (defn -main []
                  (fib 10))))
    debug
    compile-ast
    debug
