anchor.diff:                          | AugmentedNonterminal.Nonterminal nonterminal
                               when int item.Position = Array.length item.Production ->
                               /// The (augmented) symbols in this production rule.
  -                            let symbols =
  -                                item.Production
  -                                |> Array.map (function
  -                                    | Nonterminal nonterminal ->
  -                                        match nonterminal with
  -                                        | Start ->
  -                                            failwith "Start symbol in an item which is not part of the start production."
  -                                        | AugmentedNonterminal.Nonterminal nonterminal ->
  -                                            Nonterminal nonterminal
  -                                    | Terminal terminal ->
  -                                        match terminal with
  -                                        | EndOfFile ->
  -                                            failwith "Unexpected end-of-file symbol."
  -                                        | AugmentedTerminal.Terminal terminal ->
  -                                            Terminal terminal)
  +                            let symbols = deaugmentSymbols item.Production
   
                               // The index of the production rule to reduce by.
                               Map.find (nonterminal, symbols) productionRuleIndices
  
positive.code:     //
      let [<Literal>] private defaultParsingNamespace = "Microsoft.FSharp.Text.Parsing"
      /// The namespace where the OCaml-compatible parsers can be found.
      let [<Literal>] private ocamlParsingNamespace = "Microsoft.FSharp.Compatibility.OCaml.Parsing"
  
      /// Values used in the ACTION tables created by fsyacc.
      [<Flags>]
  
negative.code:         | Shift targetStateId ->
              ActionValue.Shift |||
              EnumOfValue (Checked.uint16 targetStateId)
  
      // TEMP : Only needed until we modify Graham.LR.LrParserTable to provide the
      // production rules of the _augmented_ grammar.
      let private deaugmentSymbols (symbols : AugmentedSymbol<'Nonterminal, 'Terminal>[]) =
          symbols
          |> Array.map (function
              | Nonterminal nonterminal ->
                  match nonterminal with
                  | Start ->
                      failwith "Start symbol in an item which is not part of the start production."
                  | AugmentedNonterminal.Nonterminal nonterminal ->
                      Nonterminal nonterminal
              | Terminal terminal ->
                  match terminal with
                  | EndOfFile ->
                      failwith "Unexpected end-of-file symbol."
                  | AugmentedTerminal.Terminal terminal ->
                      Terminal terminal)
  
      /// Emit a formatted string as a single-line F# comment into an IndentedTextWriter.
      let inline private comment (writer : IndentedTextWriter) fmt : ^T =
  