     var container: AnyHashable { get }
 }
 
-public protocol TypedKey: Keyed {}
-
 /**
  A type-erasing unique key under which to register a block in Guise.
 */

 */
private class Dependency {
    /** Default lifecycle for the dependency. */
    internal let cached: Bool
    /** Registered block. */
    private let resolution: (Any) -> Any
    /** Cached instance, if any. */
    private var instance: Any?
    /** Metadata */
    internal let metadata: Any
    
    init<P, T>(metadata: Any, cached: Bool, resolution: @escaping Resolution<P, T>) {
        self.metadata = metadata

    }
    
    /**
     Find the given key.
    */
    public static  func filter<T>(key: Key<T>) -> Set<Key<T>> {
        return lock.read{ registrations[AnyKey(key)] == nil ? [] : [key] }
