   (def-pushdsl
     (consume-top-of :integer :as :index)
     (count-of :float :as :how-many)
-    (remember-calc [:index :how-many] #(mod %1 %2) :as :which)
+    (calculate [:index :how-many] #(mod %1 %2) :as :which)
     (remember-nth :float :at :which :as :dup-me)
     (place :float :dup-me)
     ))

      (vector interpreter (assoc scratch as result)))))


(fact "remember-calc stores the result of a calculation in a named scratch"
  (let [integer-added (-> [six-ints {}]
                          (consume-top-of :integer :as :int1)
                          (consume-top-of :integer :as :int2)
                          (remember-calc [:int1 :int2] #(+ %1 %2) :as :sum))]
  (second integer-added) => {:int1 6, :int2 5, :sum 11}))


(fact "remember-calc has no effect if :as is not specified"
  (let [integer-added (-> [six-ints {}]
                        (consume-top-of :integer :as :int1)
                        (consume-top-of :integer :as :int2)
                        (remember-calc [:int1 :int2] #(+ %1 %2)))]
  (second integer-added) => {:int1 6, :int2 5}))



  (def-pushdsl
    (consume-top-of :integer :as :int1)
    (consume-top-of :integer :as :int2)
    (calculate [:int1 :int2] #(+ %1 %2) :as :sum)
    (place :integer :sum)))

(fact "that int-adder thing actually does the thing"
