anchor.diff:      result))
   
   (defun set-exclusive-or (list-1 list-2 &key key test test-not)
  +  (when (not key)
  +    (setf key 'identity))
     (check-type list-1 list)
     (check-type list-2 list)
  -  (when (not key)
  -    (setf key 'identity))
  +  (check-test-test-not test test-not)
     (let ((result '()))
       (dolist (e list-1)
         (when (not (member (funcall key e) list-2 :key key :test test :test-not test-not))
  
positive.code:     result))
  
  (defun subsetp (list-1 list-2 &key key test test-not)
    (check-type list-1 list)
    (check-type list-2 list)
    (check-test-test-not test test-not)
    (when test-not
      (setf test (complement test-not)))
    (setf test (or test #'eql))
    (setf key (or key #'identity))
    (every (lambda (e)
             (member (funcall key e) list-2 :key key :test test))
           list-1))
  
  (defun tree-equal (tree-1 tree-2 &key test test-not)
  
negative.code:          list-1)))
  
  (defun union (list-1 list-2 &key key test test-not)
    (when (not key)
      (setf key 'identity))
    (check-type list-1 list)
    (check-type list-2 list)
    (check-test-test-not test test-not)
    (cond ((and list-1 list-2)
           (let ((result list-2))
             (dolist (e list-1)
               (when (not (member (funcall key e) list-2 :key key :test test :test-not test-not))
                 (push e result)))
  