anchor.diff:                              buffer (cdr buffer))))
   
                      (t
  -                    (setf (cdr compute) nil)))
  +                    (setf (cdr buffer) 'eof)))
                (values value more)))
   
             (t
  
positive.code: (defun iterate-lookahead-iterator (iter)
    "Produce the next value for an iterator of type `lookahead-iterator'"
    (with-slots (buffer compute) iter
      (when (and (eq (cdr buffer) 'tail)
                 (not (cdr compute)))
        (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 (cdr compute))
               (cond (more
                      (let ((new-tail (cons 'tail 'tail)))
                        (setf (car buffer) value
  
negative.code:   (with-slots (buffer) iter
      buffer))
  
  (defun fork-lookahead-iterator (iter)
    "Create a `lookahead-iterator' that shares the same future as the
  given iterator.
  