pub fn evalms(env: &Env, e: Exp, ctx: &mut EvalCtx) -> Result<Val, NarjuError>Expand description
Public evaluator entry point — drives the CK machine.
Consumes the input Exp so the top-level Rc wrap is a Rc::new,
not a deep e.clone() then wrap. Callers (in repl::TopLevel and
tests) already own their Exp after parse::lower, so they have no
reason to keep a borrow alive past this call.
The Machine handles every Exp arm natively via the kont stack;
there is no recursive baseline. External callers (and evalmsg)
go through this entry point.