all +quickcheck

module Test.QuickCheck.All
QuickCheck Test.QuickCheck.All
Experimental features using Template Haskell. You need to have a {-# LANGUAGE TemplateHaskell #-} pragma in your module for any of these to work.
data Callback
QuickCheck Test.QuickCheck.Property
Different kinds of callbacks
callback :: Testable prop => Callback -> prop -> Property
QuickCheck Test.QuickCheck.Property
Adds a callback
data CallbackKind
QuickCheck Test.QuickCheck.Property
callbackPostFinalFailure :: State -> Result -> IO ()
QuickCheck Test.QuickCheck.Test
callbackPostTest :: State -> Result -> IO ()
QuickCheck Test.QuickCheck.Test
callbacks :: Result -> [Callback]
QuickCheck Test.QuickCheck.Property
the callbacks for this test case
forAll :: (Show a, Testable prop) => Gen a -> (a -> prop) -> Property
QuickCheck Test.QuickCheck.Property, QuickCheck Test.QuickCheck
Explicit universal quantification: uses an explicitly given test case generator.
forAllM :: (Monad m, Show a) => Gen a -> (a -> PropertyM m b) -> PropertyM m b
QuickCheck Test.QuickCheck.Monadic
forAllProperties :: Q Exp
QuickCheck Test.QuickCheck.All
Test all properties in the current module, using a custom quickCheck function. The same caveats as with quickCheckAll apply. $forAllProperties has type (Property -> IO Result) -> IO Bool. An example invocation is $forAllProperties quickCheckResult, which does the same thing as $quickCheckAll.
forAllShrink :: (Show a, Testable prop) => Gen a -> (a -> [a]) -> (a -> prop) -> Property
QuickCheck Test.QuickCheck.Property, QuickCheck Test.QuickCheck
Like forAll, but tries to shrink the argument for failing test cases.
morallyDubiousIOProperty :: Testable prop => IO prop -> Property
QuickCheck Test.QuickCheck.Property
Do I/O inside a property. This can obviously lead to unrepeatable testcases, so use with care.
quickCheckAll :: Q Exp
QuickCheck Test.QuickCheck.All
Test all properties in the current module. The name of the property must begin with prop_. Polymorphic properties will be defaulted to Integer. Returns True if all tests succeeded, False otherwise. Using quickCheckAll interactively doesn't work. Instead, add a definition to your module along the lines of > runTests = $quickCheckAll and then execute runTests.
verboseCheckAll :: Q Exp
QuickCheck Test.QuickCheck.All
Test all properties in the current module. This is just a convenience function that combines quickCheckAll and verbose.