anchor.diff:              match this with
               | Epsilon ->
                   "\u03f5"    // Epsilon symbol
  +            | Any ->
  +                // Any is equivalent to Not Empty.
  +                "\u00ac{}"
               | CharacterSet charSet
                   when CharSet.isEmpty charSet ->
  -                "Empty"
  -            | CharacterSet charSet
  -                when CharSet.count charSet = 1 ->
  -                let c = CharSet.minElement charSet
  -                c.ToString ()
  -            | regex ->
  -                // TODO : Finish this for the other regex cases.
  -                // It would be nice if this would print the regex in usual printed form.
  -                sprintf "%A" regex
  +                "{}"
  +            | CharacterSet charSet ->
  +                let sb = System.Text.StringBuilder ()
  +                sb.Append "{" |> ignore
  +
  +                // Write each of the intervals into the StringBuilder.
  +                charSet
  +                |> CharSet.iterIntervals (fun lo hi ->
  +                    Printf.bprintf sb "\u%04x-\u%04x, " (int lo) (int hi))
  +
  +                sb.Length <- sb.Length - 2  // Remove the trailing ", "
  +                sb.Append "}" |> ignore
  +
  +                sb.ToString ()
  +
  +            | Negate regex ->
  +                sprintf "\u00ac(%s)" regex.DebuggerDisplay
  +
  +            | Star regex ->
  +                sprintf "(%s)*" regex.DebuggerDisplay
  +
  +            | Concat (r, s) ->
  +                r.DebuggerDisplay + s.DebuggerDisplay
  +
  +            | Or (r, s) ->
  +                sprintf "(%s|%s)" r.DebuggerDisplay s.DebuggerDisplay
  +
  +            | And (r, s) ->
  +                sprintf "(%s&%s)" r.DebuggerDisplay s.DebuggerDisplay
   
       /// Determines if a specified Regex is 'nullable',
       /// i.e., it accepts the empty string (epsilon).
  
positive.code:             else
                  Regex.empty
  
          | _ ->
              Regex.DerivativeImpl symbol regex id
  
negative.code:                 else
                      Regex.empty
  
          | Negate (CharacterSet charSet) ->
              return
                  if CharSet.contains wrtSymbol charSet then
                      Regex.empty
                  else
                      Regex.epsilon
  
          | Negate r ->
              let! r' = Regex.DerivativeImpl wrtSymbol r
              return Regex.negate r'
  