anchor.diff:      | Choice1Of2 lookaheadSets ->
           //
           let lalr1Table =
  -            Lalr1.upgrade (grammar, slr1Table, productionRuleIds, lookaheadSets)
  +            tprintf "  Upgrading the SLR(1) parser table to LALR(1)..."
  +            let lalr1Table = Lalr1.upgrade (grammar, slr1Table, productionRuleIds, lookaheadSets)
  +            tprintfn "done."
  +            lalr1Table
   
           (* Apply precedence settings to resolve as many conflicts as possible. *)
           /// The LALR(1) parser table, after applying precedence settings.
           let lalr1Table =
  +            tprintf "  Applying precedence declarations..."
               // Apply precedences to resolve conflicts.
  -            Lr0.applyPrecedence (lalr1Table, precedenceSettings)
  +            let lalr1Table = Lr0.applyPrecedence (lalr1Table, precedenceSettings)
  +            tprintfn "done."
  +            lalr1Table
               
           (*  If we reach this point, the grammar is not LALR(1), but we can still create a
               parser by taking certain actions to resolve any remaining conflicts.
  
positive.code: module FSharpYacc.Compiler
  
  open ExtCore
  open ExtCore.Collections
  open ExtCore.Control
  open ExtCore.Control.Collections
  
negative.code: /// Compiles a parser specification into a deterministic pushdown automaton (DPDA),
  /// then invokes a specified backend to generate code implementing the parser automaton.
  let compile (processedSpec : ProcessedSpecification<_,_>, options : CompilationOptions) : Choice<_,_> =
      tprintfn "Compiling the parser specification..."
  
      /// The grammar created from the parser specification.
      let grammar =
          //
  