anchor.diff:       :while rules
        :collect (let ((rule (pop rules)))
                   (destructuring-bind (nt rhs) rule
  +                  (assert rhs (rule) "Invalid rule, missing right-hand-side: ~S" rule)
                     (labels ((new-rule (nt rhs)
                                (push nt non-terminals)
                                (push (list nt rhs) rules))
  
positive.code:   (:method ((grammar grammar) non-terminal)
      (follow-set (grammar-normalized-grammar grammar) non-terminal))
    (:method ((grammar normalized-grammar) non-terminal)
      (or (gethash non-terminal (grammar-follow-sets grammar))
          (error "~S is not a non-terminal of the grammar ~A"
                 non-terminal (grammar-name grammar)))))
  
  
  (defgeneric rhs-firsts-set (grammar non-terminal rhs)
  
negative.code:                        :scanner scanner
                         :skip-spaces skip-spaces))
           (*linenum* 0))
      (register-grammar grammar)
  
      `(let ((*eof-symbol* ',*eof-symbol*))
  