(macrolet ((specials () (specials) '(declare (special special-list ,@special-list)))) (specials) special-list)) since macros can expand into declarations and bodies have to have macros expanded before declarations can be seen yet macrolet macros are visible in the body then ...