 ///                        return x != x // Well that can't possibly hold.
 ///
 ///                    }
-///                    ^||^ /// <- `^||^` is like `||` in Swift, but lifted to work with properties.
-///                    (ls.filter({ $0 == [0] || $0 == [] }).count >= 1).withCallback(.AfterTest(.NotCounterexample, { st, res in
-///                        /// For the seriously EXTREME tester, `withCallback` provides a look into
-///                        /// SwiftCheck's testing mechanism.  You can request a variety of information
-///                        /// about the current state of the testing loop from inside this block.
-///                        ///
-///                        /// For the less crazed, SwiftCheck offers straight callbacks with `whenFail` and
-///                        /// `whenEachFail`.
-///                        print("This test is called: \(name)")
-///                    }))
+///                    ^||^ /// <- `^||^` is like `||` in Swift, but for properties.
+///                    (ls.filter({ $0 == [0] || $0 == [] }).count >= 1).whenFail {
+///                        print("Oh noe!")
+///                    }
 ///         }
 ///     }.expectFailure.verbose
 ///       ^             ^

//  Copyright (c) 2015 TypeLift. All rights reserved.
//

// MARK: - Testing

/// Property Testing is a more static and expressive form of Test-Driven Development that emphasizes
/// the testability of program properties - A statement or invariant that can be proven to hold when

///       |             +--- The property will print EVERY generated test case to the console.
///       + --- We expect this property not to hold.
///
/// Testing is not limited to just these listed functions.  New users should check out our test
/// suite and the files `Gen.swift`, `Property.swift`, `Modifiers.swift`, and the top half of this
/// very file to learn more about the various parts of the SwiftCheck testing mechanism.

