monad-http-0.1.0.0: A class of monads which can do http requests

Copyright(C) 2015 Futurice Oy
LicenseBSD-3-Clause
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Http

Description

 

Synopsis

Documentation

newtype HttpT m a #

Http monad transformer, essentially ReaderT Manager.

Constructors

HttpT 

Fields

Instances

MonadTrans HttpT # 

Methods

lift :: Monad m => m a -> HttpT m a #

MonadRWS r w s m => MonadRWS r w s (HttpT m) # 
MonadSplit g m => MonadSplit g (HttpT m) # 

Methods

getSplit :: HttpT m g #

MonadCRandom e m => MonadCRandom e (HttpT m) # 
MonadCRandomR e m => MonadCRandomR e (HttpT m) # 

Methods

getCRandomR :: CRandomR a => (a, a) -> HttpT m a #

MonadError e m => MonadError e (HttpT m) # 

Methods

throwError :: e -> HttpT m a #

catchError :: HttpT m a -> (e -> HttpT m a) -> HttpT m a #

MonadReader r m => MonadReader r (HttpT m) # 

Methods

ask :: HttpT m r #

local :: (r -> r) -> HttpT m a -> HttpT m a #

reader :: (r -> a) -> HttpT m a #

MonadState s m => MonadState s (HttpT m) # 

Methods

get :: HttpT m s #

put :: s -> HttpT m () #

state :: (s -> (a, s)) -> HttpT m a #

MonadWriter w m => MonadWriter w (HttpT m) # 

Methods

writer :: (a, w) -> HttpT m a #

tell :: w -> HttpT m () #

listen :: HttpT m a -> HttpT m (a, w) #

pass :: HttpT m (a, w -> w) -> HttpT m a #

Monad m => Monad (HttpT m) # 

Methods

(>>=) :: HttpT m a -> (a -> HttpT m b) -> HttpT m b #

(>>) :: HttpT m a -> HttpT m b -> HttpT m b #

return :: a -> HttpT m a #

fail :: String -> HttpT m a #

Functor m => Functor (HttpT m) # 

Methods

fmap :: (a -> b) -> HttpT m a -> HttpT m b #

(<$) :: a -> HttpT m b -> HttpT m a #

Applicative m => Applicative (HttpT m) # 

Methods

pure :: a -> HttpT m a #

(<*>) :: HttpT m (a -> b) -> HttpT m a -> HttpT m b #

(*>) :: HttpT m a -> HttpT m b -> HttpT m b #

(<*) :: HttpT m a -> HttpT m b -> HttpT m a #

MonadIO m => MonadIO (HttpT m) # 

Methods

liftIO :: IO a -> HttpT m a #

MonadRandom m => MonadRandom (HttpT m) # 

Methods

getRandomR :: Random a => (a, a) -> HttpT m a #

getRandom :: Random a => HttpT m a #

getRandomRs :: Random a => (a, a) -> HttpT m [a] #

getRandoms :: Random a => HttpT m [a] #

MonadThrow m => MonadThrow (HttpT m) # 

Methods

throwM :: Exception e => e -> HttpT m a #

MonadCatch m => MonadCatch (HttpT m) # 

Methods

catch :: Exception e => HttpT m a -> (e -> HttpT m a) -> HttpT m a #

MonadMask m => MonadMask (HttpT m) # 

Methods

mask :: ((forall a. HttpT m a -> HttpT m a) -> HttpT m b) -> HttpT m b #

uninterruptibleMask :: ((forall a. HttpT m a -> HttpT m a) -> HttpT m b) -> HttpT m b #

MonadLogger m => MonadLogger (HttpT m) # 

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> HttpT m () #

MonadLoggerIO m => MonadLoggerIO (HttpT m) # 

Methods

askLoggerIO :: HttpT m (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

MonadCont m => MonadCont (HttpT m) # 

Methods

callCC :: ((a -> HttpT m b) -> HttpT m a) -> HttpT m a #

(~) (* -> *) m IO => MonadHttp (HttpT m) #

TODO: Generalise to MonadIO + MonadMask?

evalHttpT :: MonadIO m => HttpT m a -> m a #

Lower HttpT with default Manager created with tlsManagerSettings.

mapHttpT :: (m a -> m b) -> HttpT m a -> HttpT m b #

liftHttpT :: m a -> HttpT m a #