pub fn catch_fatal_errors<F: FnOnce() -> R, R>(f: F) -> Result<R, ErrorReported>
Runs a closure and catches unwinds triggered by fatal errors.
The compiler currently unwinds with a special sentinel value to abort
compilation on fatal errors. This function catches that sentinel and turns
the panic into a