anchor.diff:          let groups = ImmutableArray.CreateBuilder()
           let productions = ImmutableArray.CreateBuilder()
           let fusers = ImmutableArray.CreateBuilder()
  +
           let rec impl (sym: Symbol) =
               let handleTerminal (term: AbstractTerminal) =
                   let symbol = Terminal(uint32 terminals.Count, term.Name)
  
positive.code:                     productions.Add(prod)
                      fusers.Add(aprod.Fuse))
                  LALRSymbol.Nonterminal symbol
          let startSymbol =
              match df |> Symbol.specialize |> impl with
              // Our grammar is made of only one terminal.
  
negative.code:                     whitespaceRegex
              dfaSymbols <- (whitespaceRegex, Choice2Of4 whitespaceSymbol) :: dfaSymbols
          if usesNewLine then
              match newLineSymbol with
              | Choice2Of4 x -> noiseSymbols.Add(x)
              | _ -> ()
              dfaSymbols <- (newLineRegex, newLineSymbol) :: dfaSymbols
          let symbols = {
              Terminals = terminals.ToImmutable()
              Nonterminals = nonterminals.ToImmutable()
  