Safe Haskell | None |
---|---|
Language | Haskell98 |
Savage
Documentation
Monad transformer which can generate random values of a
.
Instances
MMonad GenT Source # | |
MonadTrans GenT Source # | |
Distributive GenT Source # | |
MonadBase b m => MonadBase b (GenT m) Source # | |
MonadError e m => MonadError e (GenT m) Source # | |
MonadReader r m => MonadReader r (GenT m) Source # | |
MonadState s m => MonadState s (GenT m) Source # | |
MonadWriter w m => MonadWriter w (GenT m) Source # | |
Monad m => Monad (GenT m) Source # | |
Functor m => Functor (GenT m) Source # | |
Monad m => Applicative (GenT m) Source # | |
MonadIO m => MonadIO (GenT m) Source # | |
Monad m => Alternative (GenT m) Source # | |
Monad m => MonadPlus (GenT m) Source # | |
MonadCatch m => MonadCatch (GenT m) Source # | |
MonadThrow m => MonadThrow (GenT m) Source # | |
PrimMonad m => PrimMonad (GenT m) Source # | |
MonadResource m => MonadResource (GenT m) Source # | |
Monad m => MonadGen (GenT m) Source # | |
MFunctor * GenT Source # | |
type Transformer t GenT m Source # | |
type PrimState (GenT m) Source # | |
class Monad m => MonadGen m where Source #
Class of monads which can generate input data for tests.
The functions on this class can, and should, be used without their Gen
suffix by importing Hedgehog.Gen qualified.
Methods
liftGen :: Gen a -> m a Source #
See Gen.
lift
shrinkGen :: (a -> [a]) -> m a -> m a Source #
See Gen.
shrink
pruneGen :: m a -> m a Source #
See Gen.
prune
scaleGen :: (Size -> Size) -> m a -> m a Source #
See Gen.
scale
freezeGen :: m a -> m (a, m a) Source #
See Gen.
freeze
Instances
MonadGen m => MonadGen (MaybeT m) Source # | |
Monad m => MonadGen (GenT m) Source # | |
(MonadGen m, Monoid w) => MonadGen (WriterT w m) Source # | |
MonadGen m => MonadGen (StateT s m) Source # | |
MonadGen m => MonadGen (ExceptT x m) Source # | |
MonadGen m => MonadGen (IdentityT * m) Source # | |
MonadGen m => MonadGen (StateT s m) Source # | |
(MonadGen m, Monoid w) => MonadGen (WriterT w m) Source # | |
MonadGen m => MonadGen (ReaderT * r m) Source # | |
(MonadGen m, Monoid w) => MonadGen (RWST r w s m) Source # | |
(MonadGen m, Monoid w) => MonadGen (RWST r w s m) Source # | |
A range describes the bounds of a number to generate, which may or may not
be dependent on a Size
.
Tests are parameterized by the size of the randomly-generated data, the meaning of which depends on the particular generator used.
A splittable random number generator.
class Distributive g where Source #
Minimal complete definition
Associated Types
type Transformer (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *) (m :: * -> *) :: Constraint Source #
Methods
distribute :: Transformer f g m => g (f m) a -> f (g m) a Source #
Distribute one monad transformer over another.
Instances
Distributive MaybeT Source # | |
Distributive Tree Source # | |
Distributive GenT Source # | |
Monoid w => Distributive (WriterT w) Source # | |
Distributive (ExceptT x) Source # | |
Distributive (ReaderT * r) Source # | |