QuickCheck-2.15: Automatic testing of Haskell programs
Safe HaskellTrustworthy
LanguageHaskell2010

Test.QuickCheck.Modifiers

Description

Modifiers for test data.

These types do things such as restricting the kind of test data that can be generated. They can be pattern-matched on in properties as a stylistic alternative to using explicit quantification.

Note: the contents of this module are re-exported by Test.QuickCheck. You do not need to import it directly.

Examples:

-- Functions cannot be shown (but see Test.QuickCheck.Function)
prop_TakeDropWhile (Blind p) (xs :: [A]) =
  takeWhile p xs ++ dropWhile p xs == xs
prop_TakeDrop (NonNegative n) (xs :: [A]) =
  take n xs ++ drop n xs == xs
-- cycle does not work for empty lists
prop_Cycle (NonNegative n) (NonEmpty (xs :: [A])) =
  take n (cycle xs) == take n (xs ++ cycle xs)
-- Instead of forAll orderedList
prop_Sort (Ordered (xs :: [OrdA])) =
  sort xs == xs
Synopsis

Type-level modifiers for changing generator behavior

newtype Blind a Source #

Blind x: as x, but x does not have to be in the Show class.

Constructors

Blind 

Fields

Instances

Instances details
Functor Blind Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Blind a -> Blind b #

(<$) :: a -> Blind b -> Blind a #

Arbitrary a => Arbitrary (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Blind a) Source #

shrink :: Blind a -> [Blind a] Source #

Enum a => Enum (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: Blind a -> Blind a #

pred :: Blind a -> Blind a #

toEnum :: Int -> Blind a #

fromEnum :: Blind a -> Int #

enumFrom :: Blind a -> [Blind a] #

enumFromThen :: Blind a -> Blind a -> [Blind a] #

enumFromTo :: Blind a -> Blind a -> [Blind a] #

enumFromThenTo :: Blind a -> Blind a -> Blind a -> [Blind a] #

Num a => Num (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(+) :: Blind a -> Blind a -> Blind a #

(-) :: Blind a -> Blind a -> Blind a #

(*) :: Blind a -> Blind a -> Blind a #

negate :: Blind a -> Blind a #

abs :: Blind a -> Blind a #

signum :: Blind a -> Blind a #

fromInteger :: Integer -> Blind a #

Integral a => Integral (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

quot :: Blind a -> Blind a -> Blind a #

rem :: Blind a -> Blind a -> Blind a #

div :: Blind a -> Blind a -> Blind a #

mod :: Blind a -> Blind a -> Blind a #

quotRem :: Blind a -> Blind a -> (Blind a, Blind a) #

divMod :: Blind a -> Blind a -> (Blind a, Blind a) #

toInteger :: Blind a -> Integer #

Real a => Real (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

toRational :: Blind a -> Rational #

Show (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Blind a -> ShowS #

show :: Blind a -> String #

showList :: [Blind a] -> ShowS #

Eq a => Eq (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Blind a -> Blind a -> Bool #

(/=) :: Blind a -> Blind a -> Bool #

Ord a => Ord (Blind a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Blind a -> Blind a -> Ordering #

(<) :: Blind a -> Blind a -> Bool #

(<=) :: Blind a -> Blind a -> Bool #

(>) :: Blind a -> Blind a -> Bool #

(>=) :: Blind a -> Blind a -> Bool #

max :: Blind a -> Blind a -> Blind a #

min :: Blind a -> Blind a -> Blind a #

newtype Fixed a Source #

Fixed x: as x, but will not be shrunk.

Constructors

Fixed 

Fields

Instances

Instances details
Functor Fixed Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Fixed a -> Fixed b #

(<$) :: a -> Fixed b -> Fixed a #

Arbitrary a => Arbitrary (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Fixed a) Source #

shrink :: Fixed a -> [Fixed a] Source #

Enum a => Enum (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: Fixed a -> Fixed a #

pred :: Fixed a -> Fixed a #

toEnum :: Int -> Fixed a #

fromEnum :: Fixed a -> Int #

enumFrom :: Fixed a -> [Fixed a] #

enumFromThen :: Fixed a -> Fixed a -> [Fixed a] #

enumFromTo :: Fixed a -> Fixed a -> [Fixed a] #

enumFromThenTo :: Fixed a -> Fixed a -> Fixed a -> [Fixed a] #

Num a => Num (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(+) :: Fixed a -> Fixed a -> Fixed a #

(-) :: Fixed a -> Fixed a -> Fixed a #

(*) :: Fixed a -> Fixed a -> Fixed a #

negate :: Fixed a -> Fixed a #

abs :: Fixed a -> Fixed a #

signum :: Fixed a -> Fixed a #

fromInteger :: Integer -> Fixed a #

Read a => Read (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Integral a => Integral (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

quot :: Fixed a -> Fixed a -> Fixed a #

rem :: Fixed a -> Fixed a -> Fixed a #

div :: Fixed a -> Fixed a -> Fixed a #

mod :: Fixed a -> Fixed a -> Fixed a #

quotRem :: Fixed a -> Fixed a -> (Fixed a, Fixed a) #

divMod :: Fixed a -> Fixed a -> (Fixed a, Fixed a) #

toInteger :: Fixed a -> Integer #

Real a => Real (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

toRational :: Fixed a -> Rational #

Show a => Show (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Fixed a -> ShowS #

show :: Fixed a -> String #

showList :: [Fixed a] -> ShowS #

Eq a => Eq (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Fixed a -> Fixed a -> Bool #

(/=) :: Fixed a -> Fixed a -> Bool #

Ord a => Ord (Fixed a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Fixed a -> Fixed a -> Ordering #

(<) :: Fixed a -> Fixed a -> Bool #

(<=) :: Fixed a -> Fixed a -> Bool #

(>) :: Fixed a -> Fixed a -> Bool #

(>=) :: Fixed a -> Fixed a -> Bool #

max :: Fixed a -> Fixed a -> Fixed a #

min :: Fixed a -> Fixed a -> Fixed a #

newtype OrderedList a Source #

Ordered xs: guarantees that xs is ordered.

Constructors

Ordered 

Fields

Instances

Instances details
Functor OrderedList Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> OrderedList a -> OrderedList b #

(<$) :: a -> OrderedList b -> OrderedList a #

(Ord a, Arbitrary a) => Arbitrary (OrderedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (OrderedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (OrderedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Eq a => Eq (OrderedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Ord a => Ord (OrderedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

newtype NonEmptyList a Source #

NonEmpty xs: guarantees that xs is non-empty.

Constructors

NonEmpty 

Fields

Instances

Instances details
Functor NonEmptyList Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> NonEmptyList a -> NonEmptyList b #

(<$) :: a -> NonEmptyList b -> NonEmptyList a #

Arbitrary a => Arbitrary (NonEmptyList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (NonEmptyList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (NonEmptyList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Eq a => Eq (NonEmptyList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Ord a => Ord (NonEmptyList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

data InfiniteList a Source #

InfiniteList xs _: guarantees that xs is an infinite list. When a counterexample is found, only prints the prefix of xs that was used by the program.

Here is a contrived example property:

prop_take_10 :: InfiniteList Char -> Bool
prop_take_10 (InfiniteList xs _) =
  or [ x == 'a' | x <- take 10 xs ]

In the following counterexample, the list must start with "bbbbbbbbbb" but the remaining (infinite) part can contain anything:

>>> quickCheck prop_take_10
*** Failed! Falsified (after 1 test and 14 shrinks):
"bbbbbbbbbb" ++ ...

Constructors

InfiniteList 

Fields

Instances

Instances details
Arbitrary a => Arbitrary (InfiniteList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (InfiniteList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

newtype SortedList a Source #

Sorted xs: guarantees that xs is sorted.

Constructors

Sorted 

Fields

Instances

Instances details
Functor SortedList Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> SortedList a -> SortedList b #

(<$) :: a -> SortedList b -> SortedList a #

(Arbitrary a, Ord a) => Arbitrary (SortedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (SortedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (SortedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Eq a => Eq (SortedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: SortedList a -> SortedList a -> Bool #

(/=) :: SortedList a -> SortedList a -> Bool #

Ord a => Ord (SortedList a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

newtype Positive a Source #

Positive x: guarantees that x > 0.

Constructors

Positive 

Fields

Instances

Instances details
Functor Positive Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Positive a -> Positive b #

(<$) :: a -> Positive b -> Positive a #

(Num a, Ord a, Arbitrary a) => Arbitrary (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Positive a -> ShowS #

show :: Positive a -> String #

showList :: [Positive a] -> ShowS #

Eq a => Eq (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Positive a -> Positive a -> Bool #

(/=) :: Positive a -> Positive a -> Bool #

Ord a => Ord (Positive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Positive a -> Positive a -> Ordering #

(<) :: Positive a -> Positive a -> Bool #

(<=) :: Positive a -> Positive a -> Bool #

(>) :: Positive a -> Positive a -> Bool #

(>=) :: Positive a -> Positive a -> Bool #

max :: Positive a -> Positive a -> Positive a #

min :: Positive a -> Positive a -> Positive a #

newtype Negative a Source #

Negative x: guarantees that x < 0.

Constructors

Negative 

Fields

Instances

Instances details
Functor Negative Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Negative a -> Negative b #

(<$) :: a -> Negative b -> Negative a #

(Num a, Ord a, Arbitrary a) => Arbitrary (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Negative a -> ShowS #

show :: Negative a -> String #

showList :: [Negative a] -> ShowS #

Eq a => Eq (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Negative a -> Negative a -> Bool #

(/=) :: Negative a -> Negative a -> Bool #

Ord a => Ord (Negative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Negative a -> Negative a -> Ordering #

(<) :: Negative a -> Negative a -> Bool #

(<=) :: Negative a -> Negative a -> Bool #

(>) :: Negative a -> Negative a -> Bool #

(>=) :: Negative a -> Negative a -> Bool #

max :: Negative a -> Negative a -> Negative a #

min :: Negative a -> Negative a -> Negative a #

newtype NonZero a Source #

NonZero x: guarantees that x /= 0.

Constructors

NonZero 

Fields

Instances

Instances details
Functor NonZero Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> NonZero a -> NonZero b #

(<$) :: a -> NonZero b -> NonZero a #

(Num a, Eq a, Arbitrary a) => Arbitrary (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: NonZero a -> NonZero a #

pred :: NonZero a -> NonZero a #

toEnum :: Int -> NonZero a #

fromEnum :: NonZero a -> Int #

enumFrom :: NonZero a -> [NonZero a] #

enumFromThen :: NonZero a -> NonZero a -> [NonZero a] #

enumFromTo :: NonZero a -> NonZero a -> [NonZero a] #

enumFromThenTo :: NonZero a -> NonZero a -> NonZero a -> [NonZero a] #

Read a => Read (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> NonZero a -> ShowS #

show :: NonZero a -> String #

showList :: [NonZero a] -> ShowS #

Eq a => Eq (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: NonZero a -> NonZero a -> Bool #

(/=) :: NonZero a -> NonZero a -> Bool #

Ord a => Ord (NonZero a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: NonZero a -> NonZero a -> Ordering #

(<) :: NonZero a -> NonZero a -> Bool #

(<=) :: NonZero a -> NonZero a -> Bool #

(>) :: NonZero a -> NonZero a -> Bool #

(>=) :: NonZero a -> NonZero a -> Bool #

max :: NonZero a -> NonZero a -> NonZero a #

min :: NonZero a -> NonZero a -> NonZero a #

newtype NonNegative a Source #

NonNegative x: guarantees that x >= 0.

Constructors

NonNegative 

Fields

Instances

Instances details
Functor NonNegative Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> NonNegative a -> NonNegative b #

(<$) :: a -> NonNegative b -> NonNegative a #

(Num a, Ord a, Arbitrary a) => Arbitrary (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Eq a => Eq (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Ord a => Ord (NonNegative a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

newtype NonPositive a Source #

NonPositive x: guarantees that x <= 0.

Constructors

NonPositive 

Fields

Instances

Instances details
Functor NonPositive Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> NonPositive a -> NonPositive b #

(<$) :: a -> NonPositive b -> NonPositive a #

(Num a, Ord a, Arbitrary a) => Arbitrary (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Read a => Read (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Show a => Show (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Eq a => Eq (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Ord a => Ord (NonPositive a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

newtype Large a Source #

Large x: by default, QuickCheck generates Ints drawn from a small range. Large Int gives you values drawn from the entire range instead.

Constructors

Large 

Fields

Instances

Instances details
Functor Large Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Large a -> Large b #

(<$) :: a -> Large b -> Large a #

(Integral a, Bounded a) => Arbitrary (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Large a) Source #

shrink :: Large a -> [Large a] Source #

Enum a => Enum (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: Large a -> Large a #

pred :: Large a -> Large a #

toEnum :: Int -> Large a #

fromEnum :: Large a -> Int #

enumFrom :: Large a -> [Large a] #

enumFromThen :: Large a -> Large a -> [Large a] #

enumFromTo :: Large a -> Large a -> [Large a] #

enumFromThenTo :: Large a -> Large a -> Large a -> [Large a] #

Ix a => Ix (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

range :: (Large a, Large a) -> [Large a] #

index :: (Large a, Large a) -> Large a -> Int #

unsafeIndex :: (Large a, Large a) -> Large a -> Int #

inRange :: (Large a, Large a) -> Large a -> Bool #

rangeSize :: (Large a, Large a) -> Int #

unsafeRangeSize :: (Large a, Large a) -> Int #

Num a => Num (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(+) :: Large a -> Large a -> Large a #

(-) :: Large a -> Large a -> Large a #

(*) :: Large a -> Large a -> Large a #

negate :: Large a -> Large a #

abs :: Large a -> Large a #

signum :: Large a -> Large a #

fromInteger :: Integer -> Large a #

Read a => Read (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Integral a => Integral (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

quot :: Large a -> Large a -> Large a #

rem :: Large a -> Large a -> Large a #

div :: Large a -> Large a -> Large a #

mod :: Large a -> Large a -> Large a #

quotRem :: Large a -> Large a -> (Large a, Large a) #

divMod :: Large a -> Large a -> (Large a, Large a) #

toInteger :: Large a -> Integer #

Real a => Real (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

toRational :: Large a -> Rational #

Show a => Show (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Large a -> ShowS #

show :: Large a -> String #

showList :: [Large a] -> ShowS #

Eq a => Eq (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Large a -> Large a -> Bool #

(/=) :: Large a -> Large a -> Bool #

Ord a => Ord (Large a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Large a -> Large a -> Ordering #

(<) :: Large a -> Large a -> Bool #

(<=) :: Large a -> Large a -> Bool #

(>) :: Large a -> Large a -> Bool #

(>=) :: Large a -> Large a -> Bool #

max :: Large a -> Large a -> Large a #

min :: Large a -> Large a -> Large a #

newtype Small a Source #

Small x: generates values of x drawn from a small range. The opposite of Large.

Constructors

Small 

Fields

Instances

Instances details
Functor Small Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Small a -> Small b #

(<$) :: a -> Small b -> Small a #

Integral a => Arbitrary (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Small a) Source #

shrink :: Small a -> [Small a] Source #

Enum a => Enum (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: Small a -> Small a #

pred :: Small a -> Small a #

toEnum :: Int -> Small a #

fromEnum :: Small a -> Int #

enumFrom :: Small a -> [Small a] #

enumFromThen :: Small a -> Small a -> [Small a] #

enumFromTo :: Small a -> Small a -> [Small a] #

enumFromThenTo :: Small a -> Small a -> Small a -> [Small a] #

Ix a => Ix (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

range :: (Small a, Small a) -> [Small a] #

index :: (Small a, Small a) -> Small a -> Int #

unsafeIndex :: (Small a, Small a) -> Small a -> Int #

inRange :: (Small a, Small a) -> Small a -> Bool #

rangeSize :: (Small a, Small a) -> Int #

unsafeRangeSize :: (Small a, Small a) -> Int #

Num a => Num (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(+) :: Small a -> Small a -> Small a #

(-) :: Small a -> Small a -> Small a #

(*) :: Small a -> Small a -> Small a #

negate :: Small a -> Small a #

abs :: Small a -> Small a #

signum :: Small a -> Small a #

fromInteger :: Integer -> Small a #

Read a => Read (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Integral a => Integral (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

quot :: Small a -> Small a -> Small a #

rem :: Small a -> Small a -> Small a #

div :: Small a -> Small a -> Small a #

mod :: Small a -> Small a -> Small a #

quotRem :: Small a -> Small a -> (Small a, Small a) #

divMod :: Small a -> Small a -> (Small a, Small a) #

toInteger :: Small a -> Integer #

Real a => Real (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

toRational :: Small a -> Rational #

Show a => Show (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Small a -> ShowS #

show :: Small a -> String #

showList :: [Small a] -> ShowS #

Eq a => Eq (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Small a -> Small a -> Bool #

(/=) :: Small a -> Small a -> Bool #

Ord a => Ord (Small a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Small a -> Small a -> Ordering #

(<) :: Small a -> Small a -> Bool #

(<=) :: Small a -> Small a -> Bool #

(>) :: Small a -> Small a -> Bool #

(>=) :: Small a -> Small a -> Bool #

max :: Small a -> Small a -> Small a #

min :: Small a -> Small a -> Small a #

data Smart a Source #

Smart _ x: tries a different order when shrinking.

Constructors

Smart Int a 

Instances

Instances details
Functor Smart Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Smart a -> Smart b #

(<$) :: a -> Smart b -> Smart a #

Arbitrary a => Arbitrary (Smart a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Smart a) Source #

shrink :: Smart a -> [Smart a] Source #

Show a => Show (Smart a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Smart a -> ShowS #

show :: Smart a -> String #

showList :: [Smart a] -> ShowS #

newtype Shrink2 a Source #

Shrink2 x: allows 2 shrinking steps at the same time when shrinking x

Constructors

Shrink2 

Fields

Instances

Instances details
Functor Shrink2 Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Shrink2 a -> Shrink2 b #

(<$) :: a -> Shrink2 b -> Shrink2 a #

Arbitrary a => Arbitrary (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Enum a => Enum (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

succ :: Shrink2 a -> Shrink2 a #

pred :: Shrink2 a -> Shrink2 a #

toEnum :: Int -> Shrink2 a #

fromEnum :: Shrink2 a -> Int #

enumFrom :: Shrink2 a -> [Shrink2 a] #

enumFromThen :: Shrink2 a -> Shrink2 a -> [Shrink2 a] #

enumFromTo :: Shrink2 a -> Shrink2 a -> [Shrink2 a] #

enumFromThenTo :: Shrink2 a -> Shrink2 a -> Shrink2 a -> [Shrink2 a] #

Num a => Num (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(+) :: Shrink2 a -> Shrink2 a -> Shrink2 a #

(-) :: Shrink2 a -> Shrink2 a -> Shrink2 a #

(*) :: Shrink2 a -> Shrink2 a -> Shrink2 a #

negate :: Shrink2 a -> Shrink2 a #

abs :: Shrink2 a -> Shrink2 a #

signum :: Shrink2 a -> Shrink2 a #

fromInteger :: Integer -> Shrink2 a #

Read a => Read (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Integral a => Integral (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

quot :: Shrink2 a -> Shrink2 a -> Shrink2 a #

rem :: Shrink2 a -> Shrink2 a -> Shrink2 a #

div :: Shrink2 a -> Shrink2 a -> Shrink2 a #

mod :: Shrink2 a -> Shrink2 a -> Shrink2 a #

quotRem :: Shrink2 a -> Shrink2 a -> (Shrink2 a, Shrink2 a) #

divMod :: Shrink2 a -> Shrink2 a -> (Shrink2 a, Shrink2 a) #

toInteger :: Shrink2 a -> Integer #

Real a => Real (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

toRational :: Shrink2 a -> Rational #

Show a => Show (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Shrink2 a -> ShowS #

show :: Shrink2 a -> String #

showList :: [Shrink2 a] -> ShowS #

Eq a => Eq (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

(==) :: Shrink2 a -> Shrink2 a -> Bool #

(/=) :: Shrink2 a -> Shrink2 a -> Bool #

Ord a => Ord (Shrink2 a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

compare :: Shrink2 a -> Shrink2 a -> Ordering #

(<) :: Shrink2 a -> Shrink2 a -> Bool #

(<=) :: Shrink2 a -> Shrink2 a -> Bool #

(>) :: Shrink2 a -> Shrink2 a -> Bool #

(>=) :: Shrink2 a -> Shrink2 a -> Bool #

max :: Shrink2 a -> Shrink2 a -> Shrink2 a #

min :: Shrink2 a -> Shrink2 a -> Shrink2 a #

data Shrinking s a Source #

Shrinking _ x: allows for maintaining a state during shrinking.

Constructors

Shrinking s a 

Instances

Instances details
Functor (Shrinking s) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

fmap :: (a -> b) -> Shrinking s a -> Shrinking s b #

(<$) :: a -> Shrinking s b -> Shrinking s a #

(Arbitrary a, ShrinkState s a) => Arbitrary (Shrinking s a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

arbitrary :: Gen (Shrinking s a) Source #

shrink :: Shrinking s a -> [Shrinking s a] Source #

Show a => Show (Shrinking s a) Source # 
Instance details

Defined in Test.QuickCheck.Modifiers

Methods

showsPrec :: Int -> Shrinking s a -> ShowS #

show :: Shrinking s a -> String #

showList :: [Shrinking s a] -> ShowS #

class ShrinkState s a where Source #

Methods

shrinkInit :: a -> s Source #

shrinkState :: a -> s -> [(a, s)] Source #

newtype PrintableString Source #

PrintableString: generates a printable unicode String. The string will not contain surrogate pairs.

Constructors

PrintableString