Generalize this into a `Supervisor` type. This could implement `IDictionary<string, Resource>` to provide a somewhat similar API to the suggested type provider.

In order to make this work, I will need to build an internal DSL to mimic the route specification. Something like the following might do:

``` fsharp
type UriSegmentTemplate = string // Possibly something more complex
type RouteDef = UriSegmentTemplate * HttpMethod list
type RouteSpec =
    | RouteNode of RouteDef * RouteDef list
    | RouteLeaf of RouteDef
// Need a module to recurse this tree, create Resource instances from RouteDefs, and hook them to their Supervisor.
```