anchor.diff:      (verb     : HttpVerb)
       (endpoint : Endpoint) : Endpoint =
       match endpoint with
  -    | SingleEndpoint (_, routeTemplate, requestDelegate) ->
  -        SingleEndpoint (verb, routeTemplate, requestDelegate)
  -    | TemplateEndpoint(_, routeTempplte,mappings, requestDelegate) ->
  -        TemplateEndpoint(verb, routeTempplte,mappings, requestDelegate)
  +    | SimpleEndpoint (_, routeTemplate, requestDelegate) ->
  +        SimpleEndpoint (verb, routeTemplate, requestDelegate)
  +    | TemplateEndpoint(_, routeTemplate, mappings, requestDelegate) ->
  +        TemplateEndpoint(verb, routeTemplate, mappings, requestDelegate)
       | NestedEndpoint (routeTemplate, endpoints) ->
           NestedEndpoint (routeTemplate, endpoints |> List.map (httpVerb verb))
   
  
positive.code: type RouteTemplateMappings = list<string * char>
  
  type Endpoint =
      | SingleEndpoint of HttpVerb * RouteTemplate * HttpHandler
      | TemplateEndpoint of HttpVerb * RouteTemplate * RouteTemplateMappings * (obj -> HttpHandler)
      | NestedEndpoint of RouteTemplate * Endpoint list
  
  let inline (=>) (fx : Endpoint -> Endpoint) (x : Endpoint) = fx x
  
  
negative.code: let route
      (path     : string)
      (handler  : HttpHandler) : Endpoint =
      SimpleEndpoint (HttpVerb.NotSpecified, path, handler)
  
  let routef
      (path         : PrintfFormat<_,_,_,_, 'T>)
      (routeHandler : 'T -> HttpHandler) : Endpoint =
      let template, mappings = RouteTemplateBuilder.convertToRouteTemplate path
      let boxedHandler (o : obj) =
          let t = o :?> 'T
          routeHandler t
      TemplateEndpoint (HttpVerb.NotSpecified, template, mappings, boxedHandler)
  