A type that can be initialized with the Boolean literals true and false.

    protocol ExpressibleByBooleanLiteral

    Bool, DarwinBoolean, ObjCBool, and WindowsBool are treated as Boolean values. Expanding this set to include types that represent more than simple Boolean values is discouraged.

    To add ExpressibleByBooleanLiteral conformance to your custom type, implement the init(booleanLiteral:) initializer that creates an instance of your type with the given Boolean value.