         return resolve(key: Key(type: T.self, name: Name.default, container: Name.default), parameter: parameter, cached: cached)
     }
     
+    /**
+     Helper method for filtering.
+    */
     private static func filter(type: String?, name: AnyHashable?, container: AnyHashable?) -> [Key] {
         return lock.read {
             var keys = [Key]()

    lhs = rhs()
}

private class Lock {
    
    private let lock: UnsafeMutablePointer<pthread_rwlock_t> = {

    case `default`
}

/**
 Generates a hash value for one or more hashable values.
 */
private func hash<H: Hashable>(_ hashables: H...) -> Int {
    // djb2 hash algorithm: http://www.cse.yorku.ca/~oz/hash.html
    // &+ operator handles Int overflow
