anchor.diff:  ;; TODO: This and FAST-SLOT-WRITE should use the correct slot access function.
   ;; It doesn't really matter though, as instances and funcallable instances
   ;; are all compatible.
  -(defun fast-slot-read (instance location)
  +(defun fast-slot-read (instance location slot-definition)
     (multiple-value-bind (slots layout)
         ;; This is required in case the instance is obsolete.
         (fetch-up-to-date-instance-slots-and-layout instance)
  
positive.code:                      (typep (first applicable-methods) 'standard-writer-method)
                       (std-class-p (class-of class)))
                  (let* ((instance (second args))
                         (slot-name (slot-definition-name (accessor-method-slot-definition (first applicable-methods))))
                         (effective-slot (find-effective-slot instance slot-name)))
                    (cond (effective-slot
                           (let ((location (safe-slot-definition-location effective-slot)))
                             (setf (single-dispatch-emf-entry emf-table class) location)
                             (fast-slot-write (first args) instance location)))
                          (t
                           ;; Slot not present, fall back on SLOT-VALUE.
                           (setf (slot-value instance slot-name) (first args))))))
  
negative.code:                                 instance
                                  (if (consp location)
                                      (car location)
                                      (safe-slot-definition-name slot-definition))))
            val))))
  
  (defun fast-slot-write (new-value instance location slot-definition)
    (declare (ignore slot-definition))
    (multiple-value-bind (slots layout)
        ;; This is required in case the instance is obsolete.
        (fetch-up-to-date-instance-slots-and-layout instance)
  