io-classes-1.10.0.0: mtl/Control/Monad/Class/MonadEventlog/Trans.hs
{-# OPTIONS_GHC -Wno-orphans #-}
module Control.Monad.Class.MonadEventlog.Trans () where
import Control.Monad.Cont (ContT)
import Control.Monad.Except (ExceptT)
import Control.Monad.RWS.Lazy qualified as Lazy
import Control.Monad.RWS.Strict qualified as Strict
import Control.Monad.State.Lazy qualified as Lazy
import Control.Monad.State.Strict qualified as Strict
import Control.Monad.Trans (lift)
import Control.Monad.Writer.Lazy qualified as Lazy
import Control.Monad.Writer.Strict qualified as Strict
import Control.Monad.Class.MonadEventlog
-- | @since 0.1.0.0
instance MonadEventlog m => MonadEventlog (ContT r m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance MonadEventlog m => MonadEventlog (ExceptT e m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance (Monoid w, MonadEventlog m) => MonadEventlog (Lazy.RWST r w s m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance (Monoid w, MonadEventlog m) => MonadEventlog (Strict.RWST r w s m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance MonadEventlog m => MonadEventlog (Lazy.StateT s m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance MonadEventlog m => MonadEventlog (Strict.StateT s m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance (Monoid w, MonadEventlog m) => MonadEventlog (Lazy.WriterT w m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog
-- | @since 0.1.0.0
instance (Monoid w, MonadEventlog m) => MonadEventlog (Strict.WriterT w m) where
traceEventIO = lift . traceEventIO
traceMarkerIO = lift . traceMarkerIO
flushEventLog = lift flushEventLog