anchor.diff:  	     (let ((entry (assoc-not-eql-identity (funcall key (cdr tree))
   						  alist)))
                  (cond ((not (null entry)) (setf (cdr tree) (cdr entry)))
  -                     ((atom tree) nil)
  +                     ((atom (cdr tree)) nil)
                        (t (traverse (cdr tree)))))))
       (let ((entry (assoc-not-eql-identity (funcall key tree) alist)))
         (cond ((not (null entry)) (cdr entry))
  
positive.code:     (labels ((traverse (tree)
  	       (let ((entry (assoc-test-identity (funcall key tree)
  						 alist
  						 test)))
  		 (cond ((not (null entry))
  			(setf substitution-p t)
  			(cdr entry))
  
negative.code:                      (t (traverse (car tree)))))
  	     (let ((entry (assoc-not-eql-identity (cdr tree) alist)))
                 (cond ((not (null entry)) (setf (cdr tree) (cdr entry)))
                       ((atom (cdr tree)) nil)
                       (t (traverse (cdr tree)))))))
      (let ((entry (assoc-not-eql-identity tree alist)))
        (cond ((not (null entry)) (cdr entry))
  