     ///
     /// - Parameter condition: condition to evaluate each element against.
     /// - Returns: true when all elements in the array match the specified condition.
-    public func all(matching condition: (Element) -> Bool) -> Bool {
-        return !contains { !condition($0) }
+    public func all(matching condition: (Element) throws -> Bool) rethrows -> Bool {
+        return try !contains { try !condition($0) }
     }
     
     /// SwifterSwift: Check if no elements in array match a conditon.
     ///
     /// - Parameter condition: condition to evaluate each element against.
     /// - Returns: true when no elements in the array match the specified condition.
-    public func none(matching condition: (Element) -> Bool) -> Bool {
-        return !contains { condition($0) }
+    public func none(matching condition: (Element) throws -> Bool) rethrows -> Bool {
+        return try !contains { try condition($0) }
     }
     
     /// SwifterSwift: Get last element that satisfies a conditon.
     ///
     /// - Parameter condition: condition to evaluate each element against.
     /// - Returns: the last element in the array matching the specified condition. (optional)
-    public func last(where condition: (Element) -> Bool) -> Element? {
+    public func last(where condition: (Element) throws -> Bool) rethrows -> Element? {
         for element in reversed() {
-          if condition(element) { return element }
+          if try condition(element) { return element }
         }
         return nil
     }

    ///
    /// - Parameter condition: condition to evaluate each element against.
    /// - Returns: last index where the specified condition evaluates to true. (optional)
    public func lastIndex(where condition: (Element) -> Bool) -> Int? {
        for (index, value) in lazy.enumerated().reversed() {
            if condition(value) { return index }
        }
        return nil
    }

    ///
    /// - Parameter condition: condition to evaluate each element against.
    /// - Returns: first index where the specified condition evaluates to true. (optional)
    public func firstIndex(where condition: (Element) throws -> Bool) rethrows -> Int? {
        for (index, value) in lazy.enumerated() {
            if try condition(value) { return index }
        }
        return nil
    }
