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

Control.Carrier.Logger.Writer

Description

A pure carrier for the Logger effect, using an underlying Writer effect.

>>> length (fst (run (runLoggerW (logDebugN "1" >> logDebugN "2" >> logWarnN "3"))))
3
Synopsis

Documentation

newtype LoggerWriterC (w :: Type -> Type) (m :: Type -> Type) a Source #

Reinterpreter from logger to writer. The underlying Writer is always Strict.

Constructors

LoggerWriterC 

Fields

Instances

Instances details
MonadIO m => MonadIO (LoggerWriterC w m) Source # 
Instance details

Defined in Control.Carrier.Logger.Writer

Methods

liftIO :: IO a -> LoggerWriterC w m a #

Monad m => Applicative (LoggerWriterC w m) Source # 
Instance details

Defined in Control.Carrier.Logger.Writer

Methods

pure :: a -> LoggerWriterC w m a #

(<*>) :: LoggerWriterC w m (a -> b) -> LoggerWriterC w m a -> LoggerWriterC w m b #

liftA2 :: (a -> b -> c) -> LoggerWriterC w m a -> LoggerWriterC w m b -> LoggerWriterC w m c #

(*>) :: LoggerWriterC w m a -> LoggerWriterC w m b -> LoggerWriterC w m b #

(<*) :: LoggerWriterC w m a -> LoggerWriterC w m b -> LoggerWriterC w m a #

Functor m => Functor (LoggerWriterC w m) Source # 
Instance details

Defined in Control.Carrier.Logger.Writer

Methods

fmap :: (a -> b) -> LoggerWriterC w m a -> LoggerWriterC w m b #

(<$) :: a -> LoggerWriterC w m b -> LoggerWriterC w m a #

Monad m => Monad (LoggerWriterC w m) Source # 
Instance details

Defined in Control.Carrier.Logger.Writer

Methods

(>>=) :: LoggerWriterC w m a -> (a -> LoggerWriterC w m b) -> LoggerWriterC w m b #

(>>) :: LoggerWriterC w m a -> LoggerWriterC w m b -> LoggerWriterC w m b #

return :: a -> LoggerWriterC w m a #

(Algebra sig m, Applicative w, Monoid (w LogLine)) => Algebra (Logger :+: sig) (LoggerWriterC w m) Source # 
Instance details

Defined in Control.Carrier.Logger.Writer

Methods

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

runLoggerW :: Monoid (w LogLine) => LoggerWriterC w m a -> m (w LogLine, a) Source #