| Maintainer | Nickolay Kudasov <nickolay@getshoptv.com> | 
|---|---|
| Stability | experimental | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
Data.OpenApi.Declare
Description
Declare monad transformer and associated functions.
Synopsis
- newtype DeclareT d m a = DeclareT {- runDeclareT :: d -> m (d, a)
 
- class (Applicative m, Monad m) => MonadDeclare d m | m -> d where
- liftDeclare :: MonadDeclare d m => Declare d a -> m a
- looks :: MonadDeclare d m => (d -> a) -> m a
- evalDeclareT :: Monad m => DeclareT d m a -> d -> m a
- execDeclareT :: Monad m => DeclareT d m a -> d -> m d
- undeclareT :: (Monad m, Monoid d) => DeclareT d m a -> m a
- type Declare d = DeclareT d Identity
- runDeclare :: Declare d a -> d -> (d, a)
- evalDeclare :: Declare d a -> d -> a
- execDeclare :: Declare d a -> d -> d
- undeclare :: Monoid d => Declare d a -> a
Documentation
newtype DeclareT d m a Source #
A declare monad transformer parametrized by:
- d— the output to accumulate (declarations);
- m— the inner monad.
This monad transformer is similar to both state and writer monad transformers. Thus it can be seen as
- a restricted append-only version of a state monad transformer or
- a writer monad transformer with the extra ability to read all previous output.
Constructors
| DeclareT | |
| Fields 
 | |
Instances
| (Applicative m, Monad m, Monoid d) => MonadDeclare d (DeclareT d m) Source # | |
| Monoid d => MonadTrans (DeclareT d) Source # | |
| Defined in Data.OpenApi.Declare | |
| (Applicative m, Monad m, Monoid d) => Monad (DeclareT d m) Source # | |
| Functor m => Functor (DeclareT d m) Source # | |
| (Applicative m, Monad m, Monoid d) => Applicative (DeclareT d m) Source # | |
| Defined in Data.OpenApi.Declare | |
class (Applicative m, Monad m) => MonadDeclare d m | m -> d where Source #
Definitions of declare and look must satisfy the following laws:
Methods
declare xx.
look
Instances
| MonadDeclare d m => MonadDeclare d (MaybeT m) Source # | |
| (Monoid w, MonadDeclare d m) => MonadDeclare d (WriterT w m) Source # | |
| (Monoid w, MonadDeclare d m) => MonadDeclare d (WriterT w m) Source # | |
| MonadDeclare d m => MonadDeclare d (StateT s m) Source # | |
| MonadDeclare d m => MonadDeclare d (StateT s m) Source # | |
| MonadDeclare d m => MonadDeclare d (IdentityT m) Source # | |
| MonadDeclare d m => MonadDeclare d (ExceptT e m) Source # | |
| (Applicative m, Monad m, Monoid d) => MonadDeclare d (DeclareT d m) Source # | |
| MonadDeclare d m => MonadDeclare d (ReaderT r m) Source # | |
| MonadDeclare d m => MonadDeclare d (ContT r m) Source # | |
| (Monoid w, MonadDeclare d m) => MonadDeclare d (RWST r w s m) Source # | |
| (Monoid w, MonadDeclare d m) => MonadDeclare d (RWST r w s m) Source # | |
liftDeclare :: MonadDeclare d m => Declare d a -> m a Source #
Lift a computation from the simple Declare monad.
looks :: MonadDeclare d m => (d -> a) -> m a Source #
Retrieve a function of all the output so far.
evalDeclareT :: Monad m => DeclareT d m a -> d -> m a Source #
Evaluate DeclareT d m ad.
execDeclareT :: Monad m => DeclareT d m a -> d -> m d Source #
Execute DeclateT d m ad.
undeclareT :: (Monad m, Monoid d) => DeclareT d m a -> m a Source #
Evaluate DeclareT d m a
type Declare d = DeclareT d Identity Source #
A declare monad parametrized by d — the output to accumulate (declarations).
This monad is similar to both state and writer monads. Thus it can be seen as
- a restricted append-only version of a state monad or
- a writer monad with the extra ability to read all previous output.
runDeclare :: Declare d a -> d -> (d, a) Source #
Run Declare d ad,
 producing result a and new output d.
evalDeclare :: Declare d a -> d -> a Source #
Evaluate Declare d ad.
execDeclare :: Declare d a -> d -> d Source #
Execute Declate d ad.