 
   @inlinable
   @inline(__always)
+  internal func contains(_ key: Key) -> Bool {
+    return object.object(forKey: key) != nil
+  }
+
+  @inlinable
+  @inline(__always)
   internal func lookup(_ key: Key) -> Value? {
     return object.object(forKey: key)
   }

  func index(forKey key: Key) -> Index?
  var count: Int { get }

  func lookup(_ index: Index) -> (key: Key, value: Value)
  func lookup(_ key: Key) -> Value?
}

        return cocoa.count
#endif
      }
    }
  }

  @inlinable
  @inline(__always)
  func contains(_ key: Key) -> Bool {
    if _fastPath(guaranteedNative) {
      return asNative.contains(key)
    }
    switch self {
    case .native:
      return asNative.contains(key)
#if _runtime(_ObjC)
    case .cocoa(let cocoa):
      let cocoaKey = _bridgeAnythingToObjectiveC(key)
      return cocoa.contains(cocoaKey)
#endif
    }
  }

