anchor.diff:                  Pattern.Concat (Pattern.Epsilon, r)
   
               // Process the rewritten expression.
  -            preprocessMacro rewritten cont
  +            return! preprocessMacro rewritten
   
           | Pattern.Repetition (r, atLeast, atMost) ->
               match atLeast, atMost with
               | None, None ->
  -                ["Invalid number of repetitions. Either the minimum or maximum (or both) number of repetitions must be specified."]
  -                |> Choice2Of2
  -                |> cont
  +                return
  +                    ["Invalid number of repetitions. Either the minimum or maximum (or both) number of repetitions must be specified."]
  +                    |> Choice2Of2
   
               | None, Some atMost ->
                   // TODO : If 'atMost' = 0, emit a warning (not an error) message
  
positive.code:                 Pattern.Concat (r, Pattern.Star r)
  
              // Process the rewritten expression.
              validateAndSimplify rewritten cont
  
          | Pattern.Optional r ->
              // Rewrite r? as (|r)
  
negative.code:                 Pattern.Concat (r, Pattern.Star r)
  
              // Process the rewritten expression.
              return! preprocessMacro rewritten
  
          | Pattern.Optional r ->
              // Rewrite r? as (|r)
  