ANSI Common Lisp 3 Evaluation and Compilation 3.3 Declarations
3.3.4 Declaration ScopeDeclarations can be divided into two
kinds: those that apply to the bindings of variables or
functions; and those that do not apply to bindings. A
declaration that appears at the head of a binding form and
applies to a variable or function binding made by that form is
called a bound declaration; such a declaration affects both the
binding and any references within the scope of the declaration.
A free declaration in a form F1 that applies to a binding for a
name N established by some form F2 of which F1 is a subform
affects only references to N within F1; it does not to apply to
other references to N outside of F1, nor does it affect the
manner in which the binding of N by F2 is established. The scope
of a bound declaration is the same as the lexical scope of the
binding to which it applies; for special variables, this means
the scope that the binding would have had had it been a lexical
binding. Unless explicitly stated othe