SymbolIndex Type
Representation of Symbols. Ideally would be declared as type SymbolIndex = PTerminal of TerminalIndex | PNonTerminal of NonTerminalIndex but for performance reasons we embed as a simple integer (saves ~10%) We use an active pattern to reverse the embedding.