This PR extracts the logic for the AST interpreter from the rest of the Checked_runner module. Most notably, this also restructures the runner so that it will function correctly over any Checked.t implementation.
As a side-effect, the Runtime_error type can no longer access the full stack of labels, so we have to build them incrementally and generate the error message at the end. This also tweaks the backtrace printing so that we don't elide intermediate backtraces any more (which has long been an ask!)
This PR extracts the logic for the AST interpreter from the rest of the
Checked_runner
module. Most notably, this also restructures the runner so that it will function correctly over anyChecked.t
implementation.As a side-effect, the
Runtime_error
type can no longer access the full stack of labels, so we have to build them incrementally and generate the error message at the end. This also tweaks the backtrace printing so that we don't elide intermediate backtraces any more (which has long been an ask!)