  
  This type is used wherever type-safety is needed or
  wherever keys are requested by type.
+ 
+ - note: See the documentation of the `Keyed` protocol for a fuller
+ discussion of keys.
  */
 public struct Key<T>: EquatableKeyed {
     public let type: String

 
 This is also the type that Guise uses under the hood to associate
 keys with registered dependencies.
*/
public struct AnyKey: EquatableKeyed {
    public let type: String

 unique.
 */
public protocol Keyed {
    /// The fully qualified name of a type produced by `String(reflecting: type)`.
    var type: String { get }
    /**
     The name of a registration. Defaults to `Name.default`.
