anchor.diff:  /// Filters an incoming HTTP request based on the beginning of the request path (case insensitive).
   let routeStartsWithCi (partOfPath : string) =
       fun (ctx : HttpHandlerContext) ->
  -        if ctx.HttpContext.Request.Path.ToString().StartsWith(partOfPath, StringComparison.CurrentCultureIgnoreCase) 
  +        if (getRalativePath ctx.HttpContext).StartsWith(partOfPath, StringComparison.CurrentCultureIgnoreCase) 
           then Some ctx
           else None
           |> async.Return
  
positive.code: /// Filters an incoming HTTP request based on the beginning of the request path (case sensitive).
  let routeStartsWith (partOfPath : string) =
      fun (ctx : HttpHandlerContext) ->
          if ctx.HttpContext.Request.Path.ToString().StartsWith partOfPath 
          then Some ctx
          else None
          |> async.Return
  
negative.code:         ctx.HttpContext.Response.Clear()
          async.Return (Some ctx)
  
  let private getRoute (ctx:HttpContext) =
      if ctx.Items.ContainsKey RouteKey
      then
          let x = ctx.Items.Item RouteKey |> string 
          if String.IsNullOrEmpty x then None else Some x 
      else None
  
  let private getRalativePath (ctx:HttpContext) =
      match getRoute ctx with
      | Some route -> ctx.Request.Path.ToString().[route.Length..]
      | None -> ctx.Request.Path.ToString()
  
  /// Filters an incoming HTTP request based on the request path (case sensitive).
  let route (path : string) =
      fun (ctx : HttpHandlerContext) ->
          if (getRalativePath ctx.HttpContext).Equals path
          then Some ctx
          else None
          |> async.Return
  