module VerboseCheck(verboseCheck,verbose) where -- provides verboseCheck (in the style of that included in quickCheck v1.x) -- Code from Nick Smallbone 2010-10-28; -- Functionality scheduled to be added to next version of quickCheck. import Test.QuickCheck.Property import Test.QuickCheck.Test verbose :: Testable prop => prop -> Property verbose = callback (PostTest (\st res -> putStrLn (status res ++":") >> callbackPostFinalFailure st res)) where status MkResult{ok = Just True} = "Passed" status MkResult{ok = Just False} = "Failed" status MkResult{ok = Nothing} = "Skipped (precondition false)" verboseCheck :: (Testable prop) => prop -> IO () verboseCheck = quickCheck . verbose