 
 @_transparent
 @warn_unused_result
-public func || <T : BooleanType>(
+public func || <T : Boolean>(
   lhs: T, @autoclosure rhs: () -> ObjCBool
 ) -> Bool {
   return lhs.boolValue ? true : rhs().boolValue

/// On 64-bit iOS, the Objective-C BOOL type is a typedef of C/C++
/// bool. Elsewhere, it is "signed char". The Clang importer imports it as
/// ObjCBool.
public struct ObjCBool : BooleanType, BooleanLiteralConvertible {
#if os(OSX) || (os(iOS) && (arch(i386) || arch(arm)))
  // On OS X and 32-bit iOS, Objective-C's BOOL type is a "signed char".
  var _value: Int8

// for ObjCBool
@_transparent
@warn_unused_result
public func && <T : Boolean>(
  lhs: T, @autoclosure rhs: () -> ObjCBool
) -> Bool {
  return lhs.boolValue ? rhs().boolValue : false
