While on the topic of symbols and such, I have a question about EVAL-WHEN. Does it only allow LISP:EVAL, LISP:COMPILE and LISP:LOAD, or does it only check the print-name? I think it should check print-names, so you can shadow these symbols. Otherwise, you would be forced to add the package prefix in all the EVAL-WHEN forms. Now that you mention it: EVAL, COMPILE, and LOAD should have been keywords.