     }
 
     return false
+}
+
+public extension Array {
+    func all(@noescape where predicate: Generator.Element throws -> Bool = truthy) rethrows -> Bool {
+        for element in self {
+            guard try predicate(element) else { return false }
+        }
+        return true
+    }
+
+    func any(@noescape where predicate: Generator.Element throws -> Bool = truthy) rethrows -> Bool {
+        for element in self {
+            if let result = try? predicate(element) where result {
+                return true
+            }
+        }
+        return false
+    }
 }
    }
}

public func truthy(item: AnyObject?) -> Bool {
    if let item = item as? Truthy {
        return item.truthy
    }

            return false
        }
    }
    return true
}

