-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Test properties and default-mains for QuickCheck
--   
--   This package contains definitions of test properties and default-mains
--   using QuickCheck library.
@package quickcheck-simple
@version 0.1.1.1

-- | This module provides a compatible ioProperty definition.
module Test.QuickCheck.CompatIO

-- | Do I/O inside a property.
--   
--   Warning: any random values generated inside of the argument to
--   ioProperty will not currently be shrunk. For best results,
--   generate all random values before calling ioProperty, or use
--   idempotentIOProperty if that is safe.
ioProperty :: Testable prop => IO prop -> Property

-- | This module contains definitions of test properties and default-mains
--   using QuickCheck library.
module Test.QuickCheck.Simple

-- | Property type. Bool or Testable of QuickCheck.
data Property
Bool :: Maybe String -> Bool -> Property
QuickCheck :: Property -> Property

-- | Bool specialized property with message for False case
boolTest' :: String -> String -> Bool -> Test

-- | Bool specialized property
boolTest :: String -> Bool -> Test

-- | Eq specialized property with explicit passing
eqTest' :: (a -> a -> Bool) -> (a -> String) -> String -> a -> a -> Test

-- | Eq specialized property
eqTest :: (Eq a, Show a) => String -> a -> a -> Test

-- | QuickCheck Testable property
qcTest :: Testable prop => String -> prop -> Test

-- | Property with label string
type Test = (String, Property)

-- | Test failure result.
data TestError
BFalse :: Maybe String -> TestError
QCError :: Result -> TestError

-- | Run a single test suite.
runTest_ :: Bool -> Test -> IO (Maybe TestError)

-- | Not verbose version of runTest_
runTest :: Test -> IO (Maybe TestError)

-- | Default main to run test suites.
defaultMain_ :: Bool -> [Test] -> IO ()

-- | Not verbose version of defaultMain'.
defaultMain :: [Test] -> IO ()

-- | Verbose verison of defaultMain
verboseMain :: [Test] -> IO ()

-- | Deprecated: Use defaultMain_ instead of this.
defaultMain' :: Bool -> [Test] -> IO ()
instance GHC.Internal.Show.Show Test.QuickCheck.Simple.TestError
