anchor.diff:              env.RequestPath +
               if String.IsNullOrEmpty env.RequestQueryString then "" else "?" + env.RequestQueryString
   
  +/// Type alias for an OWIN environment dictionary.
   type OwinEnv = IDictionary<string, obj>
  +/// Type alias for an OWIN `AppFunc`.
   type OwinAppFunc = Func<OwinEnv, Task>
   
  +/// Type mapping an `OwinAppFunc` to an HTTP method.
   type HttpMethodHandler =
       | GET     of OwinAppFunc
       | HEAD    of OwinAppFunc
  
positive.code:         | TRACE h
          | OPTIONS h
          | Custom(_, h) -> h
      member x.Method =
          match x with
          | GET        _ -> "GET"
  
negative.code:         env.Add("taliesin.UriTemplateMatch", result) |> ignore
          true
  
      /// Helper function to reconstruct URI templates for each `Resource`
      let concatUriTemplate baseTemplate template =
          if String.IsNullOrEmpty baseTemplate then template else baseTemplate + "/" + template
  
      /// Helper function to construct a `Resource` and connect it to the specified `manager`.
      let addResource manager notAllowed resources subscriptions name uriTemplate allowedMethods =
          let resource = new Resource(uriTemplate, allowedMethods, notAllowed)
          let resources' = (name, resource) :: resources
          let subscriptions' = resource.Connect(manager, uriMatcher) :: subscriptions
          resources', subscriptions'
  
      /// Helper function to walk the `RouteSpec` and return the collected `Resource`s.
      let rec addResources manager notAllowed uriTemplate resources subscriptions = function
          | RouteNode((name, template, httpMethods), nestedRoutes) ->
              let uriTemplate' = concatUriTemplate uriTemplate template
              let resources', subscriptions' = addResource manager notAllowed resources subscriptions name uriTemplate' httpMethods
              flattenResources manager notAllowed uriTemplate' resources' subscriptions' nestedRoutes
          | RouteLeaf(name, template, httpMethods) ->
              let uriTemplate' = concatUriTemplate uriTemplate template
              addResource manager notAllowed resources subscriptions name uriTemplate' httpMethods
  
      /// Flattens the nested `Resource`s found in the `RouteSpec`.
      and flattenResources manager notAllowed uriTemplate resources subscriptions routes =
          match routes with
          | [] -> resources, subscriptions
          | route::routes ->
              let resources', subscriptions' = addResources manager notAllowed uriTemplate resources subscriptions route
              match routes with
              | [] -> resources', subscriptions'
              | _ -> flattenResources manager notAllowed uriTemplate resources' subscriptions' routes
  
  /// Manages traffic flow within the application to specific routes.
  /// Connect resource handlers using:
  