anchor.diff:  (defun insert (x list &key (test #'<))
     "Inserts X before the first element in LIST which is greater than X.
   The order relation can be specified by the keyword TEST"
  -  (multiple-value-bind (lt ge) (span (curry (flip test) x) list)
  -    (nconc lt (cons x ge))))
  +  (when (and (listp list) (functionp test))
  +    (multiple-value-bind (lt ge) (span (curry (flip test) x) list)
  +      (nconc lt (cons x ge)))))
   
   (defun replicate (n x)
     "Returns a list contaning N times the value X"
  
positive.code: (defun drop-while (predicate list)
    "Applied to PREDICATE and LIST, removes elements from the front of
  LIST while PREDICATE is satisfied."
    (when (and (functionp predicate) (consp list))
      (do ((list list (rest list)))
          ((or (null list)
               (not (funcall predicate (first list)))) list))))
  
negative.code: two lists (returned as VALUES) at the position corresponding to the
  given integer.  If N is greater than the length of LIST, it returns
  the entire list first and the empty list second in VALUES."
    (when (and (>= n 0) (listp list))
      (let ((result (cons nil nil)))
        (do ((list list (rest list))
             (n n (1- n))
  