fused-effects-logger-0.0.1.1: Logger effect for the `fused-effects` library
Safe HaskellNone
LanguageHaskell2010

Control.Carrier.Logger.IO

Description

An IO carrier for the Logger effect that writes logs to a Handle selected by the provided function.

Synopsis

Documentation

newtype LoggerIOC f (m :: Type -> Type) a Source #

Algebra for a simple IO logger. The inner function allows for selecting a Handle according to something like LogLevel.

Constructors

LoggerIOC (ReaderC f m a) 

Instances

Instances details
MonadIO m => MonadIO (LoggerIOC f m) Source # 
Instance details

Defined in Control.Carrier.Logger.IO

Methods

liftIO :: IO a -> LoggerIOC f m a #

Applicative m => Applicative (LoggerIOC f m) Source # 
Instance details

Defined in Control.Carrier.Logger.IO

Methods

pure :: a -> LoggerIOC f m a #

(<*>) :: LoggerIOC f m (a -> b) -> LoggerIOC f m a -> LoggerIOC f m b #

liftA2 :: (a -> b -> c) -> LoggerIOC f m a -> LoggerIOC f m b -> LoggerIOC f m c #

(*>) :: LoggerIOC f m a -> LoggerIOC f m b -> LoggerIOC f m b #

(<*) :: LoggerIOC f m a -> LoggerIOC f m b -> LoggerIOC f m a #

Functor m => Functor (LoggerIOC f m) Source # 
Instance details

Defined in Control.Carrier.Logger.IO

Methods

fmap :: (a -> b) -> LoggerIOC f m a -> LoggerIOC f m b #

(<$) :: a -> LoggerIOC f m b -> LoggerIOC f m a #

Monad m => Monad (LoggerIOC f m) Source # 
Instance details

Defined in Control.Carrier.Logger.IO

Methods

(>>=) :: LoggerIOC f m a -> (a -> LoggerIOC f m b) -> LoggerIOC f m b #

(>>) :: LoggerIOC f m a -> LoggerIOC f m b -> LoggerIOC f m b #

return :: a -> LoggerIOC f m a #

(Algebra sig m, MonadIO m) => Algebra (Logger :+: sig) (LoggerIOC HandleSelector m) Source # 
Instance details

Defined in Control.Carrier.Logger.IO

Methods

alg :: forall ctx (n :: Type -> Type) a. Functor ctx => Handler ctx n (LoggerIOC HandleSelector m) -> (Logger :+: sig) n a -> ctx () -> LoggerIOC HandleSelector m (ctx a) #

Helpers

singleHandle :: Handle -> HandleSelector Source #

Helper to run IO loggers by writing to the same Handle every time.

Carrier implementation

runLoggerIO Source #

Arguments

:: HandleSelector
f
-> LoggerIOC HandleSelector m a 
-> m a 

Run logger, writing to a Handle selected by a function f.

runStdoutLoggerIO :: LoggerIOC HandleSelector m a -> m a Source #

Run logger, writing everything to stdout.

runStderrLoggerIO :: LoggerIOC HandleSelector m a -> m a Source #

Run logger, writing everything to stderr.