anchor.diff:              // add the DFA state to the compilation state (if necessary), then add an edge
               // to the transition graph from this DFA state to the target DFA state.
               let transitionsFromCurrentDfaState, unvisitedTransitionTargets, compilationState =
  -                ((Map.empty, Set.empty, compilationState), derivativeClasses.Elements)
  +                ((Map.empty, TagSet.empty, compilationState), derivativeClasses.Elements)
                   ||> CharSet.fold (fun state element ->
                       // TEMP : The Elements field of DerivativeClasses needs to be redefined
                       // because it is possible for a class to contain multiple values.
                       let derivClass = CharSet.singleton element
  -                    transitions regularVector state derivClass)
  +                    transitions regularVector derivClass state)
   
               // Add any newly-created, unvisited states to the
               // set of states which still need to be visited.
  -            let pending = Set.union pending unvisitedTransitionTargets
  +            let pending = TagSet.union pending unvisitedTransitionTargets
   
               let compilationState =
                   { compilationState with
  
positive.code: 
      // Compile the DFA.
      let compilationState =
          let initialPending = Set.singleton initialDfaStateId
          createDfa initialPending compilationState
  
      //
  
negative.code: //
  let rec private createDfa pending compilationState =
      // If there are no more pending states, we're finished compiling.
      if TagSet.isEmpty pending then
          compilationState
      else
          //
          let currentState = TagSet.minElement pending
          let pending = TagSet.remove currentState pending
  
          //
          let regularVector = CompilationState.getRegularVector currentState compilationState
  