Exception raised by the evaluator for runtime and syntactic failures.
The :reason field is a structured term — atom or tagged tuple — meant
to be matched on. The :message is derived from the reason, so
assertions can pin behaviour on :reason without coupling to wording.
:location is the Schooner.Location of the form that failed, or
nil when it is not known. See "Source locations" in Schooner.
With debug: true, :scheme_backtrace lists the procedure calls
that led to the error, most recent first (see Schooner.Frame);
otherwise it is nil.