-- 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 <a>SmallCheck and Lazy SmallCheck:
--   automatic exhaustive testing for small values</a> 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
empty :: Series a
(\/) :: Series a -> Series a -> Series a
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
data Property
lift :: Bool -> Property
neg :: Property -> Property
(*&*) :: Property -> Property -> Property
(*|*) :: Property -> Property -> Property
(*=>*) :: Property -> Property -> Property
(*=*) :: Property -> Property -> Property
instance (Show a, Serial a, Testable b) => Testable (a -> b)
instance Testable Property
instance Testable Bool
instance Serial Double
instance Serial Float
instance Serial Char
instance Serial Integer
instance Serial Int
instance (Serial a, Serial b, Serial c, Serial d, Serial e) => Serial (a, b, c, d, e)
instance (Serial a, Serial b, Serial c, Serial d) => Serial (a, b, c, d)
instance (Serial a, Serial b, Serial c) => Serial (a, b, c)
instance (Serial a, Serial b) => Serial (a, b)
instance Serial a => Serial [a]
instance (Serial a, Serial b) => Serial (Either a b)
instance Serial a => Serial (Maybe a)
instance Serial Bool
instance Serial ()
