{-# LANGUAGE UnicodeSyntax #-}
{-# LANGUAGE ConstraintKinds #-}
module MatrixBot.Bot.BotM
( BotM
) where
import Control.Monad.IO.Class (MonadIO)
import Control.Monad.IO.Unlift (MonadUnliftIO)
import qualified Control.Exception.Safe as E
import qualified Control.Monad.Logger as ML
import qualified Control.Monad.Reader as MR
import qualified MatrixBot.Auth as Auth
import qualified MatrixBot.SharedTypes as T
type BotM r m =
( MonadIO m
, MonadUnliftIO m
, MonadFail m
, E.MonadMask m
, MR.MonadReader r m
, ML.MonadLogger m
, Auth.HasCredentials r
, T.HasRetryParams r
)