         
         return true
     }
+    
+    func first(@noescape f: Self.Generator.Element -> Bool) -> Self.Generator.Element? {
+        
+        for element in self where f(element) {
+            return element
+        }
+        
+        return nil
+    }
 }


extension SequenceType {
    
    func any(f: Generator.Element -> Bool) -> Bool {
        
        for element in self where f(element) {
            return true

        return false
    }
    
    func all(@noescape f: Self.Generator.Element -> Bool) -> Bool {
        
        for element in self where f(element) == false {
            return false
