SimpleH-1.2: A light, clean and powerful Haskell utility library

Safe HaskellNone

Algebra.Monad

Contents

Synopsis

Documentation

class Functor f whereSource

Methods

map :: (a -> b) -> f a -> f bSource

class Applicative m => Monad m whereSource

Methods

join :: m (m a) -> m aSource

(>>=) :: m a -> (a -> m b) -> m bSource

Instances

Monad [] 
Monad IO 
Monad Maybe 
Monad Tree 
Monad Interleave 
Monad Id 
Monad TimeVal 
Monad ((->) a) 
Monad (Either a) 
Monoid w => Monad ((,) w) 
MonadFix m => Monad (Backwards m) 
Monad m => Monad (MaybeT m) 
Monad m => Monad (TreeT m) 
Monad m => Monad (ListT m) 
Ord t => Monad (Future t) 
Ord t => Monad (Event t) 
(Traversable g, Monad f, Monad g) => Monad (:.: f g) 
(Monad f, Monad g, Traversable f) => Monad (Compose' f g) 
Monad m => Monad (StateT s m) 
Monad m => Monad (ReaderT r m) 
(Monoid w, Monad m) => Monad (WriterT w m) 
Monad m => Monad (ContT r m) 
Monad m => Monad (EitherT e m) 
(Monoid w, Monad m) => Monad (ParserT w s m) 
(Monoid w, Monad m) => Monad (RWST r w s m) 

class Monad m => MonadFix m whereSource

The class of all monads that have a fixpoint

Methods

mfix :: (a -> m a) -> m aSource

Instances

MonadFix [] 
MonadFix IO 
MonadFix Id 
MonadFix ((->) b) 
MonadFix (Either e) 
MonadFix m => MonadFix (Backwards m) 
MonadFix m => MonadFix (MaybeT m) 
MonadFix m => MonadFix (TreeT m) 
MonadFix m => MonadFix (ListT m) 
(MonadFix f, Traversable g, Monad g) => MonadFix (:.: f g) 
(MonadFix g, Monad f, Traversable f) => MonadFix (Compose' f g) 
MonadFix m => MonadFix (StateT s m) 
MonadFix m => MonadFix (ReaderT r m) 
(Monoid w, MonadFix m) => MonadFix (WriterT w m) 
MonadFix m => MonadFix (EitherT e m) 
(Monoid w, MonadFix m) => MonadFix (ParserT w s m) 
(Monoid w, MonadFix m) => MonadFix (RWST r w s m) 

class Monad m => MonadState s m | m -> s whereSource

Methods

get :: m sSource

put :: s -> m ()Source

modify :: (s -> s) -> m ()Source

Instances

MonadState s m => MonadState s (ListT m) 
Monad m => MonadState s (StateT s m) 
MonadState s m => MonadState s (ReaderT r m) 
(Monoid w, MonadState r m) => MonadState r (WriterT w m) 
(Monoid w, Monad m) => MonadState s (ParserT w s m) 
(Monad m, Monoid w) => MonadState s (RWST r w s m) 
MonadState (IO ()) IO 

class Monad m => MonadReader r m | m -> r whereSource

Methods

ask :: m rSource

local :: (r -> r) -> m a -> m aSource

Instances

MonadReader r ((->) r) 
MonadReader r m => MonadReader r (StateT s m) 
Monad m => MonadReader r (ReaderT r m) 
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) 
(Monad m, Monoid w) => MonadReader r (RWST r w s m) 

class (Monad m, Monoid w) => MonadWriter w m | m -> w whereSource

Methods

tell :: w -> m ()Source

listen :: m a -> m (w, a)Source

censor :: m (a, w -> w) -> m aSource

Instances

Monoid w => MonadWriter w ((,) w) 
MonadWriter w m => MonadWriter w (ListT m) 
MonadWriter w m => MonadWriter w (StateT s m) 
MonadWriter w m => MonadWriter w (ReaderT r m) 
(Monoid w, Monad m) => MonadWriter w (WriterT w m) 
(Monoid w, Monad m) => MonadWriter w (ParserT w s m) 
(Monad m, Monoid w) => MonadWriter w (RWST r w s m) 

class Monad m => MonadList m whereSource

Methods

fork :: [a] -> m aSource

Instances

MonadList [] 
Monad m => MonadList (ListT m) 
MonadList m => MonadList (StateT s m) 
MonadList m => MonadList (ReaderT r m) 
(Monoid w, MonadList m) => MonadList (WriterT w m) 
(Monoid w, MonadList m) => MonadList (RWST r w s m) 

class Monad m => MonadCont m whereSource

Methods

callCC :: ((a -> m b) -> m a) -> m aSource

Instances

MonadCont m => MonadCont (StateT s m) 
MonadCont m => MonadCont (ReaderT r m) 
(Monoid w, MonadCont m) => MonadCont (WriterT w m) 
Monad m => MonadCont (ContT r m) 
(Monoid w, MonadCont m) => MonadCont (RWST r w s m) 

class Monad m => MonadError e m | m -> e whereSource

Methods

throw :: e -> m aSource

catch :: (e -> m a) -> m a -> m aSource

Monad utilities

newtype Kleisli m a b Source

Constructors

Kleisli 

Fields

runKleisli :: a -> m b
 

Instances

Monad m => Split (Kleisli m) 
Monad m => Choice (Kleisli m) 
Monad m => Category (Kleisli m) 
Monad m => Apply (Kleisli m) 
Monad m => Arrow (Kleisli m) 
Isomorphic (a -> m b) (c -> m' d) (Kleisli m a b) (Kleisli m' c d) 

_Kleisli :: Iso (Kleisli m a b) (Kleisli m' c d) (a -> m b) (c -> m' d)Source

(=<<) :: Monad m => (a -> m b) -> m a -> m bSource

joinMap :: Monad m => (a -> m b) -> m a -> m bSource

(<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m cSource

(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m cSource

(>>) :: Applicative f => f a -> f b -> f bSource

(<*=) :: Monad m => m a -> (a -> m b) -> m aSource

only :: (Monoid (m ()), Monad m) => (a -> Bool) -> m a -> m aSource

return :: Unit f => a -> f aSource

foldlM :: (Foldable t, Monad m) => (b -> a -> m a) -> a -> t b -> m aSource

foldrM :: (Foldable t, Monad m) => (b -> a -> m a) -> a -> t b -> m aSource

findM :: (Foldable t, Monad m) => (a -> m (Maybe b)) -> t a -> m (Maybe b)Source

while :: Monad m => m Bool -> m ()Source

until :: Monad m => m (Maybe a) -> m aSource

bind2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m cSource

bind3 :: Monad m => (a -> b -> c -> m d) -> m a -> m b -> m c -> m dSource

(>>>=) :: Monad m => (m a, m b) -> (a -> b -> m c) -> m cSource

(>>>>=) :: Monad m => (m a, m b, m c) -> (a -> b -> c -> m d) -> m dSource

Instance utilities

newtype Compose' f g a Source

Constructors

Compose' ((g :.: f) a) 

Instances

Monad m => MonadTrans (Compose' m) 
(Unit f, Unit g) => Unit (Compose' f g) 
(MonadFix g, Monad f, Traversable f) => MonadFix (Compose' f g) 
(Monad f, Monad g, Traversable f) => Monad (Compose' f g) 
(Applicative f, Applicative g) => Applicative (Compose' f g) 
(Functor f, Functor g) => Functor (Compose' f g) 
(Foldable f, Foldable g) => Foldable (Compose' f g) 
(Traversable f, Traversable g) => Traversable (Compose' f g) 
(Monoid (f a), Applicative g) => Monoid (Compose' f g a) 
(Semigroup (f a), Applicative g) => Semigroup (Compose' f g a) 

_Compose' :: Iso (Compose' f g a) (Compose' h i b) (g (f a)) (i (h b))Source

Common monads