anchor.diff:          (map-lr1-collection
            #'(lambda (item)
                (declare (type lr1-item item))
  -             (unless (item-dot-right-p item)
  +             (unless (or (and propagate-only
  +                              (not (eq 'propagate (item-lookahead item))))
  +                         (item-dot-right-p item))
                  (push (cons i (lr1-item-shift item)) res)))
            j)))
       res))
  
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)))
  