anchor.diff:          match this with
           | Shift stateId ->
               "s" + stateId.ToString ()
  -        | Goto stateId ->
  -            "g" + stateId.ToString ()
  +//        | Goto stateId ->
  +//            "g" + stateId.ToString ()
           | Announce ruleId ->
               "n" + ruleId.ToString ()
           | Accept ->
               "a"
  -
  -//
  -type LeftCornerParserTable<'Nonterminal, 'Terminal
  -    when 'Nonterminal : comparison
  -    and 'Terminal : comparison> = {
  -    //
  -    Table : Map<ParserStateId * Symbol<'Nonterminal, 'Terminal>, Set<LeftCornerParserAction>>;
  -    //
  -    ParserStateCount : uint32;
  -    //
  -    ReductionRulesById : Map<ReductionRuleId, 'Nonterminal * Symbol<'Nonterminal, 'Terminal>[]>;
  -}
   
   //// Utility functions for generating left-corner parsers.
   //module internal Utilities =
  
positive.code: type LeftCornerParserAction =
      /// Shift into a state.
      | Shift of ParserStateId
      /// Goto a state.
      | Goto of ParserStateId
      /// Announce that the free position ("recognition point")
      /// has been reached for the specified rule.
      | Announce of ReductionRuleId
  
negative.code: 
          sb.ToString ()
  
  /// A Left-Corner parser state -- i.e., a set of Left-Corner items.
  type internal LeftCornerParserState<'Nonterminal, 'Terminal
      when 'Nonterminal : comparison
      and 'Terminal : comparison> =
      Set<LeftCornerItem<'Nonterminal, 'Terminal>>
  
  //
  type LeftCornerParserTable<'Nonterminal, 'Terminal
      when 'Nonterminal : comparison
      and 'Terminal : comparison> = {
      //
      ActionTable : Map<ParserStateId * 'Terminal, Set<LeftCornerParserAction>>;
      //
      GotoTable : Map<ParserStateId * 'Nonterminal, ParserStateId>;
      //
      ParserStates : Map<ParserStateId, LeftCornerParserState<'Nonterminal, 'Terminal>>;
      //
      ReductionRulesById : Map<ReductionRuleId, 'Nonterminal * Symbol<'Nonterminal, 'Terminal>[]>;
  }
  
  /// Parser-generators for left-corner grammars.
  [<RequireQualifiedAccess>]
  module internal LeftCorner =
      open FSharpYacc.LR
  
      /// Adapts a LALR(1) parser table into an LC(1) parser table.
      let ofLalr1 (lalr1Table : LrParsingTable<'Nonterminal, 'Terminal, 'Terminal>) =
          raise <| System.NotImplementedException "LeftCorner.ofLalr1"
  
  