anchor.diff:    "Compute the LR(1) lookaheads for all the collections in KERNELS."
     (declare (list kernels) (type grammar grammar))
     (setf (item-lookaheads (kernel-item (car kernels))) (list 'eof))
  -  (let ((previously-changed kernels)
  -        (changed '()))
  +  (let ((previously-changed kernels) (changed '())
  +        (propagate-only nil))
       (declare (optimize (speed 3) (space 0)))
       (loop
        (dolist (kernel kernels)
          (when (memq kernel previously-changed)
  -         (let ((lookaheads (compute-lookaheads kernel grammar)))
  +         (let ((lookaheads (compute-lookaheads kernel grammar propagate-only)))
              (declare (list lookaheads))
              (dolist (goto (kernel-gotos kernel))
                (declare (type goto goto))
  
positive.code:                (when new
                   (pushnew target changed)))))))
       (unless changed (return))
       (psetq previously-changed changed
              changed '())))
    kernels)
  
  (defun print-states (kernels lookaheads &optional (stream *standard-output*))
  
negative.code: 
  ;;; Lookaheads
  
  (defun compute-lookaheads (kernel grammar &optional propagate-only)
    "Compute the LR(1) lookaheads for all items in KERNEL.
  If PROPAGATE-ONLY is true, ignore spontaneous generation."
    (declare (type kernel kernel) (type grammar grammar))
    (let ((res '()))
      (declare (optimize (speed 3) (space 0)))
  