Completion/escape refactor: EvalSignal retired
The evaluator’s result surface was reworked so that ordinary completion and non-local escape are represented by distinct types rather than one tagged signal. Three changes:
EscapeandBodyResultwere introduced;- the evaluator surface was flipped to
Settled<Value>, with the tail call absorbed inside the mobile-state swap; EvalSignaltogether with its transitional shims was deleted.
This is the structural basis on which the escape-propagation bugs
(escape-propagation-bugs) stay fixed: with completion and
escape distinguished in the types, a try or grant boundary can no longer
silently conflate a genuine escape with a recoverable result.
The migration is complete — both phases landed on 2026-05-14.
See also control-operators, core.