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


-- | A library for demand-driven testing of Haskell programs
--   
--   Lazy SmallCheck is a library for exhaustive, demand-driven testing of
--   Haskell programs. It is based on the idea that if a property holds for
--   a partially-defined input then it must also hold for all fully-defined
--   refinements of the that input. Compared to `<a>eager'</a> input
--   generation as in SmallCheck, Lazy SmallCheck may require significantly
--   fewer test-cases to verify a property for all inputs up to a given
--   depth.
@package lazysmallcheck
@version 0.6


-- | For documentation, see the paper "SmallCheck and Lazy SmallCheck:
--   automatic exhaustive testing for small values" available at
--   <a>http://www.cs.york.ac.uk/fp/smallcheck/</a>. Several examples are
--   also included in the package.
module Test.LazySmallCheck
class Serial a
series :: Serial a => Series a
type Series a = Int -> Cons a
data Cons a
cons :: a -> Series a
(><) :: Series (a -> b) -> Series a -> Series b
infixl 4 ><
empty :: Series a
(\/) :: Series a -> Series a -> Series a
infixr 3 \/
drawnFrom :: [a] -> Cons a
cons0 :: a -> Series a
cons1 :: Serial a => (a -> b) -> Series b
cons2 :: (Serial a, Serial b) => (a -> b -> c) -> Series c
cons3 :: (Serial a, Serial b, Serial c) => (a -> b -> c -> d) -> Series d
cons4 :: (Serial a, Serial b, Serial c, Serial d) => (a -> b -> c -> d -> e) -> Series e
cons5 :: (Serial a, Serial b, Serial c, Serial d, Serial e) => (a -> b -> c -> d -> e -> f) -> Series f
class Testable a
depthCheck :: Testable a => Int -> a -> IO ()
smallCheck :: Testable a => Int -> a -> IO ()
test :: Testable a => a -> IO ()
(==>) :: Bool -> Bool -> Bool
infixr 0 ==>
data Property
lift :: Bool -> Property
neg :: Property -> Property
(*&*) :: Property -> Property -> Property
infixl 4 *&*
(*|*) :: Property -> Property -> Property
infixr 3 *|*
(*=>*) :: Property -> Property -> Property
infixr 0 *=>*
(*=*) :: Property -> Property -> Property
instance Test.LazySmallCheck.Testable GHC.Types.Bool
instance Test.LazySmallCheck.Testable Test.LazySmallCheck.Property
instance (GHC.Show.Show a, Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Testable b) => Test.LazySmallCheck.Testable (a -> b)
instance Test.LazySmallCheck.Serial ()
instance Test.LazySmallCheck.Serial GHC.Types.Bool
instance Test.LazySmallCheck.Serial a => Test.LazySmallCheck.Serial (GHC.Maybe.Maybe a)
instance (Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Serial b) => Test.LazySmallCheck.Serial (Data.Either.Either a b)
instance Test.LazySmallCheck.Serial a => Test.LazySmallCheck.Serial [a]
instance (Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Serial b) => Test.LazySmallCheck.Serial (a, b)
instance (Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Serial b, Test.LazySmallCheck.Serial c) => Test.LazySmallCheck.Serial (a, b, c)
instance (Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Serial b, Test.LazySmallCheck.Serial c, Test.LazySmallCheck.Serial d) => Test.LazySmallCheck.Serial (a, b, c, d)
instance (Test.LazySmallCheck.Serial a, Test.LazySmallCheck.Serial b, Test.LazySmallCheck.Serial c, Test.LazySmallCheck.Serial d, Test.LazySmallCheck.Serial e) => Test.LazySmallCheck.Serial (a, b, c, d, e)
instance Test.LazySmallCheck.Serial GHC.Types.Int
instance Test.LazySmallCheck.Serial GHC.Integer.Type.Integer
instance Test.LazySmallCheck.Serial GHC.Types.Char
instance Test.LazySmallCheck.Serial GHC.Types.Float
instance Test.LazySmallCheck.Serial GHC.Types.Double
