In PSL, as in most LISP systems, various kinds of errors are detected by functions in the process of checking the validity of their argument types and other conditions. Errors are then ”signalled” by a call on an error function. In PSL, the error handler typically calls an interactive break loop, which permits the user to examine the context of the error and optionally make some corrections and continue the computation, or to abort the computation.
While in the break loop, the user remains in the binding context of the function that detected the error; the user sees the value of fluid variables as they are in the function itself. If the user aborts the computation, fluid and local variables are unbound. In compiled functions, due to allocation of local variables in the (system) stack, local variables are invisible to the error handler and the debugging facilities. Therefore, compilation can be recommended for fully debugged code, only.