Previously in Swift 2.2 I\'m able to do:
extension _ArrayType where Generator.Element == Bool{ var allTrue : Bool{ return !self.contains(false) }
As of Swift 3.1 (included in Xcode 8.3), you can now extend a type with a concrete constraint:
extension Array where Element == Bool { var allTrue: Bool { return !contains(false) } }
You can also extend Collection instead of Array, but you'll need to constrain Iterator.Element, not just Element.
Collection
Array
Iterator.Element
Element