anchor.diff:              Map.add kvp.Key kvp.Value categoryMap)
   
   //
  -let private rulePatternsToDfa (rulePatterns : RegularVector) (options : CompilationOptions) : LexerRuleDfa =
  +let private rulePatternsToDfa (rulePatterns : RegularVector) (patternIndices : RuleClauseIndex[]) (options : CompilationOptions) : LexerRuleDfa =
       // Preconditions
       if Array.isEmpty rulePatterns then
           invalidArg "rulePatterns" "The rule must contain at least one (1) pattern."
  +    elif Array.length rulePatterns <> Array.length patternIndices then
  +        invalidArg "patternIndices" "The array must have the same length as 'rulePatterns'."
   
       // Determine which "universe" to use when compiling this
       // pattern based on the compilation settings.
  
positive.code:                     LexerDfaGraph.addEofEdge compiledPatternDfa.InitialState dfaAcceptingState transitions
                  { compiledPatternDfa with
                      Transitions = transitions;
                      RuleClauseFinalStates =
                          // Create a new copy to avoid mutating the old array.
                          // This shouldn't matter, but it's a small array so it doesn't hurt to be safe.
                          compiledPatternDfa.RuleClauseFinalStates
                          |> Array.mapi (fun clauseIndex finalStates ->
                              if int eofAcceptingClause = clauseIndex then
                                  Set.singleton dfaAcceptingState
                              else finalStates);
                      RuleAcceptedByState =
                          compiledPatternDfa.RuleAcceptedByState
                          |> Map.add dfaAcceptingState eofAcceptingClause; }
  
negative.code:         // lowest index -- i.e., the rule which was declared earliest in the lexer definition.
          |> Map.map (fun _ -> Set.minElement)
  
      // Create a LexerDfa record from the compiled DFA.
      {   Transitions = compilationState.Transitions;
          RuleAcceptedByState = ruleAcceptedByDfaState;
          InitialState = initialDfaStateId; }
  
  