 	func check<T>(name: String, type: T.Type) throws -> [RTypeFinal] {
 		let rTypes = try getTypes(type)
 		
-		if !rTypes.contains(where: { $0.has(name: name)}) {
+		if !rTypes.contains(where: { $0.has(name: name) }) {
 			throw DIError.typeIsNotFoundForName(type: type, name: name, typesInfo: rTypes.map { $0.typeInfo })
 		}
 		

    defer { objc_sync_exit(DIResolver.monitor) }

    switch pair.rType.lifeTime {
    case .single:
      return try resolveSingle(container, pair: pair, method: method)
    case .lazySingle:
      return try resolveSingle(container, pair: pair, method: method)
    case .weakSingle:
      return try resolveWeakSingle(container, pair: pair, method: method)

  }

  private func resolveSingle<T, Method>(_ container: DIContainer, pair: RTypeWithName, method: @escaping (Method) -> Any) throws -> T {
    return try _resolveUniversal(container, pair: pair, method: method,
                                 get: { Cache.single[$0] },
                                 set: { Cache.single[$0] = $1 })
  }
  
  private func resolveWeakSingle<T, Method>(_ container: DIContainer, pair: RTypeWithName, method: @escaping (Method) -> Any) throws -> T {
