anchor.diff:  
   (defmethod next((iter iterator))
     (with-slots (index end increment id quiet cyclic
  -                     comparer bound-check) iter
  +                     comparer bound-check values) iter
       (if (or (funcall bound-check index end) (eq end -1))
           (let ((current
                  (funcall id (if values
  
positive.code:   ((init :initform (error "Stop iteration, iteration has exhausted."))))
  
  (defclass iterator()
    ((start :initform 0 :initarg :start)
     (index :initform 0)
     (end :initform -1 :initarg :end)
     (increment :initform 1 :initarg :inc)
     (id :initform #'identity :initarg :id)
     (quiet :initform T :initarg :quiet)
     (cyclic :initform nil :initarg :cyclic)
     (values :initform nil :initarg :values)
     (bound-check :initform #'<= :initarg :reverse)
     (comparer :initform #'(lambda(n values) (nth n values)))))
  
  (defmethod reset((iter iterator))
    (with-slots (start index) iter
  
negative.code:      collect (cons i j)))
  
  (defmacro make-iterator(&key (start 0) (end -1) (inc 1)
                            (id #'identity) (values ()) (cyclic nil) (reverse nil))
    `(let ((tmp (make-instance 'iterator :start ,start
                               :end (if (null ,values)
                                        ,end
  