anchor.diff:      static member Derivative symbol regex =
           Regex.DerivativeImpl symbol regex id
   
  -
  -//
  -type DerivativeClasses = {
  -    /// When set, indicates that this set of
  -    /// derivative classes includes the empty set.
  -    HasEmptySet : bool;
  -    //
  -    Elements : CharSet;
  -    //
  -    Negated : CharSet;
  -} with
  -    //
  -    static member Universe =
  -        {   HasEmptySet = false;
  -            Elements = CharSet.empty;
  -            Negated = CharSet.empty; }
  -
  -    /// 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').
  -    static member Intersect (``C(r)``, ``C(s)``) =
  -        {   HasEmptySet =
  -                ``C(r)``.HasEmptySet || ``C(s)``.HasEmptySet;
  -            Elements =
  -                CharSet.union ``C(r)``.Elements ``C(s)``.Elements;
  -            Negated =
  -                CharSet.union ``C(r)``.Negated ``C(s)``.Negated; }
  -
  -// Add more members to Regex
  -type Regex with
       //
       static member private DerivativeClassesImpl regex =
           cont {
  
positive.code:     F# backtick syntax so they can use names which closely
      match those in the paper. *)
  #nowarn "49"
  
  
  /// <summary>A regular expression.</summary>
  
negative.code:         | _ ->
              None
  
  //    //
  //    let (|Character|_|) regex =
  //        match regex with
  //        | CharacterSet charSet
  //            when CharSet.count charSet = 1 ->
  //            Some <| CharSet.minElement charSet
  //        | _ ->
  //            None
  
  
  // Add additional members to Regex.
  