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:                     // Add this new DFA state to the set of unvisited states
                      // targeted by transitions from the current DFA state.
                      let unvisitedTransitionTargets =
                          TagSet.add newDfaState unvisitedTransitionTargets
  
                      newDfaState,
                      unvisitedTransitionTargets,
  