Safe Haskell | None |
---|
SimpleH.Monad
Contents
- module SimpleH.Applicative
- class Applicative m => Monad m where
- class Monad m => MonadFix m where
- mfix :: (a -> m a) -> m a
- class MonadTrans t where
- newtype Kleisli m a b = Kleisli {
- runKleisli :: a -> m b
- _Kleisli :: Iso (Kleisli m a b) (Kleisli m' c d) (a -> m b) (c -> m' d)
- (=<<) :: Monad m => (a -> m b) -> m a -> m b
- (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
- (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
- (>>) :: Applicative f => f a -> f b -> f b
- (<*=) :: Monad m => m a -> (a -> m b) -> m a
- return :: Unit f => a -> f a
- foldlM :: (Foldable t, Monad m) => (b -> a -> m a) -> a -> t b -> m a
- foldrM :: (Foldable t, Monad m) => (b -> a -> m a) -> a -> t b -> m a
- while :: Monad m => m (Maybe a) -> m ()
- until :: Monad m => m (Maybe a) -> m a
- bind2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m c
- bind3 :: Monad m => (a -> b -> c -> m d) -> m a -> m b -> m c -> m d
- (>>>=) :: Monad m => (m a, m b) -> (a -> b -> m c) -> m c
- (>>>>=) :: Monad m => (m a, m b, m c) -> (a -> b -> c -> m d) -> m d
- newtype RWST r w s m a = RWST {
- runRWST :: (r, s) -> m (a, s, w)
- type RWS r w s a = RWST r w s Id a
- class Monad m => MonadState s m | m -> s where
- type IOLens a = Lens' (IO ()) (IO a)
- _ioref :: IORef a -> IOLens a
- _mvar :: MVar a -> IOLens a
- data StateT s m a
- type State s a = StateT s Id a
- _stateT :: (Functor m, Functor n) => Iso (StateT s m a) (StateT t n b) (s -> m (s, a)) (t -> n (t, b))
- eval :: (Functor f, Functor f') => f (f' (a, b)) -> f (f' b)
- exec :: (Functor f, Functor f') => f (f' (a, b)) -> f (f' a)
- _state :: Iso (State s a) (State t b) (s -> (s, a)) (t -> (t, b))
- (=~) :: MonadState s m => Lens' s s' -> (s' -> s') -> m ()
- (=-) :: MonadState s m => Lens' s s' -> s' -> m ()
- gets :: MonadState s m => Lens' s s' -> m s'
- saving :: MonadState s m => Lens' s s' -> m a -> m a
- mapAccum :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> (s, t b)
- mapAccum_ :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> t b
- mapAccumR :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> (s, t b)
- mapAccumR_ :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> t b
- push :: Traversable t => t a -> a -> t a
- pop :: Traversable t => t a -> a -> t a
- withPrev :: Traversable t => a -> t a -> t (a, a)
- withNext :: Traversable t => t a -> a -> t (a, a)
- class Monad m => MonadReader r m where
- data ReaderT r m a
- type Reader r a = ReaderT r Id a
- _readerT :: (Functor m, Functor m') => Iso (ReaderT r m a) (ReaderT r' m' b) (r -> m a) (r' -> m' b)
- _reader :: Iso (Reader r a) (Reader r' b) (r -> a) (r' -> b)
- class (Monad m, Monoid w) => MonadWriter w m | m -> w where
- data WriterT w m a
- type Writer w a = WriterT w Id a
- _writerT :: (Functor m, Functor m') => Iso (WriterT w m a) (WriterT w' m' b) (m (w, a)) (m' (w', b))
- _writer :: Iso (Writer w a) (Writer w' b) (w, a) (w', b)
- mute :: (MonadWriter w m, Monoid w) => m a -> m a
- intercept :: (MonadWriter w m, Monoid w) => m a -> m (w, a)
- class Monad m => MonadCont m where
- callCC :: ((a -> m b) -> m a) -> m a
- newtype ContT r m a = ContT {
- runContT :: (a -> m r) -> m r
- type Cont r a = ContT r Id a
- evalContT :: Unit m => ContT r m r -> m r
- evalCont :: Cont r r -> r
- class Monad m => MonadList m where
- fork :: [a] -> m a
- data ListT m a
- _listT :: Iso (ListT m a) (ListT m' a') (m [a]) (m' [a'])
- class Monad m => MonadError e m where
- try :: MonadError Void m => m a -> m a -> m a
- data EitherT e m a
- _eitherT :: Functor m => Iso (EitherT e m a) (EitherT f m b) (m (e :+: a)) (m (f :+: b))
Documentation
module SimpleH.Applicative
The basic Monad interface
class Applicative m => Monad m whereSource
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 (ListT m) | |
Ord t => Monad (Future t) | |
Ord t => Monad (Event t) | |
(Traversable g, Monad f, Monad g) => Monad (:.: f g) | |
Monad m => Monad (EitherT e m) | |
Monad m => Monad (ContT r m) | |
(Monoid w, Monad m) => Monad (WriterT w m) | |
Monad m => Monad (ReaderT r m) | |
Monad m => Monad (StateT s m) | |
(Monoid w, Monad m) => Monad (ParserT w c 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
Instances
MonadFix [] | |
MonadFix IO | |
MonadFix Id | |
MonadFix ((->) b) | |
MonadFix (Either e) | |
MonadFix m => MonadFix (ListT m) | |
(MonadFix f, Traversable g, Monad g) => MonadFix (:.: f g) | |
MonadFix m => MonadFix (EitherT e m) | |
(Monoid w, MonadFix m) => MonadFix (WriterT w m) | |
MonadFix m => MonadFix (ReaderT r m) | |
MonadFix m => MonadFix (StateT s m) | |
(Monoid w, MonadFix m) => MonadFix (ParserT w c m) | |
(Monoid w, MonadFix m) => MonadFix (RWST r w s m) |
class MonadTrans t whereSource
Instances
MonadTrans Backwards | |
MonadTrans ListT | |
MonadTrans (EitherT e) | |
MonadTrans (ContT r) | |
Monoid w => MonadTrans (WriterT w) | |
MonadTrans (ReaderT r) | |
MonadTrans (StateT s) | |
Monoid w => MonadTrans (RWST r w s) |
Monad utilities
Constructors
Kleisli | |
Fields
|
(>>) :: Applicative f => f a -> f b -> f bSource
Common monads
The RWS Monad
Instances
(Monoid w, MonadError e m) => MonadError e (RWST r w s m) | |
(Monad m, Monoid w) => MonadWriter w (RWST r w s m) | |
(Monad m, Monoid w) => MonadReader r (RWST r w s m) | |
(Monad m, Monoid w) => MonadState s (RWST r w s m) | |
Monoid w => MonadTrans (RWST r w s) | |
(Unit f, Monoid w) => Unit (RWST r w s f) | |
(Monoid w, Monad m) => Monad (RWST r w s m) | |
(Monoid w, Monad m) => Applicative (RWST r w s m) | |
Functor f => Functor (RWST r w s f) | |
Foldable m => Foldable (RWST Void w Void m) | |
Traversable m => Traversable (RWST Void w Void m) | |
(Monoid w, MonadCont m) => MonadCont (RWST r w s m) | |
(Monoid w, MonadFix m) => MonadFix (RWST r w s m) | |
Ring (m (a, s, w)) => Ring (RWST r w s m a) | |
Monoid (m (a, s, w)) => Monoid (RWST r w s m a) | |
Semigroup (m (a, s, w)) => Semigroup (RWST r w s m a) |
The State Monad
class Monad m => MonadState s m | m -> s whereSource
A simple State Monad
Instances
MonadState s m => MonadState s (ListT m) | |
Monad m => MonadState s (StateT s m) | |
(Monoid w, MonadState r m) => MonadState r (WriterT w m) | |
MonadState s m => MonadState s (ReaderT r m) | |
(Monad m, Monoid w) => MonadState s (RWST r w s m) | |
MonadState (IO ()) IO | |
(Monoid w, Monad m) => MonadState [c] (ParserT w c m) |
Instances
MonadError e m => MonadError e (StateT s m) | |
MonadWriter w m => MonadWriter w (StateT s m) | |
MonadReader r m => MonadReader r (StateT s m) | |
Monad m => MonadState s (StateT s m) | |
MonadTrans (StateT s) | |
Unit m => Unit (StateT s m) | |
Monad m => Monad (StateT s m) | |
Monad m => Applicative (StateT s m) | |
Functor m => Functor (StateT s m) | |
MonadCont m => MonadCont (StateT s m) | |
MonadFix m => MonadFix (StateT s m) | |
Ring (m (a, s, Void)) => Ring (StateT s m a) | |
Monoid (m (a, s, Void)) => Monoid (StateT s m a) | |
Semigroup (m (a, s, Void)) => Semigroup (StateT s m a) |
_stateT :: (Functor m, Functor n) => Iso (StateT s m a) (StateT t n b) (s -> m (s, a)) (t -> n (t, b))Source
(=~) :: MonadState s m => Lens' s s' -> (s' -> s') -> m ()Source
(=-) :: MonadState s m => Lens' s s' -> s' -> m ()Source
gets :: MonadState s m => Lens' s s' -> m s'Source
saving :: MonadState s m => Lens' s s' -> m a -> m aSource
mapAccum :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> (s, t b)Source
mapAccum_ :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> t bSource
mapAccumR :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> (s, t b)Source
mapAccumR_ :: Traversable t => (a -> s -> (s, b)) -> t a -> s -> t bSource
push :: Traversable t => t a -> a -> t aSource
pop :: Traversable t => t a -> a -> t aSource
withPrev :: Traversable t => a -> t a -> t (a, a)Source
withNext :: Traversable t => t a -> a -> t (a, a)Source
The Reader monad
class Monad m => MonadReader r m whereSource
Instances
MonadReader r ((->) r) | |
Monad m => MonadReader r (ReaderT r m) | |
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |
MonadReader r m => MonadReader r (StateT s m) | |
(Monad m, Monoid w) => MonadReader r (RWST r w s m) |
A simple Reader monad
Instances
MonadWriter w m => MonadWriter w (ReaderT r m) | |
Monad m => MonadReader r (ReaderT r m) | |
MonadState s m => MonadState s (ReaderT r m) | |
MonadTrans (ReaderT r) | |
Unit m => Unit (ReaderT r m) | |
Monad m => Monad (ReaderT r m) | |
Monad m => Applicative (ReaderT r m) | |
Functor m => Functor (ReaderT r m) | |
MonadCont m => MonadCont (ReaderT r m) | |
MonadFix m => MonadFix (ReaderT r m) | |
Ring (m (a, Void, Void)) => Ring (ReaderT r m a) | |
Monoid (m (a, Void, Void)) => Monoid (ReaderT r m a) | |
Semigroup (m (a, Void, Void)) => Semigroup (ReaderT r m a) |
_readerT :: (Functor m, Functor m') => Iso (ReaderT r m a) (ReaderT r' m' b) (r -> m a) (r' -> m' b)Source
The Writer monad
class (Monad m, Monoid w) => MonadWriter w m | m -> w whereSource
Instances
MonadWriter w m => MonadWriter w (ListT m) | |
Monoid w => MonadWriter w ((,) w) | |
(Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
MonadWriter w m => MonadWriter w (ReaderT r m) | |
MonadWriter w m => MonadWriter w (StateT s m) | |
(Monoid w, Monad m) => MonadWriter w (ParserT w c m) | |
(Monad m, Monoid w) => MonadWriter w (RWST r w s m) |
A simple Writer monad
Instances
(Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |
(Monoid w, MonadState r m) => MonadState r (WriterT w m) | |
Monoid w => MonadTrans (WriterT w) | |
(Unit m, Monoid w) => Unit (WriterT w m) | |
(Monoid w, Monad m) => Monad (WriterT w m) | |
(Monoid w, Monad m) => Applicative (WriterT w m) | |
Functor m => Functor (WriterT w m) | |
Foldable m => Foldable (WriterT w m) | |
Traversable m => Traversable (WriterT w m) | |
(Monoid w, MonadCont m) => MonadCont (WriterT w m) | |
(Monoid w, MonadFix m) => MonadFix (WriterT w m) | |
Ring (m (a, Void, w)) => Ring (WriterT w m a) | |
Monoid (m (a, Void, w)) => Monoid (WriterT w m a) | |
Semigroup (m (a, Void, w)) => Semigroup (WriterT w m a) |
_writerT :: (Functor m, Functor m') => Iso (WriterT w m a) (WriterT w' m' b) (m (w, a)) (m' (w', b))Source
mute :: (MonadWriter w m, Monoid w) => m a -> m aSource
intercept :: (MonadWriter w m, Monoid w) => m a -> m (w, a)Source
The Continuation monad
Instances
The List monad
Instances
MonadTrans ListT | |
Monad m => MonadError Void (ListT m) | |
MonadWriter w m => MonadWriter w (ListT m) | |
MonadState s m => MonadState s (ListT m) | |
Unit m => Unit (ListT m) | |
Monad m => Monad (ListT m) | |
Applicative m => Applicative (ListT m) | |
Functor m => Functor (ListT m) | |
Foldable m => Foldable (ListT m) | |
Traversable m => Traversable (ListT m) | |
Monad m => MonadList (ListT m) | |
MonadFix m => MonadFix (ListT m) | |
Applicative m => Monoid (ListT m a) | |
Applicative m => Semigroup (ListT m a) |
The Error Monad
class Monad m => MonadError e m whereSource
Instances
Exception e => MonadError e IO | |
MonadError Void [] | |
MonadError Void Maybe | |
MonadError e (Either e) | |
Monad m => MonadError Void (ListT m) | |
MonadError e m => MonadError e (StateT s m) | |
(Monad m, Monoid w) => MonadError Void (ParserT w c m) | |
(Monoid w, MonadError e m) => MonadError e (RWST r w s m) |
try :: MonadError Void m => m a -> m a -> m aSource
Instances
MonadTrans (EitherT e) | |
Unit m => Unit (EitherT e m) | |
Monad m => Monad (EitherT e m) | |
Applicative m => Applicative (EitherT e m) | |
Functor m => Functor (EitherT e m) | |
Foldable m => Foldable (EitherT e m) | |
Traversable m => Traversable (EitherT e m) | |
MonadFix m => MonadFix (EitherT e m) |