anchor.diff:          ((if from-end
   	         (< i e)
   			 (> i e)))
  -	  (let elm (elt seq i)
  -        (when (apply pred `(,elm ,@(when with-index
  -									 (list i))))
  +	  (let elm (memorized-elt seq i)
  +        (when (apply pred (cons ,elm (when with-index
  +									   (list i))))
   		  (return elm))))))
    
  -(defun find (obj seq &key (start nil) (end nil) (from-end nil) (test #'eql))
  +(defun find (obj seq &key (start nil) (end nil)
  +						  (from-end nil) (test #'eql))
     "Return element in sequence."
  -  (find-if #'((x)
  -				(funcall test x obj))
  -		   seq :start start :end end :from-end from-end))
  +  (find-if (fn funcall test _ obj)
  +		   seq
  +		   :start start
  +		   :end end
  +		   :from-end from-end))
   
   (define-test "FIND finds elements"
     ((find 's '(l i s p)))
  
positive.code: ;;;;
  ;;;; Searching sequences
  
  (defmacro xchg (a b)
    "Swaps values of the arguments."
    (with-gensym g
  
negative.code: 	   (setf ,a ,b
  	   		 ,b ,g))))
  
  (defun find-if (pred seq &key (start nil) (end nil)
  							  (from-end nil) (with-index nil))
    (let* ((e (or end (1- (length seq))))
  	 	 (s (or start 0)))
      ; Make sure the start and end indices are sane.
      (when (or (and (> s e)
  				   (not from-end))
                (and (< s e)
  				   from-end))
        (xchg s e))
      (do ((i s (if from-end
  				  (1- i)
  