     (assoc state
       :form (:code this)
       :env (extend-env (:env this) (:params this) args)
-      :cont `((::reset-env ~(:env state)) ~@(:cont state))))
+      :cont `((::return-from-call ~(:env state)) ~@(:cont state))))
   mem/StoredData
   (-->clojure [this store]
     this))

     (let [proc value
           [_ args] form]
       (apply-proc proc args state))
     ::reset-env
     (assoc state
       :form nil
       :env (nth form 1))

                        '(f 1))))
  (:value (last (interp '(define f (lambda (n) (if (>= n 1) f 1)))
                        '(f 1))))
  (clojure.pprint/pprint
   (cleanup-trace
    (interp '(define fact (lambda (n) (if (<= n 1) 1 (* (fact (- n 1)) n))))
            '(fact 4))))
  (:value (last (interp '(define fact (lambda (n) (if (<= n 1) 1 (* (fact (- n 1)) n))))
                        '(fact 4))))
  (:value (last (interp '(define fact (lambda (n) (if (<= n 1) 1 (* (fact (- n 1)) n))))
