anchor.diff:                         (slot-name (slot-definition-name slot-def))
                          (effective-slot (find-effective-slot instance slot-name))
                          (new-value (first args)))
  +                  (register-redefinition-flusher gf class)
                     (cond (effective-slot
                            (let* ((location (safe-slot-definition-location effective-slot))
                                   (typecheck (safe-slot-definition-typecheck effective-slot))
  
positive.code:                      (every 'primary-method-p applicable-methods)
                       (typep (first applicable-methods) 'standard-reader-method)
                       (std-class-p (class-of class)))
                  (let* ((instance (first args))
                         (slot-def (accessor-method-slot-definition (first applicable-methods)))
                         (slot-name (slot-definition-name slot-def))
  
negative.code:                  (list :direct-superclasses (safe-class-direct-superclasses class))
                   (list :direct-slots (mapcar #'convert-direct-slot-definition-to-canonical-direct-slot (safe-class-direct-slots class)))
                   (list :direct-default-initargs (safe-class-direct-default-initargs class))))
    ;; Flush the EMF tables of generic functions.
    ;; FIXME: Make this cleaner, needs to cover any generic function that indirectly specializes on this class.
    (dolist (gf (safe-specializer-direct-generic-functions class))
      (reset-gf-emf-table gf))
    (flush-emf-tables-on-class-redefinition class)
    ;; Refinalize any subclasses.
    (dolist (subclass (safe-class-direct-subclasses class))
      (std-after-reinitialization-for-classes subclass))
  