anchor.diff:                             (cons c seen))
                             derives))))
            (when (null seen)
  -           (setf (grammar-derives-first grammar)
  -                 (acons c derives (grammar-derives-first grammar))))
  +           (setf (gethash c (grammar-derives-first grammar)) derives))
            derives)))))
   
   (defun sequence-derives-first (sequence grammar &optional seen)
     "Sequence version of DERIVES-FIRST."
  +  (declare #.standard-optimize-settings)
     (declare (list sequence) (type grammar grammar) (list seen))
     (cond
       ((null sequence) '())
  
positive.code: ;;; Productions
  
  (defstruct (production
               (:constructor make-production (symbol derives
                                              &key action action-form))
               (:print-function print-production))
    (id nil :type (or null index))
    (symbol (required-argument) :type symbol)
    (derives (required-argument) :type list)
  
negative.code:   (let ((numkernels (length kernels)))
      (let ((goto (make-array numkernels :initial-element '()))
            (action (make-array numkernels :initial-element '()))
            (reduction (make-array numkernels :initial-element nil))
            (sr-conflicts 0) (rr-conflicts 0)
            (epsilon-productions (grammar-epsilon-productions grammar))
            (action-productions '()))
  