use a hidden exception for interrupting computation, so that
user-defined functions/callbacks can use Exit without interfering