hedgehog-1.5: Release with confidence.

Safe Haskell | None
Language | Haskell2010

Hedgehog.Internal.Distributive

# Documentation

class MonadTransDistributive (g :: (Type -> Type) -> Type -> Type) where Source #

Associated Types

type Transformer (f :: (Type -> Type) -> Type -> Type) (g :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) Source #

type Transformer (f :: (Type -> Type) -> Type -> Type) (g :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) = (Monad m, Monad (f m), Monad (g m), Monad (f (g m)), MonadTrans f, MFunctor f)

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f g m => g (f m) a -> f (g m) a Source #

Distribute one monad transformer over another.

#### Instances

Instances details

MonadTransDistributive GenT Source # |

Instance details

Defined in Hedgehog.Internal.Gen

Associated Types

type Transformer t GenT m |
Instance details Defined in Hedgehog.Internal.Gen type Transformer t GenT m = (Monad (t (GenT m)), Transformer t MaybeT m, Transformer t TreeT (MaybeT m))

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f GenT m => GenT (f m) a -> f (GenT m) a Source #

MonadTransDistributive PropertyT Source # |

Instance details

Defined in Hedgehog.Internal.Property

Associated Types

type Transformer t PropertyT m |
Instance details Defined in Hedgehog.Internal.Property type Transformer t PropertyT m = (Transformer t GenT m, Transformer t TestT (GenT m))

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f PropertyT m => PropertyT (f m) a -> f (PropertyT m) a Source #

MonadTransDistributive TestT Source # |

Instance details

Defined in Hedgehog.Internal.Property

Associated Types

type Transformer t TestT m |
Instance details Defined in Hedgehog.Internal.Property type Transformer t TestT m = (Transformer t (WriterT Journal) m, Transformer t (ExceptT Failure) (WriterT Journal m))

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f TestT m => TestT (f m) a -> f (TestT m) a Source #

MonadTransDistributive TreeT Source # |

Instance details

Defined in Hedgehog.Internal.Tree

Associated Types

type Transformer f TreeT m |
Instance details Defined in Hedgehog.Internal.Tree type Transformer f TreeT m = (Monad m, Monad (f m), Monad (TreeT m), Monad (f (TreeT m)), MonadTrans f, MFunctor f)

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f TreeT m => TreeT (f m) a -> f (TreeT m) a Source #

MonadTransDistributive MaybeT Source # |

Instance details

Defined in Hedgehog.Internal.Distributive

Associated Types

type Transformer f MaybeT m |
Instance details Defined in Hedgehog.Internal.Distributive type Transformer f MaybeT m = (Monad m, Monad (f m), Monad (MaybeT m), Monad (f (MaybeT m)), MonadTrans f, MFunctor f)

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f MaybeT m => MaybeT (f m) a -> f (MaybeT m) a Source #

MonadTransDistributive (ExceptT x) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (ExceptT x) m => ExceptT x (f m) a -> f (ExceptT x m) a Source #
MonadTransDistributive (IdentityT :: (Type -> Type) -> Type -> Type) Source # |

Instance details

Defined in Hedgehog.Internal.Distributive

Associated Types

type Transformer f (IdentityT :: (Type -> Type) -> Type -> Type) m |
Instance details Defined in Hedgehog.Internal.Distributive type Transformer f (IdentityT :: (Type -> Type) -> Type -> Type) m = (Monad m, Monad (f m), Monad (IdentityT m), Monad (f (IdentityT m)), MonadTrans f, MFunctor f)

Methods

distributeT :: forall f (m :: Type -> Type) a. Transformer f (IdentityT :: (Type -> Type) -> Type -> Type) m => IdentityT (f m) a -> f (IdentityT m) a Source #

MonadTransDistributive (ReaderT r) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (ReaderT r) m => ReaderT r (f m) a -> f (ReaderT r m) a Source #
MonadTransDistributive (StateT s) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (StateT s) m => StateT s (f m) a -> f (StateT s m) a Source #
MonadTransDistributive (StateT s) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (StateT s) m => StateT s (f m) a -> f (StateT s m) a Source #
Monoid w => MonadTransDistributive (WriterT w) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (WriterT w) m => WriterT w (f m) a -> f (WriterT w m) a Source #
Monoid w => MonadTransDistributive (WriterT w) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (WriterT w) m => WriterT w (f m) a -> f (WriterT w m) a Source #
Monoid w => MonadTransDistributive (RWST r w s) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (RWST r w s) m => RWST r w s (f m) a -> f (RWST r w s m) a Source #
Monoid w => MonadTransDistributive (RWST r w s) Source # |
Instance details Defined in Hedgehog.Internal.Distributive Methods distributeT :: forall f (m :: Type -> Type) a. Transformer f (RWST r w s) m => RWST r w s (f m) a -> f (RWST r w s m) a Source #