update-monad-0.1.0.0

Safe HaskellSafe
LanguageHaskell2010

FreeUpdate

Documentation

data FreeUpdateT s p m a Source #

Constructors

FreeUpdateT 

Fields

Instances
Monad m => Monad (FreeUpdateT s p m) Source # 
Instance details

Defined in FreeUpdate

Methods

(>>=) :: FreeUpdateT s p m a -> (a -> FreeUpdateT s p m b) -> FreeUpdateT s p m b #

(>>) :: FreeUpdateT s p m a -> FreeUpdateT s p m b -> FreeUpdateT s p m b #

return :: a -> FreeUpdateT s p m a #

fail :: String -> FreeUpdateT s p m a #

Functor m => Functor (FreeUpdateT s p m) Source # 
Instance details

Defined in FreeUpdate

Methods

fmap :: (a -> b) -> FreeUpdateT s p m a -> FreeUpdateT s p m b #

(<$) :: a -> FreeUpdateT s p m b -> FreeUpdateT s p m a #

Monad m => Applicative (FreeUpdateT s p m) Source # 
Instance details

Defined in FreeUpdate

Methods

pure :: a -> FreeUpdateT s p m a #

(<*>) :: FreeUpdateT s p m (a -> b) -> FreeUpdateT s p m a -> FreeUpdateT s p m b #

liftA2 :: (a -> b -> c) -> FreeUpdateT s p m a -> FreeUpdateT s p m b -> FreeUpdateT s p m c #

(*>) :: FreeUpdateT s p m a -> FreeUpdateT s p m b -> FreeUpdateT s p m b #

(<*) :: FreeUpdateT s p m a -> FreeUpdateT s p m b -> FreeUpdateT s p m a #

MonadIO m => MonadIO (FreeUpdateT s p m) Source # 
Instance details

Defined in FreeUpdate

Methods

liftIO :: IO a -> FreeUpdateT s p m a #

action :: Applicative m => p -> FreeUpdateT s p m () Source #

evalFreeUpdateT :: Functor m => FreeUpdateT s p m a -> (p -> s -> s) -> s -> m a Source #

execFreeUpdateT :: Monad m => FreeUpdateT s p m a -> (p -> s -> s) -> s -> m s Source #

collectUpdateT :: Functor m => FreeUpdateT s p m a -> (p -> s -> s) -> s -> m [p] Source #

evalFreeUpdate :: FreeUpdate s p a -> (p -> s -> s) -> s -> a Source #

execFreeUpdate :: FreeUpdate s p a -> (p -> s -> s) -> s -> s Source #

collectFreeUpdate :: FreeUpdate s p a -> (p -> s -> s) -> s -> [p] Source #

runFreeUpdate :: FreeUpdate s p a -> (p -> s -> s) -> s -> ([p], a) Source #