{-# OPTIONS_GHC -fno-warn-orphans #-}

module Data.Conduit.Katip.Orphans where

import Control.Monad.Trans
import Data.Conduit
import Katip

instance (Katip m) => Katip (ConduitT i o m) where
  getLogEnv :: ConduitT i o m LogEnv
getLogEnv = m LogEnv -> ConduitT i o m LogEnv
forall (m :: * -> *) a. Monad m => m a -> ConduitT i o m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m LogEnv
forall (m :: * -> *). Katip m => m LogEnv
getLogEnv

  localLogEnv :: forall a.
(LogEnv -> LogEnv) -> ConduitT i o m a -> ConduitT i o m a
localLogEnv LogEnv -> LogEnv
f = (forall a. m a -> m a) -> ConduitT i o m a -> ConduitT i o m a
forall (m :: * -> *) (n :: * -> *) i o r.
Monad m =>
(forall a. m a -> n a) -> ConduitT i o m r -> ConduitT i o n r
transPipe ((LogEnv -> LogEnv) -> m a -> m a
forall a. (LogEnv -> LogEnv) -> m a -> m a
forall (m :: * -> *) a. Katip m => (LogEnv -> LogEnv) -> m a -> m a
localLogEnv LogEnv -> LogEnv
f)

instance (KatipContext m) => KatipContext (ConduitT i o m) where
  getKatipContext :: ConduitT i o m LogContexts
getKatipContext = m LogContexts -> ConduitT i o m LogContexts
forall (m :: * -> *) a. Monad m => m a -> ConduitT i o m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m LogContexts
forall (m :: * -> *). KatipContext m => m LogContexts
getKatipContext

  getKatipNamespace :: ConduitT i o m Namespace
getKatipNamespace = m Namespace -> ConduitT i o m Namespace
forall (m :: * -> *) a. Monad m => m a -> ConduitT i o m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m Namespace
forall (m :: * -> *). KatipContext m => m Namespace
getKatipNamespace

  localKatipContext :: forall a.
(LogContexts -> LogContexts)
-> ConduitT i o m a -> ConduitT i o m a
localKatipContext LogContexts -> LogContexts
f = (forall a. m a -> m a) -> ConduitT i o m a -> ConduitT i o m a
forall (m :: * -> *) (n :: * -> *) i o r.
Monad m =>
(forall a. m a -> n a) -> ConduitT i o m r -> ConduitT i o n r
transPipe ((LogContexts -> LogContexts) -> m a -> m a
forall a. (LogContexts -> LogContexts) -> m a -> m a
forall (m :: * -> *) a.
KatipContext m =>
(LogContexts -> LogContexts) -> m a -> m a
localKatipContext LogContexts -> LogContexts
f)

  localKatipNamespace :: forall a.
(Namespace -> Namespace) -> ConduitT i o m a -> ConduitT i o m a
localKatipNamespace Namespace -> Namespace
f = (forall a. m a -> m a) -> ConduitT i o m a -> ConduitT i o m a
forall (m :: * -> *) (n :: * -> *) i o r.
Monad m =>
(forall a. m a -> n a) -> ConduitT i o m r -> ConduitT i o n r
transPipe ((Namespace -> Namespace) -> m a -> m a
forall a. (Namespace -> Namespace) -> m a -> m a
forall (m :: * -> *) a.
KatipContext m =>
(Namespace -> Namespace) -> m a -> m a
localKatipNamespace Namespace -> Namespace
f)