anchor.diff:  
   (defun derives-epsilon (symbol grammar &optional seen)
     "True if symbol derives epsilon."
  +  (declare #.standard-optimize-settings)
     (declare (symbol symbol) (type grammar grammar) (list seen))
  -  (let ((e (assoc symbol (grammar-derives-epsilon grammar))))
  +  (multiple-value-bind (e present-p)
  +      (gethash symbol (grammar-derives-epsilon grammar))
       (cond
  -      (e (cdr e))
  +      (present-p e)
         ((terminal-p symbol grammar) nil)
         ((member symbol seen) nil)
         (t
          (let ((res (derives-epsilon* symbol grammar (cons symbol seen))))
            (when (or res (null seen))
  -           (setf (grammar-derives-epsilon grammar)
  -                 (acons symbol res (grammar-derives-epsilon grammar))))
  +           (setf (gethash symbol (grammar-derives-epsilon grammar)) res))
            res)))))
   
   (defun derives-epsilon* (symbol grammar &optional seen)
     "Unmemoised version of DERIVES-EPSILON."
  +  (declare #.standard-optimize-settings)
     (declare (symbol symbol) (type grammar grammar) (list seen))
     (dolist (production (grammar-productions grammar))
       (when (and (eq symbol (production-symbol production))
  
positive.code:                  ))))
            (dolist (g (kernel-gotos k))
              (when (not (terminal-p (goto-symbol g) grammar))
                (set-goto k (list (goto-symbol g)) (goto-target g))))))
        (when (null muffle-conflicts) (setq muffle-conflicts '(0 0)))
        (unless (or (eq t muffle-conflicts)
                    (and (consp muffle-conflicts)
  
negative.code:                      (conflict-summary-warning-shift-reduce w)
                       (conflict-summary-warning-reduce-reduce w)))))
  
  (defstruct (parser (:constructor %make-parser (states goto action reduction)))
    (states (required-argument) :type index)
    (goto (required-argument) :type simple-vector)
    (action (required-argument) :type simple-vector)
    (reduction (required-argument) :type simple-vector))
  
  (defun find-precedence (op precedence)
    "Return the tail of PRECEDENCE starting with the element containing OP.
  