anchor.diff:  ;;; the CLHS.
   
   (defmacro defclass (name direct-superclasses direct-slots &rest options)
  -  (when (or (not (listp direct-slots))
  -	    (not (null (last direct-slots 0))))
  -    (error 'malformed-slots-list
  -	   :name 'defclass
  -	   :datum direct-slots))
     `(ensure-class ,name
  -		 :direct-superclasses ,direct-superclasses
  -		 :direct-slots ,(mapcar #'canonicalize-slot-spec direct-slots)
  +		 :direct-superclasses 
  +		 ,(canonicalize-direct-superclasses direct-superclasses)
  +		 :direct-slots
  +		 ,(canonicalize-direct-slots direct-slots)
   		 ,@(canonicalize-defclass-options options)))
   		 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
positive.code:   (or (null object)
        (and (consp object)
  	   (null (cdr (last object))))))
  
  (defclass slot-definition ()
    ((name :initarg :name :accessor slot-definition-name)
     (initargs :initarg :initargs :accessor slot-definition-initargs)
     (initform :initarg :initform :accessor slot-definition-initform)
     (initfunction :initarg :initfunction :accessor slot-definition-initfunction)
     (readers :initarg :readers :accessor slot-definition-readers)
     (writers :initarg :writers :accessor slot-definition-writers)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; The Metaobject hierarchy.
  
  ;;; The Metaobject hierarchy according to the AMOP table 5.1.
  ;;;
  ;;; Metaobject class                   Direct superclasses
  ;;; ----------------                   -------------------
  ;;; standard-object                    (t)
  ;;; funcallable-standard-object        (standard-object function)
  ;;; metaobject                         (standard-object)
  ;;; generic-function                   (metaobject
  ;;;                                     funcallable-standard-object)
  ;;; standard-generic-function          (generic-function)
  ;;; method                             (metaobject)
  ;;; standard-method                    (method)
  ;;; standard-accesssor-method          (standard-method)
  ;;; standard-reader-method             (standard-accesssor-method)
  ;;; standard-writer-method             (standard-accesssor-method)
  ;;; method-combination                 (metaobject)
  ;;; slot-definition                    (metaobject)
  ;;; direct-slot-definition             (slot-definition)
  ;;; effective-slot-definition          (slot-definition)
  ;;; standard-slot-definition           (slot-definition)
  ;;; standard-direct-slot-definition    (standard-slot-definition 
  ;;;                                     direct-slot-definition)
  ;;; standard-effective-slot-definition (standard-slot-definition 
  ;;;                                     effective-slot-definition)
  ;;; specializer                        (metaobject)
  ;;; eql-specializer                    (specializer)
  ;;; class                              (specializer)
  ;;; built-in-class                     (class)
  ;;; forward-reference-class            (class)
  ;;; standard-class                     (class)
  ;;; funcallable-standard-class         (class)
  ;;; 
  ;;; The class t is an instance of built-in-class.
  ;;;
  ;;; The classes generic-function and standard-generic-function
  ;;; are instances of funcallable-standard-class.
  ;;;
  ;;; All other other classes are instances of standard-class.
  
  ;;; This fact creates a circular dependency in that standard-class
  ;;; is an instance of standard-class, so it must exist before it is
  ;;; created.  We break this dependency by bulding the instance of
  ;;; standard-class "manually", i.e. without the use of defclass. 
  
  
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Metaobject slot-definition
  
  (defclass slot-definition ()
    ((name :initarg :name :accessor slot-definition-name)
     (initargs :initarg :initargs :accessor slot-definition-initargs)
     (initform :initarg :initform :accessor slot-definition-initform)
     (initfunction :initarg :initfunction :accessor slot-definition-initfunction)
     (readers :initarg :readers :accessor slot-definition-readers)
     (writers :initarg :writers :accessor slot-definition-writers)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Builtin classes
  
  
  