- newtype Blind a = Blind a
- newtype Fixed a = Fixed a
- newtype OrderedList a = Ordered [a]
- newtype NonEmptyList a = NonEmpty [a]
- newtype Positive a = Positive a
- newtype NonZero a = NonZero a
- newtype NonNegative a = NonNegative a
- data Smart a = Smart Int a
- newtype Shrink2 a = Shrink2 a
- data Shrinking s a = Shrinking s a
- class ShrinkState s a where
Type-level modifiers for changing generator behavior
Blind x: as x, but x does not have to be in the
Fixed x: as x, but will not be shrunk.
Ordered xs: guarantees that xs is ordered.
NonEmpty xs: guarantees that xs is non-empty.
Positive x: guarantees that
x > 0.
NonZero x: guarantees that
x /= 0.
NonNegative x: guarantees that
x >= 0.
|Enum a => Enum (NonNegative a)|
|Eq a => Eq (NonNegative a)|
|Integral a => Integral (NonNegative a)|
|Num a => Num (NonNegative a)|
|Ord a => Ord (NonNegative a)|
|Read a => Read (NonNegative a)|
|Real a => Real (NonNegative a)|
|Show a => Show (NonNegative a)|
|(Num a, Ord a, Arbitrary a) => Arbitrary (NonNegative a)|
Smart _ x: tries a different order when shrinking.
Shrink2 x: allows 2 shrinking steps at the same time when shrinking x
Shrinking _ x: allows for maintaining a state during shrinking.
|Shrinking s a|