@@ -31,6 +31,9 @@ import qualified Control.Concurrent.STM.TBQueue as BQ
31import Control.Exception.Safe
31import Control.Exception.Safe
32import Control.Monad (unless, void, when)
32import Control.Monad (unless, void, when)
33import Control.Monad.Base
33import Control.Monad.Base
34+#if MIN_VERSION_base(4, 9, 0)
35+import qualified Control.Monad.Fail as MF
34import Control.Monad.IO.Class
37import Control.Monad.IO.Class
35import Control.Monad.IO.Unlift
38import Control.Monad.IO.Unlift
36import Control.Monad.Trans.Class
39import Control.Monad.Trans.Class
@@ -902,6 +905,12 @@ instance MonadUnliftIO m => MonadUnliftIO (KatipT m) where
902 withUnliftIO $ \u ->
905 withUnliftIO $ \u ->
903 pure (UnliftIO (unliftIO u . unKatipT))
906 pure (UnliftIO (unliftIO u . unKatipT))
908+#if MIN_VERSION_base(4, 9, 0)
909+instance MF.MonadFail m => MF.MonadFail (KatipT m) where
910+ fail msg = lift (MF.fail msg)
905-------------------------------------------------------------------------------
914-------------------------------------------------------------------------------
906-- | Execute 'KatipT' on a log env.
915-- | Execute 'KatipT' on a log env.
907runKatipT :: LogEnv -> KatipT m a -> m a
916runKatipT :: LogEnv -> KatipT m a -> m a