unclogging-0.1.0.3: a library which implements easy, concurrent and pretty logging
Safe HaskellNone
LanguageGHC2021

Control.Carrier.Unclog

Description

running the fused-effects frontend

Synopsis

Documentation

newtype UnclogC (m :: Type -> Type) r Source #

the IO carrier for unclogging

Constructors

MkUnclogC 

Fields

Instances

Instances details
MonadFail m => MonadFail (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

fail :: String -> UnclogC m a #

MonadFix m => MonadFix (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

mfix :: (a -> UnclogC m a) -> UnclogC m a #

MonadIO m => MonadIO (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

liftIO :: IO a -> UnclogC m a #

Alternative m => Alternative (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

empty :: UnclogC m a #

(<|>) :: UnclogC m a -> UnclogC m a -> UnclogC m a #

some :: UnclogC m a -> UnclogC m [a] #

many :: UnclogC m a -> UnclogC m [a] #

Applicative m => Applicative (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

pure :: a -> UnclogC m a #

(<*>) :: UnclogC m (a -> b) -> UnclogC m a -> UnclogC m b #

liftA2 :: (a -> b -> c) -> UnclogC m a -> UnclogC m b -> UnclogC m c #

(*>) :: UnclogC m a -> UnclogC m b -> UnclogC m b #

(<*) :: UnclogC m a -> UnclogC m b -> UnclogC m a #

Functor m => Functor (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

fmap :: (a -> b) -> UnclogC m a -> UnclogC m b #

(<$) :: a -> UnclogC m b -> UnclogC m a #

Monad m => Monad (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

(>>=) :: UnclogC m a -> (a -> UnclogC m b) -> UnclogC m b #

(>>) :: UnclogC m a -> UnclogC m b -> UnclogC m b #

return :: a -> UnclogC m a #

(Alternative m, Monad m) => MonadPlus (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

mzero :: UnclogC m a #

mplus :: UnclogC m a -> UnclogC m a -> UnclogC m a #

MonadUnliftIO m => MonadUnliftIO (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

withRunInIO :: ((forall a. UnclogC m a -> IO a) -> IO b) -> UnclogC m b #

(Algebra sig m, MonadIO m) => Algebra ((Log :: (Type -> Type) -> Type -> Type) :+: sig) (UnclogC m) Source # 
Instance details

Defined in Control.Carrier.Unclog

Methods

alg :: forall ctx (n :: Type -> Type) a. Functor ctx => Handler ctx n (UnclogC m) -> ((Log :: (Type -> Type) -> Type -> Type) :+: sig) n a -> ctx () -> UnclogC m (ctx a) #

runUnclogging :: MonadUnliftIO m => [Subscriber m] -> UnclogC m a -> m a Source #

run the logging effect into multiple subscribers. this is what you would use in actual code

runUncloggingToList :: MonadUnliftIO m => UnclogC m a -> m ([LogEntry], a) Source #

run the logging effect and simply collect the log entries. this is useful to check if e.g. a specific log entry was emitted in tests