         let (pass, msg) = execute(
             expression,
             .toMatch,
-            async(style: .toMatch, predicate: predicate, timeout: timeout, poll: pollInterval, fnName: "toEventually"),
+            async(
+                style: .toMatch,
+                matchStyle: .eventually,
+                predicate: predicate,
+                timeout: timeout,
+                poll: pollInterval,
+                fnName: "toEventually"
+            ),
             to: "to eventually",
             description: description,
             captureExceptions: false

    public static var PollInterval: TimeInterval = 0.01
}

private func async<T>(style: ExpectationStyle, predicate: Predicate<T>, timeout: DispatchTimeInterval, poll: DispatchTimeInterval, fnName: String) -> Predicate<T> {
    return Predicate { actualExpression in
        let uncachedExpression = actualExpression.withoutCaching()
        let fnName = "expect(...).\(fnName)(...)"

            .toNotMatch,
            async(
                style: .toNotMatch,
                matchStyle: .eventually,
                predicate: predicate,
                timeout: timeout,
                poll: pollInterval,
