genvalidity-0.11.0.2: src/Data/GenRelativeValidity.hs
{-# LANGUAGE MultiParamTypeClasses #-}
module Data.GenRelativeValidity
( module Data.RelativeValidity,
module Data.GenRelativeValidity,
)
where
import Data.GenValidity
import Data.RelativeValidity
import Test.QuickCheck
class
(GenUnchecked a, RelativeValidity a b) =>
GenRelativeUnchecked a b
where
genUncheckedFor :: b -> Gen a
genUncheckedFor _ = genUnchecked
class
(GenValid a, RelativeValidity a b) =>
GenRelativeValid a b
where
genValidFor :: b -> Gen a
genValidFor b = genValid `suchThat` (`isValidFor` b)
class
(GenUnchecked a, RelativeValidity a b, GenRelativeUnchecked a b) =>
GenRelativeInvalid a b
where
genInvalidFor :: b -> Gen a
genInvalidFor b = genUncheckedFor b `suchThat` (not . (`isValidFor` b))