   init(_builtinBooleanLiteral value: Builtin.Int1)
 }
 
+/// Conforming types can be initialized with the boolean literals
+/// `true` and `false`.
 public protocol BooleanLiteralConvertible {
   typealias BooleanLiteralType : _BuiltinBooleanLiteralConvertible
+  /// Create an instance initialized with `value`.
   init(booleanLiteral value: BooleanLiteralType)
 }
 

  /* init?(rawValue: RawValue) { self.init(rawValue) } */
}

/// Conforming to this protocol allows a type to be usable with the 'nil'
/// literal.
public protocol NilLiteralConvertible {
  init(nilLiteral: ())
}


  return T(rawValue: ~a.rawValue)
}

/// Protocol for `NS_OPTIONS` imported from Objective-C
public protocol RawOptionSetType : _RawOptionSetType, BitwiseOperationsType,
    NilLiteralConvertible {
  // FIXME: Disabled pending <rdar://problem/14011860> (Default
