Copyright | (c) Tom Hulihan <hulihan.tom159@gmail.com> 2014, |
---|---|
License | MIT |
Maintainer | hulihan.tom159@gmail.com |
Stability | experimental |
Portability | non-portable (multi-parameter type classes) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Control.Monad.Request.Class
Description
- Computation type:
- Compuations that send requests and handle responses
- Binding strategy:
- Response callbacks are composed with the binding function
- Useful for:
- Implementation-agnostic requests (i.e. making real requests versus mocking), adding middlewares.
- Example type:
Request
String String a
The Request monad
- class Monad m => MonadRequest r r' m | m -> r r' where
- send :: r -> m r'
Documentation
class Monad m => MonadRequest r r' m | m -> r r' where Source
This type class generalizes monadic requests.
Parameters:
r
- The type of requestr'
- The type of responsem
- The monad through which the requests are sent
Methods
Given a request of type r
, perform an action in m
whose result is
r'
.
Instances
MonadRequest r r' m => MonadRequest r r' (MaybeT m) | |
MonadRequest r r' m => MonadRequest r r' (ListT m) | |
MonadRequest r r' m => MonadRequest r r' (IdentityT m) | |
(Monoid w, MonadRequest r r' m) => MonadRequest r r' (WriterT w m) | |
(Monoid w, MonadRequest r r' m) => MonadRequest r r' (WriterT w m) | |
MonadRequest r r' m => MonadRequest r r' (StateT x m) | |
MonadRequest r r' m => MonadRequest r r' (StateT x m) | |
MonadRequest r r' m => MonadRequest r r' (ReaderT x m) | |
MonadRequest r r' m => MonadRequest r r' (ExceptT e m) | |
(Error e, MonadRequest r r' m) => MonadRequest r r' (ErrorT e m) | |
MonadRequest r r' m => MonadRequest r r' (ContT x m) | |
Monad m => MonadRequest r r' (RequestT r r' m) | |
(Monoid w, MonadRequest r r' m) => MonadRequest r r' (RWST x w s m) | |
(Monoid w, MonadRequest r r' m) => MonadRequest r r' (RWST x w s m) |