 }
 
 /// Create a `BridgeObject` around the given `objCObject`.
-internal func _makeObjCBridgeObject<ObjCClass: AnyObject>(
-  objCObject: ObjCClass
+internal func _makeObjCBridgeObject(
+  objCObject: AnyObject
 ) -> Builtin.BridgeObject {
   return _makeBridgeObject(
     objCObject,

///
/// Requires: `bits != _objectPointerSpareBits`, `bits &
/// _objectPointerSpareBits == bits`
internal func _makeNativeBridgeObject<NativeClass: AnyObject>(
  nativeObject: NativeClass, bits: UInt
) -> Builtin.BridgeObject {
  _sanityCheck(
    bits != _objectPointerSpareBits,

/// 2. if `object` is a tagged pointer, `bits == 0`.  Otherwise, 
///    `object` is either a native object, or `bits ==
///    _objectPointerSpareBits`.
internal func _makeBridgeObject(
  object: AnyObject, bits: UInt
) -> Builtin.BridgeObject {
  _sanityCheck(!_isObjCTaggedPointer(object) || bits == 0,
    "Tagged pointers cannot be combined with bits")

  _sanityCheck(
    _isObjCTaggedPointer(object)
    || _usesNativeSwiftReferenceCounting(object.dynamicType)
    || bits == _objectPointerSpareBits,
    "All spare bits must be set in non-native, non-tagged bridge objects"
  )
  
  _sanityCheck(
    bits & _objectPointerSpareBits == bits,
