anchor.diff:    "AND predicate over list elements."
     (dolist (seq seqs t)
       (dotimes (i (length seq))
  -      (unless (funcall pred (elt seq i))
  +      (unless (funcall pred (memorized-elt seq i))
           (return-from every nil)))))
   
   (define-test "EVERY works"
  
positive.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)
  
negative.code: ;;;;
  ;;;; Searching sequences
  
  (defvar *mem-elt-seq* nil)
  (defvar *mem-elt-seq-tmp* nil)
  (defvar *mem-elt-idx* nil)
  
  (defun memorized-elt (seq i)
    (if (consp seq)
        (if (and (eq seq *mem-elt-seq*)
  			   *mem-elt-seq-tmp*
  		       (= i (1+! *mem-elt-idx*)))
  	      (car (setf *mem-elt-seq-tmp* (cdr *mem-elt-seq-tmp*)))
  	      (progn
  		    (setf *mem-elt-seq* seq
  				  *mem-elt-seq-tmp* (nthcdr i seq)
  			      *mem-elt-idx* i)
  		    (car *mem-elt-seq-tmp*)))
  	  (elt seq i)))
    
  (defmacro xchg (a b)
    "Swaps values of the arguments."
    (with-gensym g
  