anchor.diff:      /// Contains a Parser State Position Graph (PSPG) for each parser state.
       /// These graphs are used to determine which parser positions are 'free' positions.
       ParserStatePositionGraphs :
  -        Map<ParserStateId,
  -            Set<LrItem<'Nonterminal, 'Terminal, 'Lookahead> *
  -                PspgNode<'Nonterminal, 'Terminal, 'Lookahead>>>;
  +        Map<ParserStateId, ParserStatePositionGraph<'Nonterminal, 'Terminal, 'Lookahead>>;
   }
   
   /// Functions which use the State monad to manipulate an LR(k) table-generation state.
  
positive.code:             // Return the id, along with the updated table-gen state.
              parserStateId,
              { tableGenState with
                  ParserStates = Map.add parserState parserStateId tableGenState.ParserStates; }
  
      //
      let reductionRuleId (reductionRule : 'Nonterminal * Symbol<'Nonterminal, 'Terminal>[]) (tableGenState : LrTableGenState<'Nonterminal, 'Terminal, 'Lookahead>) =
          // Reduction rules should only be added, but for safety we'll check to
          // see if the rule has already been assigned an identifier.
          match Map.tryFind reductionRule tableGenState.ReductionRules with
  
negative.code: 
          // Create the parser table.
          createTableImpl grammar analysis initialTableGenState
  
  
  /// Bounded right-context (BRC(1,1)) parser tables.
  [<RequireQualifiedAccess>]
  module internal Brc =
      /// Creates a bounded right-context (BRC(1,1)) parser table from the specified grammar.
      let createTable (grammar : Grammar<'Nonterminal, 'Terminal>) =
          // TODO : Implement the algorithm which converts an
          // SLR(1) grammar into a BRC(1,1) grammar.
          raise <| System.NotImplementedException "Brc.createTable"
  
  
  /// An LR(1) item.
  