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:   (subseq (item-derives item) 0 (item-position item)))
  
  (defun item-dot-right (item &optional (n 0))
    (declare (type signed-index n))
    (nthcdr (+ n (item-position item)) (item-derives item)))
  
  (defun item-shift (item &optional (n 1))
  
negative.code:            #:yacc-parse-error #:yacc-parse-error-terminal
             #:yacc-parse-error-value #:yacc-parse-error-expected-terminals)
    #+CMU
    (:import-from #:extensions #:required-argument #:memq)
    )
  
  (in-package #:yacc)
  
  #-CMU
  (defun required-argument () (error "A required argument was not supplied"))
  
  #-CMU
  (declaim (inline memq))
  
  #-CMU
  (defun memq (item list)
    "MEMBER :TEST #'EQ"
    (member item list :test #'eq))
  
  (deftype index () '(unsigned-byte 10))
  (deftype signed-index () '(signed-byte 11))
  