Non-Local Exits
---------------
A "non-local exit" is a transfer of control from the current point
of evaluation to a different point (somewhat similar to the
much-maligned `goto' statement in imperative languages).
Non-local exits can either be used explicitly (`catch' and `throw')
or implicitly (errors).