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

Language | Haskell2010 |

- module Parameterized.Control.Applicative
- class PApplicative m t u v => PMonad m t u v where
- (&>>=) :: PMonad m t u v => m t a -> (a -> m u b) -> m v b
- (&>>) :: PMonad m t u v => m t a -> m u b -> m v b
- (&=<<) :: PMonad m t u v => (a -> m u b) -> m t a -> m v b
- (&>=>) :: PMonad m t u v => (a -> m t b) -> (b -> m u c) -> a -> m v c
- (&<=<) :: PMonad m t u v => (b -> m u c) -> (a -> m t b) -> a -> m v c

# Documentation

class PApplicative m t u v => PMonad m t u v where Source #

Parameterized version of Monad.

pbind :: m t a -> (a -> m u b) -> m v b Source #

Sequentially compose two actions, passing any value produced by the first as an argument to the second.

(Functor (ManyReader m (Many c)), Monad m, Select a c, Select b c, (~) [Type] c (AppendUnique Type a b)) => PMonad * (ManyReader m) (Many a) (Many b) (Many c) Source # | |

(Monad m, Select a c, Select b c, Amend a c, Amend b c, (~) [Type] c (AppendUnique Type a b)) => PMonad * (ManyState m) (Many a) (Many b) (Many c) Source # | |

Monad m => PMonad * (ChangingState m) (s, t) (t, u) (s, u) Source # | |

(&>>=) :: PMonad m t u v => m t a -> (a -> m u b) -> m v b infixl 1 Source #

Sequentially compose two actions, passing any value produced by the first as an argument to the second.

(&=<<) :: PMonad m t u v => (a -> m u b) -> m t a -> m v b infixr 1 Source #

Same as `&>>=`

, but with the arguments interchanged.