> Macros should be written so as to depend as little as possible on the execution environment to produce a correct expansion. To ensure consistent behavior, it is best to ensure that all macro definitions are available, whether to the interpreter or compiler, before any code containing calls to those macros is introduced.
- Common Lisp the Language, http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/html/c...