request-monad-0.3.0.1: A transformer for generic requests

Copyright(c) Tom Hulihan <hulihan.tom159@gmail.com> 2014,
LicenseMIT
Maintainerhulihan.tom159@gmail.com
Stabilityexperimental
Portabilitynon-portable (multi-parameter type classes)
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Synopsis

Documentation

class Monad m => MonadRequest r r' m | m -> r r' where Source

This type class generalizes monadic requests.

Parameters:

  • r - The type of request
  • r' - The type of response
  • m - The monad through which the requests are sent

Methods

send :: r -> m r' Source

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)