Is this all necessary? I would think that we would just delegate to the coffee REPL's default eval rather than essentially re-implementing it. Is there a reason not to do that?