anchor.diff:      (* Regex cases *)
       /// The empty string.
       | Epsilon
  -    /// A set of characters.
  -    | CharacterSet of CharSet
  -    /// Negation.
  -    | Negate of Pattern
       /// Kleene *-closure.
       /// The specified Pattern will be matched zero (0) or more times.
       | Star of Pattern
  
positive.code:     | Or of Pattern * Pattern
      /// Boolean AND of two regular expressions.
      | And of Pattern * Pattern
  
      (* TODO :   The Xor pattern can be implemented easily by rewriting it with one of the identities:
                  p XOR q => (p OR q) AND (NOT (p AND q))
                  -- or --
  
negative.code: //    | Xor of Pattern * Pattern
  
      (* Extensions *)
      /// The specified Pattern is matched one (1) or more times.
      /// This is the Plus (+) operator in a regular expression.
      | OneOrMore of Pattern
  