anchor.diff:      //
       Transitions : LexerDfaGraph;
       /// Final (accepting) DFA states.
  +    // OPTIMIZE : Use the TagSet type from ExtCore.
       FinalStates : Set<DfaStateId>;
       /// Maps regular vectors to the DFA state representing them.
       RegularVectorToDfaState : Map<RegularVector, DfaStateId>;
       /// Maps a DFA state to the regular vector it represents.
  +    // OPTIMIZE : Use the TagMap type from ExtCore.
       DfaStateToRegularVector : Map<DfaStateId, RegularVector>;
   }
   
  
positive.code: open LanguagePrimitives
  open ExtCore
  open ExtCore.Collections
  open SpecializedCollections
  open Graph
  open Regex
  
negative.code: 
              Some acceptingClauseIndex
  
      choice {
      // Validate and simplify the patterns of the rule clauses.
      let! ruleClauseRegexes =
          let simplifiedRuleClausePatterns =
              patterns
              |> Array.map (fun (originalRuleClauseIndex, pattern) ->
  