During the top level read-eval-print loop we have both an ABORT and a
TOPLEVEL restart bound around each iteration, and indeed CLHS does
recommend that there should always be an ABORT restart -- just like we
The TOPLEVEL, however, is quite redundant: selecting it is identical to
selecting the outermost ABORT.
Unless there is a specific reason beyond being able to type TOP in the
debugger to select it, I propose doing away with it -- for me at least it
was for a long time confusing, causing me to wonder what the difference
between it and the outermost abort was.
Admittedly, TOP in the debugger is quite handy, but that can be handled by
making it a debugger command if desired.