packages feed

heavy-logger-instances 0.1.0.0 → 0.2.0.0

raw patch · 2 files changed

+33/−3 lines, 2 filesdep +mtlPVP ok

version bump matches the API change (PVP)

Dependencies added: mtl

API changes (from Hackage documentation)

+ System.Log.Heavy.Instances.Throw: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (System.Log.Heavy.LoggingT.LoggingT m)
+ System.Log.Heavy.Instances.Throw: instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (System.Log.Heavy.LoggingT.LoggingT m)
+ System.Log.Heavy.Instances.Throw: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (System.Log.Heavy.LoggingT.LoggingT m)

Files

heavy-logger-instances.cabal view
@@ -2,12 +2,14 @@ -- -- see: https://github.com/sol/hpack ----- hash: b62e7d81b220f1d2169f712ba478c44f28f6adc244aec7872b75874f6a3a6a34+-- hash: b28515ba9f195713b669f5ce46894d10ec2bcba100434c30c597ce440f1a858c  name:           heavy-logger-instances-version:        0.1.0.0+version:        0.2.0.0 synopsis:       Orphan instances for data types in heavy-logger package-description:    Orphan instances for data types in heavy-logger package+description:    This package contains orphan instances for data types in heavy-logger package for:+                * Binary type class (from binary package)+                * MonadThrow, MonadCatch, MonadMask type classes (from exceptions package) for LoggingT transformer. category:       System homepage:       https://github.com/portnov/heavy-logger#readme bug-reports:    https://github.com/portnov/heavy-logger/issues@@ -36,11 +38,13 @@     , exceptions     , heavy-logger >=0.3.2.0     , hsyslog >=5.0.1+    , mtl     , template-haskell >=2.12     , text >=1.2     , text-format-heavy >=0.1.5.1   exposed-modules:       System.Log.Heavy.Instances.Binary+      System.Log.Heavy.Instances.Throw   other-modules:       Paths_heavy_logger_instances   default-language: Haskell2010@@ -57,6 +61,7 @@     , heavy-logger >=0.3.2.0     , heavy-logger-instances     , hsyslog >=5.0.1+    , mtl     , template-haskell >=2.12     , text >=1.2     , text-format-heavy >=0.1.5.1
+ src/System/Log/Heavy/Instances/Throw.hs view
@@ -0,0 +1,25 @@++-- | This module contains instances of MonadThrow, MonadCatch, MonadMsk type classes for+-- LoggingT monad transformer defined in the heavy-logger package.+--+module System.Log.Heavy.Instances.Throw where++import Control.Monad.Reader+import Control.Monad.Catch +import System.Log.Heavy++instance MonadThrow m => MonadThrow (LoggingT m) where+  throwM e = LoggingT $ lift $ throwM e++instance MonadCatch m => MonadCatch (LoggingT m) where+  catch (LoggingT (ReaderT m)) c = LoggingT $ ReaderT $ \r -> m r `catch` \e -> runLoggingT (c e) r++instance MonadMask m => MonadMask (LoggingT m) where+  mask a = LoggingT $ ReaderT $ \lts -> mask $ \u -> runLoggingT (a $ q u) lts+    where q :: (m a -> m a) -> LoggingT m a -> LoggingT m a+          q u (LoggingT (ReaderT b)) = LoggingT (ReaderT (u . b))++  uninterruptibleMask a = LoggingT $ ReaderT $ \lts -> uninterruptibleMask $ \u -> runLoggingT (a $ q u) lts+    where q :: (m a -> m a) -> LoggingT m a -> LoggingT m a+          q u (LoggingT (ReaderT b)) = LoggingT (ReaderT (u . b))+