anchor.diff:      | Reduce of ReductionRuleId
   
   /// A node in a Parser State Position Graph (PSPG).
  -type internal PspgNode<'Nonterminal, 'Terminal, 'Lookahead
  +type internal ParserStatePositionGraphNode<'Nonterminal, 'Terminal, 'Lookahead
       when 'Nonterminal : comparison
       and 'Terminal : comparison
       and 'Lookahead : comparison> =
  
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:     /// A final state of a parser state position graph (PSPG).
      | Final of ShiftOrReduce
  
  /// <summary>A Parser State Position Graph (PSPG).</summary>
  /// <remarks>
  /// <para>A Parser State Position Graph represents the possible epsilon-moves
  /// between the items of a parser state. These graphs are used to classify
  /// parser positions as 'free' or 'forbidden'; semantic actions can be
  /// safely inserted at a position iff the position is 'free'.</para>
  /// <para>The graph is represented as a set of directed edges.</para>
  /// </remarks>
  type internal ParserStatePositionGraph<'Nonterminal, 'Terminal, 'Lookahead
      when 'Nonterminal : comparison
      and 'Terminal : comparison
      and 'Lookahead : comparison> =
      Set<LrItem<'Nonterminal, 'Terminal, 'Lookahead> *
          ParserStatePositionGraphNode<'Nonterminal, 'Terminal, 'Lookahead>>
  
  /// LR(k) parser table generation state.
  type internal LrTableGenState<'Nonterminal, 'Terminal, 'Lookahead
      when 'Nonterminal : comparison
  