DB
type LoggerT m = THL.LoggerT 'Timed () m
type ConfigT m = ReaderT Config m
type SqlT m = ReaderT (Pool SqlBackend) (LoggerT m)
newtype Application a = Application { runApplication :: ConfigT (LoggerT (SqlT IO)) a }
deriving (Functor, Applicative, Monad, MonadReader Config)
instance MonadLogger Application where
monadLoggerLog loc src lvl msg = Application $ lift $ monadLoggerLog loc src lvl msg

