anchor.diff:          (add-writer-method
             class writer (slot-definition-name direct-slot)))))
     (setf (class-direct-default-initargs class) direct-default-initargs)
  -  (funcall (if (standardish-class-p (class-of class))
  -               #'std-finalize-inheritance
  -               #'finalize-inheritance)
  -           class)
  +  (maybe-finalize-inheritance class)
     (values))
  +
  +(defun maybe-finalize-inheritance (class)
  +  "If CLASS is not finalized and can be finalized, finalize it, otherwise do nothing."
  +  (when (and (not (class-finalized-p class))
  +             (every #'class-finalized-p
  +                    (class-direct-superclasses class)))
  +    (funcall (if (standardish-class-p (class-of class))
  +                 #'std-finalize-inheritance
  +                 #'finalize-inheritance)
  +             class)))
  +
  +(defun ensure-class-finalized (class)
  +  "If CLASS is not finalized, call FINALIZE-INHERITANCE on it."
  +  (when (not (class-finalized-p class))
  +    (funcall (if (standardish-class-p (class-of class))
  +                 #'std-finalize-inheritance
  +                 #'finalize-inheritance)
  +             class)))
   
   ;;; Slot definition metaobjects
   
  
positive.code: ;;; finalize-inheritance
  
  (defun std-finalize-inheritance (class)
    (setf (class-precedence-list class)
          (funcall (if (standardish-class-p (class-of class))
                       #'std-compute-class-precedence-list
  
negative.code:     ((name :initarg :name)              ; :accessor class-name
       (direct-superclasses               ; :accessor class-direct-superclasses
        :initarg :direct-superclasses)
       (direct-slots :initform ())        ; :accessor class-direct-slots
       (class-precedence-list)            ; :accessor class-precedence-list
       (effective-slots :initform ())     ; :accessor class-slots
       (slot-storage-layout :initform ()) ; :accessor class-slot-storage-layout
       (direct-subclasses :initform ())   ; :accessor class-direct-subclasses
       (direct-methods :initform ())      ; :accessor class-direct-methods
       (direct-default-initargs :initform ()) ; :accessor class-direct-default-initargs
       (dependents :initform '())
       (hash :initform (next-class-hash-value))
       (finalized-p :initform nil))
      (:default-initargs :name nil)))
  
  ;; STANDARD-CLASS and FUNCALLABLE-STANDARD-CLASS must have the same layout.
  