{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} -- | Contexts for monad transformers. -- module Network.Warped.Types.Ctx ( module Network.Warped.Types.Ctx ) where import Data.UUID import Network.Wai import Network.Warped.Prelude import Network.Warped.Types.Alias -- | WaiCtx -- -- Context containing WAI application. -- data WaiCtx = WaiCtx { _wcSessionUid :: UUID -- ^ Session Id. , _wcRequest :: Request -- ^ WAI request. , _wcRespond :: Respond -- ^ WAI response. } $(makeClassy 'WaiCtx) type MonadWai c m = ( MonadIO m , MonadReader c m , HasWaiCtx c )