anchor.diff:    (setf (item-lookaheads (kernel-item (car kernels))) (list 'eof))
     (let ((previously-changed kernels)
           (changed '()))
  -    (declare (optimize speed))
  +    (declare (optimize (speed 3) (space 0)))
       (loop
        (dolist (kernel kernels)
  -       (when (member kernel previously-changed :test #'eq)
  +       (when (memq kernel previously-changed)
            (let ((lookaheads (compute-lookaheads kernel grammar)))
  +           (declare (list lookaheads))
              (dolist (goto (kernel-gotos kernel))
                (declare (type goto goto))
                (let ((target (goto-target goto)) (new nil))
  
positive.code:                     (new-goto (and new-kernel
                                     (make-goto symbol new-kernel))))
                 (when new-kernel
                   (unless (member new-kernel kernels :test #'eq)
                     (add-kernel new-kernel))
                   (unless (member new-goto (kernel-gotos kernel)
                                   :test #'goto-equal-p)
  
negative.code:                         (let ((i (find item (kernel-items target)
                                         :test #'item-equal-p)))
                            (when i
                              (unless (memq lookahead (item-lookaheads i))
                                (push lookahead (item-lookaheads i))
                                (setq new t))))))
                   (dolist (e lookaheads)
                     (let ((i (car e)) (ni (cdr e)))
  