mandrill-0.1.0.0: src/Network/API/Mandrill/Trans.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Network.API.Mandrill.Trans where
import Control.Monad.Reader
import Control.Applicative
import Network.API.Mandrill.Types
--------------------------------------------------------------------------------
newtype MandrillT m a = MandrillT {
runMandrillT :: ReaderT MandrillKey m a
} deriving (MonadTrans, MonadReader MandrillKey,
Functor, Applicative, Monad, MonadIO)
--------------------------------------------------------------------------------
type Mandrill = MandrillT IO
--------------------------------------------------------------------------------
runMandrill :: MonadIO m
=> MandrillKey
-> MandrillT m a
-> m a
runMandrill key action = runReaderT (runMandrillT action) key