anchor.diff:  [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
   module FSharpLex.Regex
   
  +open System.Diagnostics
   open LanguagePrimitives
   open SpecializedCollections
   
  
positive.code:                     else Or (s', r')
                      |> cont
          
          | And (Empty, _)
          | And (_, Empty) ->
              cont Regex.empty
          | And (Any, r)
          | And (r, Any) ->
              Regex.CanonicalizeImpl r cont
          | And (r, And (s, t)) ->
              // Rewrite the expression so it's left-associative.
              let regex = And (And (r, s), t)
  
negative.code:             cont Regex.empty
          | Negate (Negate regex) ->
              Regex.CanonicalizeImpl regex cont
          | Negate r ->
              Regex.CanonicalizeImpl r <| fun r' ->
                  Negate r'
                  |> cont
  
          | Star (Star _ as ``r*``) ->
              Regex.CanonicalizeImpl ``r*`` cont
  