Safe Haskell | None |
---|---|

Language | Haskell98 |

# Documentation

class MonadTransDistributive g where Source #

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

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

Distribute one monad transformer over another.

## Instances

class MonadTransControl t => MonadTransJuggle (t :: (* -> *) -> * -> *) where Source #

mapStT :: Proxy t -> Proxy a -> (a -> b) -> StT t a -> StT t b Source #

juggleState :: Proxy t -> Proxy a -> s -> StT t (a, s) -> (StT t a, s) Source #

## Instances

MonadTransJuggle MaybeT Source # | |

MonadTransJuggle (ExceptT x) Source # | |

Monoid w => MonadTransJuggle (WriterT w) Source # | |

MonadTransJuggle (StateT s) Source # | |

MonadTransJuggle (StateT s) Source # | |

Monoid w => MonadTransJuggle (WriterT w) Source # | |

MonadTransJuggle (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |

Monoid w => MonadTransJuggle (RWST r w s) Source # | |

Monoid w => MonadTransJuggle (RWST r w s) Source # | |