|   | 
11 Packages    11.1 Package Concepts    11.1.2 Standardized Packages    11.1.2.1 The COMMON-LISP Package
11.1.2.1.2   Constraints on the COMMON-LISP Package for Conforming Programs
Except where explicitly allowed, the consequences are undefined if any
of the following actions are performed on an external symbol 
of the common-lisp package:
 
 - 1. Binding or altering its value (lexically or dynamically).
	      (Some exceptions are noted below.)
  - 2. Defining, 
	      undefining, 
	  or binding it as a function.
	      (Some exceptions are noted below.)
  - 3. Defining,
	      undefining, 
	   or binding it as a macro
	      or compiler macro.
	      (Some exceptions are noted below.)
  - 4. Defining it as a type specifier 
	      (via defstruct, 
		   defclass,
		   deftype,
		   define-condition).
  - 5. Defining it as a structure (via defstruct).
  - 6. Defining it as a declaration 
	      with a declaration proclamation.
  - 7. Defining it as a symbol macro.
  - 8. Altering its home package.
  - 9. Tracing it  (via trace).
  - 10. Declaring or proclaiming it
	       special
	       (via declare,
		    declaim,
		 or proclaim).
  - 11. Declaring or proclaiming its type or ftype
	       (via declare,
		    declaim,
		 or proclaim).
	       (Some exceptions are noted below.)
  - 12. Removing it from the common-lisp package.
 
  - 13. Defining a setf expander for it 
	       (via defsetf or define-setf-method).
  - 14. Defining, undefining, or binding its setf function name.
  - 15. Defining it as a method combination type 
		(via define-method-combination).
  - 16. Using it as the class-name argument 
	       to setf of find-class.
  - 17. Binding it as a catch tag.
  - 18. Binding it as a restart name.
  - 19. Defining a method 
	       for a standardized generic function 
	       which is applicable when all of the arguments
      	       are direct instances of standardized classes.
   
11.1.2.1.2.1  Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs
  |