andling on top of fibers. When a function throws an error, Janet creates a
signal and throws that signal in the current fiber. The signal will be
propagated up the chain of active fibers until it hits a fiber that is ready to
handle the error signal.  This fiber will trap the signal and return the error
from the last call to <code class="mendoza-code">resume</code>.
</p>
<pre class="mendoza-codeblock"><code data-language="janet">(<span class="mdzsyn-coresym">defn</span> <span class="mdzsyn-symbol">block</sp