anchor.diff:        ;; nreverse it again and count
         (loop until (null reversed)
   	    while (plusp count)
  -	    do (when (eq (car reversed) olditem)
  +	    do (when (eq olditem (car reversed))
   		 (setf (car reversed) newitem)
   		 (decf count))
   	       (let ((temp (cdr reversed)))
  
positive.code:       ;; nreverse it again and count
        (loop until (null reversed)
  	    while (plusp count)
  	    do (unless (eq (funcall key (car reversed)) olditem)
  		 (setf (car reversed) newitem)
  		 (decf count))
  	       (let ((temp (cdr reversed)))
  
negative.code:       ;; nreverse it again and count
        (loop until (null reversed)
  	    while (plusp count)
  	    do (when (eql olditem (funcall key (car reversed)))
  		 (setf (car reversed) newitem)
  		 (decf count))
  	       (let ((temp (cdr reversed)))
  