anchor.diff:                      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.
  
positive.code:             | Choice3Of4 NewLine ->
                  usesNewLine <- true
                  match newLineSymbol with
                      | Choice1Of4 nlTerminal -> LALRSymbol.Terminal nlTerminal
                      | _ ->
                          let nlTerminal = Terminal(uint32 terminals.Count, "NewLine")
                          nlTerminal
                          |> Choice1Of4
                          |> (fun nlTerminal ->
                              newLineSymbol <- nlTerminal
                              dfaSymbols <- (newLineRegex, nlTerminal) :: dfaSymbols)
                          LALRSymbol.Terminal nlTerminal
              | Choice4Of4 nont when nonterminalMap.ContainsKey(nont) ->
                  LALRSymbol.Nonterminal nonterminalMap.[nont]
              | Choice4Of4 nont ->
  
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()
  