     /**
      Register the `resolution` block with the result type `T` and the parameter `P`.
      
-     - returns: The unique `Key` for this registration.
+     - returns: The unique `Key<T>` for this registration.
      
      - parameters:
          - name: The name under which to register the block.

    /**
     Register an instance.
     
     - returns: The unique `Key` for this registration.
     
     - parameters:
         - instance: The instance to register.

        unregister(keys: key.untypedKeys())
    }
    
    /**
     Remove the dependencies registered under the given key(s).     
    */
    public static func unregister<T>(key: Key<T>...) {
        unregister(keys: key.untypedKeys())
    }
