anchor.diff:          parserTables (processedSpec, parserTable, productionIndices) writer
           reductions processedSpec writer
   
  -        // Emit the parser "tables" record and parser functions.
  -        let terminalCount =
  -            // TEMP : Add 2 to account for the end-of-input and error tokens.
  -            processedSpec.Terminals.Count + 2
  -        tablesRecordAndParserFunctions terminalCount writer
  +        do
  +            // Emit the parser "tables" record and parser functions.
  +            let terminalCount =
  +                // TEMP : Add 2 to account for the end-of-input and error tokens.
  +                processedSpec.Terminals.Count + 2
  +
  +            let typedStartSymbols =
  +                (Map.empty, processedSpec.StartSymbols)
  +                ||> Set.fold (fun typedStartSymbols startSymbol ->
  +                    let startSymbolType =
  +                        Map.find startSymbol processedSpec.Nonterminals
  +                        // Start symbols are required to have a type, so if this breaks
  +                        // the problem is in the validation stage of the compiler.
  +                        |> Option.get
  +
  +                    Map.add startSymbol startSymbolType typedStartSymbols)
  +
  +            tablesRecordAndParserFunctions typedStartSymbols terminalCount writer
   
           // Flush the writer before returning, to force it to write any
           // output text remaining in it's internal buffer.
  
positive.code:     let [<Literal>] private errorTerminal : TerminalIdentifier = "error"
  
      //
      let private tablesRecordAndParserFunctions terminalCount (writer : IndentedTextWriter) =
          // Emit the 'tables' record.
          fprintfn writer "let tables () : %s.Tables<_> = {" defaultParsingNamespace
          IndentedTextWriter.indented writer <| fun writer ->
  
negative.code:                 | Some options ->
                      options
  
              // Generate the code and write it to the specified file.
              using (File.CreateText fsyaccOptions.OutputPath) <| fun streamWriter ->
                  use indentedTextWriter =
  