#

## 3.2.3.1.2 Constraints on Macros and Compiler Macros

Except where explicitly stated otherwise, no macro defined in the Common Lisp standard produces an expansion that could cause any of the subforms of the macro form to be treated as top level forms. If an implementation also provides a special operator definition of a Common Lisp macro, the special operator definition must be semantically equivalent in this respect.

Compiler macro expansions must also have the same top level evaluation semantics as the form which they replace. This is of concern both to conforming implementations and to conforming programs.

The following X3J13 cleanup issue, not part of the specification, applies to this section:

- MACRO-SUBFORMS-TOP-LEVEL-P:ADD-CONSTRAINTS

Copyright 1996-2005, LispWorks Ltd. All rights reserved.