+mapped onto 2. What does your evaluator code do?
+
+We'll guide you to a solution involving closures. The first step is
+to allow values to carry around a specific environment with them:
+
+ type value = LiteralV of literal | Closure of lambdaTerm * env
+
+This will provide the extra information we need to evaluate an
+identifier all the way down to the correct final result. Here is a
+[[modified version of the evaluator that provides all the scaffoling for
+passing around closures|exercises/reduction_with_closures]].
+The problem is with the following line:
+
+ | Closure (Abstract(bound_ident, body), saved_r) -> eval body (push bound_ident arg saved_r) (* FIX ME *)
+
+What should it be in order to solve the problem?
+