| value -> eval body (push bound_ident value r))
| App(head, arg) -> (match eval head r with
| LiteralV lit -> raise (Stuck (App(Constant(LiteralC lit), arg)))
- | Closure (Abstract(bound_ident, body), saved_r) -> let argval = eval arg r in eval body (push bound_ident argval saved_r)
+ | Closure (Abstract(bound_ident, body), saved_r) -> eval body (push bound_ident arg saved_r) (* FIX ME *)
| Closure (Constant (FunctC Leq), saved_r) -> failwith "not yet implemented"
| Closure (Constant (FunctC (_ as prim)), saved_r) ->
(match (prim, eval arg r) with