anchor.diff:      static member IsNullable (regex : Regex) =
           Regex.IsNullableImpl regex id
   
  -    //
  -    static member private DerivativeImpl wrtSymbol regex cont =
  -        match regex with
  -        | Empty
  -        | Epsilon ->
  -            cont Empty
  -        | Any ->
  -            cont Epsilon
  -        | Character c ->
  -            if c = wrtSymbol then Epsilon else Empty
  -            |> cont
  -        | CharacterSet charSet ->
  -            if CharSet.contains wrtSymbol charSet then Epsilon else Empty
  -            |> cont
  -        | Negate r ->
  -            Regex.DerivativeImpl wrtSymbol r <| fun r' ->
  -                Negate r'
  -                |> cont
  -        | Star r as ``r*`` ->
  -            Regex.DerivativeImpl wrtSymbol r <| fun r' ->
  -                Or (Epsilon,
  -                    Concat (r', ``r*``))
  -                |> cont
  -        | Concat (r, s) ->
  -            let ``nu(r)`` = if Regex.IsNullable r then Epsilon else Empty
  -            Regex.DerivativeImpl wrtSymbol r <| fun r' ->
  -            Regex.DerivativeImpl wrtSymbol s <| fun s' ->
  -                Or (Concat (r', s),
  -                    Concat (``nu(r)``, s'))
  -                |> cont
  -        | Or (r, s) ->
  -            Regex.DerivativeImpl wrtSymbol r <| fun r' ->
  -            Regex.DerivativeImpl wrtSymbol s <| fun s' ->
  -                Or (r', s')
  -                |> cont
  -        | And (r, s) ->
  -            Regex.DerivativeImpl wrtSymbol r <| fun r' ->
  -            Regex.DerivativeImpl wrtSymbol s <| fun s' ->
  -                And (r', s')
  -                |> cont        
  -
  -    /// Computes the derivative of a Regex with respect to a specified symbol.
  -    static member Derivative symbol regex =
  -        Regex.DerivativeImpl symbol regex id
  -
       /// Given a CharSet from a CharacterSet case, returns the simplest Regex
       /// representing the CharSet.
       static member inline private SimplifyCharacterSet (charSet : CharSet) =
  
positive.code:         
          Regex.CanonicalizeImpl regex universe id
  
      /// Computes a conservative approximation of the intersection of two sets of
      /// derivative classes. This is needed when computing the set of derivative
      /// classes for a compound regular expression ('And', 'Or', and 'Concat').
  
negative.code:         | Negate Empty ->
              cont Any
          | Negate Any ->
              cont Empty
          | Negate Epsilon ->
              cont Empty
          | Negate (Character c) ->
               let anyMinusChar = CharSet.remove c charUniverse
               Regex.SimplifyCharacterSet anyMinusChar
  