on master help sign in
Merge pull request #108 from korayal/add-monadfail-instance
63faa91Michael Xavier
katip/src/Katip/Core.hs+9
@@ -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
36+#endif
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))
904
907
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)
911+ {-# INLINE fail #-}
912+#endif
913+
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
katip/src/Katip/Monadic.hs+8
@@ -44,6 +44,9 @@ import Control.Applicative
44import Control.Exception.Safe
44import Control.Exception.Safe
45import Control.Monad.Base
45import Control.Monad.Base
46import Control.Monad.Error.Class
46import Control.Monad.Error.Class
47+#if MIN_VERSION_base(4, 9, 0)
48+import qualified Control.Monad.Fail as MF
49+#endif
47import Control.Monad.IO.Class
50import Control.Monad.IO.Class
48import Control.Monad.IO.Unlift
51import Control.Monad.IO.Unlift
49import Control.Monad.Reader
52import Control.Monad.Reader
@@ -396,6 +399,11 @@ instance MonadUnliftIO m => MonadUnliftIO (KatipContextT m) where
396 withUnliftIO $ \u ->
399 withUnliftIO $ \u ->
397 pure (UnliftIO (unliftIO u . unKatipContextT))
400 pure (UnliftIO (unliftIO u . unKatipContextT))
398
401
402+#if MIN_VERSION_base(4, 9, 0)
403+instance MF.MonadFail m => MF.MonadFail (KatipContextT m) where
404+ fail msg = lift (MF.fail msg)
405+ {-# INLINE fail #-}
406+#endif
399
407
400-------------------------------------------------------------------------------
408-------------------------------------------------------------------------------
401runKatipContextT :: (LogItem c) => LogEnv -> c -> Namespace -> KatipContextT m a -> m a
409runKatipContextT :: (LogItem c) => LogEnv -> c -> Namespace -> KatipContextT m a -> m a