anchor.diff:                               (declare (ignorable %slot-default%))
                                ,(cadr slot))
                              (call-next-method))))
  -       (define-user-class ,name ,(cons temp-name
  -                                       (mapcar #'class-name
  -                                               (mopu:direct-superclasses final-name)))))))
  +       (set-user-class ',name ',(cons temp-name
  +                                      (mapcar #'class-name
  +                                              (mopu:direct-superclasses final-name)))))))
   
   (defun get-initform (class-symbol class-slot)
     (getf (mopu:slot-properties (find-class class-symbol) class-slot) :initform))
  
positive.code:     (let ((old-superclasses (mapcar #'class-name (mopu:direct-superclasses user-class))))
        `(unwind-protect
              (progn
                (define-user-class ,class-sym ,new-superclasses)
                ,@body)
           (define-user-class ,class-sym ,old-superclasses)))))
  
  (declaim (ftype (function ((or symbol function))) method-combination-name))
  (defun method-combination-name (fun)
  
negative.code: NAME must be an existing class.
  NAME is automatically appended to SUPERCLASSES, so that 'user-NAME' inherits
  from NAME last."
    `(set-user-class ',name ',superclasses :register-p))
  
  (defun set-user-class (class-sym &optional superclasses register-p)
    "See `define-user-class'
  When register-p is nil, does not register in `*user-classes*'.
  This is useful for local changes to a class, or to add generated superclasses."
    (let ((user-class-name (user-class-name class-sym))
          (superclasses-with-original (remove-duplicates
                                       (append superclasses (list class-sym)))))
      (progn
        (export-always user-class-name (symbol-package user-class-name))
        ;; Probably no need to call the defclass macro if we just need to
        ;; set the superclasses.
        (when (and register-p (hash-table-p *user-classes*))
          (setf (gethash class-sym *user-classes*) superclasses-with-original))
        (closer-mop:ensure-class user-class-name
                                 :direct-superclasses superclasses-with-original
                                 :documentation (documentation class-sym 'type)))))
  
  (defun user-class-p (class-specifier)
    (sera:true (gethash (if (symbolp class-specifier)
                            class-specifier
                            (class-name class-specifier))
                        *user-classes*)))
  
  (defmacro with-user-class ((class-sym new-superclasses) &body body) ; TODO: Export if users ever demand it.
    "Dynamically override the superclasses of the user class corresponding to
  