anchor.diff:              // 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>) =
  +                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
  
positive.code:     /// A final state of a parser state position graph (PSPG).
      | Final of ShiftOrReduce
  
  /// LR(k) parser table generation state.
  type internal LrTableGenState<'Nonterminal, 'Terminal, 'Lookahead
      when 'Nonterminal : comparison
  
negative.code:     | Reduce of ReductionRuleId
  
  /// A node in a Parser State Position Graph (PSPG).
  type internal ParserStatePositionGraphNode<'Nonterminal, 'Terminal, 'Lookahead
      when 'Nonterminal : comparison
      and 'Terminal : comparison
      and 'Lookahead : comparison> =
  