| 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:
RequestString 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) |