parameterized-0.3.0.0: Extensible records and polymorphic variants.

Safe HaskellSafe
LanguageHaskell2010

Parameterized.Control.Monad

Synopsis

Documentation

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

Parameterized version of Monad.

Minimal complete definition

pbind

Methods

pbind :: 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.

Instances

(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 # 

Methods

pbind :: Many a (Many b) a -> (a -> Many a (Many c) b) -> Many a v b 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 # 

Methods

pbind :: Many a (Many b) a -> (a -> Many a (Many c) b) -> Many a v b Source #

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

Methods

pbind :: (s, t) (t, u) a -> (a -> (s, t) (s, u) b) -> (s, t) v b 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 => m t a -> m u b -> m v b infixl 1 Source #

(&=<<) :: 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.

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

Left-to-right Kleisli composition of monads.

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

Right-to-left Kleisli composition of monads. (>=>), with the arguments flipped.