LEXICAL-CONSTRUCT-GLOBAL-DEFINITIONPPRINT-EXIT-IF-LIST-EXHAUSTED and PPRINT-POP in issue PRETTY-PRINT-INTERFACE specifies that "an error message is issued" if either of these constructs are used anywhere other than syntactically nested within a call on PPRINT-LOGICAL-BLOCK. It is not clear whether this means "an error is signalled" or "a message is printed", or whether this situation must be detected at compile time or at run time.
This is actually a more general problem, since there are other constructs in the language that have similar scoping requirements: notably LOOP-FINISH, CALL-METHOD, CALL-NEXT-METHOD, and NEXT-METHOD-P. The error behavior of all of these constructs when they are referenced outside the lexical scope where their behavior is defined ought to be made consistent, as should the matter of whether they are permitted/required/not allowed to be globally FBOUNDP.
This issue incorporates items #2 and #23 from Loosemore's list.
PPRINT-EXIT-IF-LIST-EXHAUSTED, PPRINT-POP, LOOP-FINISH, CALL-METHOD, CALL-NEXT-METHOD, and NEXT-METHOD-P, which are referred to as "lexically-scoped operators".
(1) Change the descriptions of lexically-scoped operators to state that any attempt to invoke the operator outside of the lexical scope where its behavior is defined has undefined consequences.
(2) Clarify that it is unspecified whether function names that are defined by the standard as lexically-scoped operators have global function or macro definitions (i.e., are FBOUNDP).
(3) Clarify that the restrictions on redefinition or shadowing of symbols in the COMMON-LISP package (originally stated in issue LISP-SYMBOL-REDEFINITION) are the same for symbols that define lexical operators as for symbols that are globally defined as operators.
MACROLET (etc) and provide a global definition that signals an error if it is invoked.DECLARE special form is related but not entirely analogous, so it has been left out of this proposal. From a purely abstract point of view, DECLARE is not a special form at all but simply a syntactic marker like LAMBDA, and the only reason for defining it as an operator is to facilitate diagnostics about misplaced declarations.ΓΏ