anchor.diff:          then Some ctx
           else None
           |> async.Return
  +
  +/// Filters an incoming HTTP request based on the a part of the request path (case sensitive).
  +/// Subsequent route handlers inside the given handler function should omit the already validated subPath.
  +let subRoute (path : string) (handler : HttpHandler) =
  +    routeStartsWith path >>=
  +    handlerWithRootedPath path handler
  +
  +/// Filters an incoming HTTP request based on the a part of the request path (case insensitive).
  +/// Subsequent route handlers inside the given handler function should omit the already validated subPath.
  +let subRouteCi (path : string) (handler : HttpHandler) =
  +    routeStartsWithCi path >>=
  +    handlerWithRootedPath path handler
  +
   
   /// Sets the HTTP response status code.
   let setStatusCode (statusCode : int) =
  
positive.code:     | Some p -> ctx.Request.Path.ToString().[p.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) ->
  
negative.code:                 ctx
                  |> (setHttpHeader "Content-Type" "text/html"
                  >>= setBodyAsString html)
          }