anchor.diff:  netsh http add urlacl url=http://+:{port}/ user=everyone listen=yes
   ---------------------------------------------------------------------------
   """
  -    
  -    let execute (request : RequestContext, handler : HttpHandlerBase<_, _>) = 
  -        let validateRequest() = 
  -            maybe { 
  -                let! body = match handler.HasBody with
  -                            | true -> 
  -                                match handler.DeSerialize(request.OwinContext.Request) with
  -                                | Choice1Of2 a -> ok <| Some(a)
  -                                | Choice2Of2 b -> 
  -                                    if handler.FailOnMissingBody then fail <| b
  -                                    else ok <| None
  -                            | false -> ok <| None
  -                /// Validate the DTO
  -                if body.IsSome && handler.ValidateBody then do! body.Value.Validate()
  -                return body
  -            }
  -        
  -        let processFailure (error) = request.OwinContext |> handler.SerializeFailure error HttpStatusCode.BadRequest
  -        
  -        let processHandler (body) = 
  -            match handler.Process(request, body) with
  -            | SomeResponse(body, successCode, failureCode) -> 
  -                request.OwinContext |> handler.Serialize body successCode failureCode
  -            | SuccessResponse(body, successCode) -> request.OwinContext |> handler.SerializeSuccess body successCode
  -            | FailureResponse(body, failureCode) -> request.OwinContext |> handler.SerializeFailure body failureCode
  -            | NoResponse -> ()
  -        
  -        match validateRequest() with
  -        | Choice1Of2 body -> processHandler body
  -        | Choice2Of2 error -> processFailure error
       
       /// Default OWIN method to process request
       let exec (owin : IOwinContext) = 
  
positive.code:             | Choice2Of2(r) -> owinContext |> this.SerializeFailure r failureStatus
          
          abstract Process : request:RequestContext * body:'T option -> ResponseContext<'U>
      
      /// This is responsible for generating routing lookup table from the registerd http modules
      let generateRoutingTable (modules : Dictionary<string, HttpHandlerBase<_, _>>) = 
          let result = new Dictionary<string, HttpHandlerBase<_, _>>(StringComparer.OrdinalIgnoreCase)
          for m in modules do
  
negative.code:     let inline getIndexName (owin : IOwinContext) = removeTrailingSlash owin.Request.Uri.Segments.[2]
      let inline subId (owin : IOwinContext) = removeTrailingSlash owin.Request.Uri.Segments.[4]
      
      type IHttpHandler = 
          abstract Execute : RequestContext -> unit
      
      /// Handler base class which exposes common Http Handler functionality
      [<AbstractClass>]
      type HttpHandlerBase<'T, 'U when 'T :> DtoBase>(?failOnMissingBody : bool, ?validateBody : bool) = 
  