monadLib-3.7.3: A collection of monad transformers.

Safe HaskellSafe
LanguageHaskell98

MonadLib.Monads

Description

This module contains a collection of monads that are defined in terms of the monad transformers from MonadLib. The definitions in this module are completely mechanical and so this module may become obsolete if support for automated derivations for instances becomes well supported across implementations.

Documentation

data Reader i a #

Instances

Monad (Reader i) # 

Methods

(>>=) :: Reader i a -> (a -> Reader i b) -> Reader i b #

(>>) :: Reader i a -> Reader i b -> Reader i b #

return :: a -> Reader i a #

fail :: String -> Reader i a #

Functor (Reader i) # 

Methods

fmap :: (a -> b) -> Reader i a -> Reader i b #

(<$) :: a -> Reader i b -> Reader i a #

MonadFix (Reader i) # 

Methods

mfix :: (a -> Reader i a) -> Reader i a #

Applicative (Reader i) # 

Methods

pure :: a -> Reader i a #

(<*>) :: Reader i (a -> b) -> Reader i a -> Reader i b #

(*>) :: Reader i a -> Reader i b -> Reader i b #

(<*) :: Reader i a -> Reader i b -> Reader i a #

RunReaderM (Reader i) i # 

Methods

local :: i -> Reader i a -> Reader i a #

ReaderM (Reader i) i # 

Methods

ask :: Reader i i #

BaseM (Reader i) (Reader i) # 

Methods

inBase :: Reader i a -> Reader i a #

data Writer i a #

Instances

Monoid i => Monad (Writer i) # 

Methods

(>>=) :: Writer i a -> (a -> Writer i b) -> Writer i b #

(>>) :: Writer i a -> Writer i b -> Writer i b #

return :: a -> Writer i a #

fail :: String -> Writer i a #

Monoid i => Functor (Writer i) # 

Methods

fmap :: (a -> b) -> Writer i a -> Writer i b #

(<$) :: a -> Writer i b -> Writer i a #

Monoid i => MonadFix (Writer i) # 

Methods

mfix :: (a -> Writer i a) -> Writer i a #

Monoid i => Applicative (Writer i) # 

Methods

pure :: a -> Writer i a #

(<*>) :: Writer i (a -> b) -> Writer i a -> Writer i b #

(*>) :: Writer i a -> Writer i b -> Writer i b #

(<*) :: Writer i a -> Writer i b -> Writer i a #

Monoid i => RunWriterM (Writer i) i # 

Methods

collect :: Writer i a -> Writer i (a, i) #

Monoid i => WriterM (Writer i) i # 

Methods

put :: i -> Writer i () #

Monoid i => BaseM (Writer i) (Writer i) # 

Methods

inBase :: Writer i a -> Writer i a #

data State i a #

Instances

Monad (State i) # 

Methods

(>>=) :: State i a -> (a -> State i b) -> State i b #

(>>) :: State i a -> State i b -> State i b #

return :: a -> State i a #

fail :: String -> State i a #

Functor (State i) # 

Methods

fmap :: (a -> b) -> State i a -> State i b #

(<$) :: a -> State i b -> State i a #

MonadFix (State i) # 

Methods

mfix :: (a -> State i a) -> State i a #

Applicative (State i) # 

Methods

pure :: a -> State i a #

(<*>) :: State i (a -> b) -> State i a -> State i b #

(*>) :: State i a -> State i b -> State i b #

(<*) :: State i a -> State i b -> State i a #

StateM (State i) i # 

Methods

get :: State i i #

set :: i -> State i () #

BaseM (State i) (State i) # 

Methods

inBase :: State i a -> State i a #

data Exception i a #

Instances

Monad (Exception i) # 

Methods

(>>=) :: Exception i a -> (a -> Exception i b) -> Exception i b #

(>>) :: Exception i a -> Exception i b -> Exception i b #

return :: a -> Exception i a #

fail :: String -> Exception i a #

Functor (Exception i) # 

Methods

fmap :: (a -> b) -> Exception i a -> Exception i b #

(<$) :: a -> Exception i b -> Exception i a #

MonadFix (Exception i) # 

Methods

mfix :: (a -> Exception i a) -> Exception i a #

Applicative (Exception i) # 

Methods

pure :: a -> Exception i a #

(<*>) :: Exception i (a -> b) -> Exception i a -> Exception i b #

(*>) :: Exception i a -> Exception i b -> Exception i b #

(<*) :: Exception i a -> Exception i b -> Exception i a #

RunExceptionM (Exception i) i # 

Methods

try :: Exception i a -> Exception i (Either i a) #

ExceptionM (Exception i) i # 

Methods

raise :: i -> Exception i a #

BaseM (Exception i) (Exception i) # 

Methods

inBase :: Exception i a -> Exception i a #

data Cont i a #

Instances

Monad (Cont i) # 

Methods

(>>=) :: Cont i a -> (a -> Cont i b) -> Cont i b #

(>>) :: Cont i a -> Cont i b -> Cont i b #

return :: a -> Cont i a #

fail :: String -> Cont i a #

Functor (Cont i) # 

Methods

fmap :: (a -> b) -> Cont i a -> Cont i b #

(<$) :: a -> Cont i b -> Cont i a #

Applicative (Cont i) # 

Methods

pure :: a -> Cont i a #

(<*>) :: Cont i (a -> b) -> Cont i a -> Cont i b #

(*>) :: Cont i a -> Cont i b -> Cont i b #

(<*) :: Cont i a -> Cont i b -> Cont i a #

ContM (Cont i) # 

Methods

callWithCC :: ((a -> Label (Cont i)) -> Cont i a) -> Cont i a #

BaseM (Cont i) (Cont i) # 

Methods

inBase :: Cont i a -> Cont i a #

runReader :: i -> Reader i a -> a #

runWriter :: Writer i a -> (a, i) #

runState :: i -> State i a -> (a, i) #

runCont :: (a -> i) -> Cont i a -> i #

module MonadLib