     
 }
 
-extension SequenceType where Generator.Element: Comparable {
+extension SequenceType where Generator.Element : Comparable {
 
     public func min(fallbackValue: Self.Generator.Element) -> Self.Generator.Element {
         guard let result = self.minElement() else {

    public func flatten() -> Self {
        return self
    }
    
}

extension Set: Flattenable {

    return Set(e)
}

extension SequenceType where Generator.Element : Hashable {
    
    public func partition(@noescape filterFunc: (Self.Generator.Element) -> Bool) -> (Set<Self.Generator.Element>, Set<Self.Generator.Element>) {
        let result1 = self.filter(filterFunc)
        let result2 = self.filter{!filterFunc($0)}
        return (Set(result1), Set(result2))
    }
    
    public func hasElementPassingTest(@noescape filterFunc: (Self.Generator.Element) -> Bool) -> Bool {
