anchor.diff:                                     ((:test this-test) '(function eql))
                                      ((:copy this-copy) '(function identity))
                                      &allow-other-keys) this
  +      (declare (ignore this-copy))
         (multiple-value-bind (this-min this-max) (multiplicity this-multiplicity)
           (let ((this-implementation (or this-implementation
                                          (if (equal 1 this-max) 'reference 'list))))
  
positive.code:                                    ((:copy this-copy) '(function identity))
                                     &allow-other-keys) this
        (multiple-value-bind (this-min this-max) (multiplicity this-multiplicity)
          (let ((this-implementation (or this-implementation
                                         (if (equal 1 this-max) 'reference 'list))))
            (assert (member this-implementation  '(list reference))
  
negative.code:   (defgeneric did-link    (association-name left right)
      (:documentation
       "Hook called after a new link for the association is created between LEFT and RIGHT.")
      (:method (association-name (left t) (right t))
        (declare (ignorable association-name))
        (values)))
  
    (defgeneric will-unlink (association-name left right)
      (:documentation
       "Hook called before an old link for the association is removed between LEFT and RIGHT.")
      (:method (association-name (left t) (right t))
        (declare (ignorable association-name))
        (values)))
  
  
    (defun generate-addset (association-name value object this)
  