anchor.diff:  
   (defmethod iterator ((seq fset:seq))
     (seq-iterator seq))
  +
  +(defmethod iterator ((iter iterator))
  +  iter)
  
positive.code:                             buffer (cdr buffer))))
  
                     (t
                      (setf (cdr compute) nil)))
               (values value more)))
  
            (t
  
negative.code: (defun iterate-lookahead-iterator (iter)
    "Produce the next value for an iterator of type `lookahead-iterator'"
    (with-slots (buffer compute) iter
      (when (eq (cdr buffer) 'eof)
        (return-from iterate-lookahead-iterator (values nil nil)))
  
      (cond ((eq (cdr buffer) 'tail)
             ;; Buffer is empty.  Add something to the back
             (multiple-value-bind (value more) (funcall compute)
               (cond (more
                      (let ((new-tail (cons 'tail 'tail)))
                        (setf (car buffer) value
  