anchor.diff:                                     ((:copy this-copy) '(function identity))
                                      &allow-other-keys) this
         (multiple-value-bind (this-min this-max) (multiplicity this-multiplicity)
  +        (declare (ignore this-min))
           (let ((this-implementation (or this-implementation
                                          (if (equal 1 this-max) 'reference 'list))))
             (assert (member this-implementation  '(list reference))
  
positive.code: BUGS:    If there is an error in handling one association end, after
           handling the other end, the state becomes invalid. No transaction :-(
  "
    (when (endp (rest endpoints))
      (error "The association ~A needs at least two endpoints." name))
    (assert (= 2 (length endpoints)) ()
            "Sorry, associations with more than two endpoints such ~
              as ~A are not implemented yet." name)
    (let* ((link-parameters (generate-link-parameters endpoints))
           (link-arguments  (generate-link-arguments  endpoints))
           (types           (loop :for endpoint :in endpoints
                               :for type = (getf (rest endpoint) :type)
  
negative.code:                                    ((:test this-test) '(function eql))
                                     ((:copy this-copy) '(function identity))
                                     &allow-other-keys) this
        (declare (ignore this-role this-copy))
        (multiple-value-bind (this-min this-max) (multiplicity this-multiplicity)
          (declare (ignore this-min))
          (let ((this-implementation (or this-implementation
                                         (if (equal 1 this-max) 'reference 'list))))
            (assert (member this-implementation  '(list reference))
  