quickcheck-io-0.1.0: src/Test/QuickCheck/IO.hs
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Test.QuickCheck.IO where
import qualified Control.Exception as E
import Test.HUnit.Lang (Assertion, HUnitFailure(..))
import Test.QuickCheck.Property
instance Testable Assertion where
property = propertyIO
exhaustive _ = True
propertyIO :: Assertion -> Property
propertyIO action = morallyDubiousIOProperty $ do
(action >> return succeeded) `E.catch` \(HUnitFailure err) -> return failed {reason = err}