 (ns push.type.core
   (:require [push.instructions.core :as core]
+            [push.instructions.dsl :as dsl]
             [push.router.core :as router])
   )
 

      instruction-name
      docstring
      :tags #{:arithmetic :base}
      `(push.instructions.dsl/consume-top-of ~stackname :as :arg2)
      `(push.instructions.dsl/consume-top-of ~stackname :as :arg1)
      `(push.instructions.dsl/calculate [:arg1 :arg2] #(~operation %1 %2) :as :result)
      `(push.instructions.dsl/push-onto ~stackname :result)))))


(defn simple-1-in-predicate

      instruction-name
      docstring
      :tags #{:arithmetic :base}
      `(dsl/consume-top-of ~stackname :as :arg1)
      `(dsl/calculate [:arg1] #(~operation %1) :as :result)
      `(dsl/push-onto ~stackname :result)))))


(defn simple-2-in-1-out-instruction
