anchor.diff:  
   (defparameter *items-closure-hash-threshold* 20
     "The number of elements when items-closure switches to using a hashtable.")
  -(declaim (type (unsigned-byte 10) *items-closure-hash-threshold*))
  +(declaim (type index *items-closure-hash-threshold*))
   
   (deftype lr1-collection () '(or list hash-table))
   
  
positive.code:   "Compute the LR(1) lookaheads for all items in KERNEL."
    (declare (type kernel kernel) (type grammar grammar))
    (let ((res '()))
      (declare (optimize speed))
      (declare (list res))
      (dolist (i (kernel-items kernel))
        (let ((j (items-closure
                  (list
                   (make-lr1-item (item-production i) (item-position i)
                                  'propagate))
                  grammar)))
          (map-lr1-collection
           #'(lambda (item)
  
negative.code:   (declare (list items) (type grammar grammar))
    (let ((res '()) (n 0)
          (threshold *items-closure-hash-threshold*))
      (declare (optimize (speed 3) (space 0)))
      (declare (type index n) (type (or list hash-table) res))
      (labels ((add (item)
                 (declare (type lr1-item item))
                 (unless (lr1-find item res)
  