anchor.diff:                      all-keys))
              gf))
           (t
  -
  +         (when (not generic-function-class)
  +           (setf generic-function-class *the-class-standard-gf*))
            (let ((gf (apply (if (eq generic-function-class *the-class-standard-gf*)
                                 #'make-instance-standard-generic-function
                                 #'make-instance)
  
positive.code:   (remf all-keys :environment)
    (cond ((fboundp function-name)
           (let ((gf (fdefinition function-name)))
             (when (not (eql (class-of gf) generic-function-class))
               (error "Redefinition of generic function ~S (~S) with different class. Changing from ~S to ~S."
                      function-name gf
                      (class-of gf) generic-function-class))
  
negative.code: (defun ensure-generic-function
         (function-name
          &rest all-keys
          &key generic-function-class
               (method-class 'standard-method)
          &allow-other-keys)
    (cond ((and (symbolp function-name)
  