polysemy-log-di-0.9.0.0: Di adapters for Polysemy.Log
Safe HaskellSafe-Inferred
LanguageHaskell2010

Polysemy.Log.Di

Description

 
Synopsis

Introduction

This package is a di adapter for polysemy-log, providing interpreters that convert Log and DataLog into Di actions.

import Polysemy.Log
import Polysemy.Log.Di

prog :: Member Log r => Sem r ()
prog = do
  Log.debug "debugging"
  Log.error "failing"

interpretLogDi prog :: Sem [Di.Di Severity path (LogEntry LogMessage), Embed IO] ()
interpretLogStdout prog :: Sem '[Embed IO] ()

Interpreters

interpretLogDi :: forall path r. Members [Di Severity path (LogEntry LogMessage), GhcTime] r => InterpreterFor Log r Source #

Reinterpret Log as Di, using the polysemy-log default message.

Since this adds a timestamp, it has a dependency on GhcTime. Use interpretLogDi' for a variant that interprets GhcTime in-place.

interpretLogDi' :: forall path r. Members [Di Severity path (LogEntry LogMessage), Embed IO] r => InterpretersFor [Log, GhcTime] r Source #

Reinterpret Log as Di, also interpreting GhcTime.

interpretLogDiConc :: forall path r. Members [Di Severity path (LogEntry LogMessage), Resource, Async, Race, Embed IO] r => Int -> InterpreterFor Log r Source #

Reinterpret Log as Di concurrently.

interpretDataLogDi :: forall level path msg r. Member (Di level path msg) r => (msg -> level) -> InterpreterFor (DataLog msg) r Source #

Reinterpret DataLog as Di, using the provided function to extract the log level from the message.

interpretDiAtomic :: forall level path msg r. Member (Embed IO) r => InterpretersFor [Di level path msg, AtomicState [msg]] r Source #

Interpret Di by prepending each message to a list in an AtomicState, then interpret the AtomicState in a TVar.

interpretDiAtomic' :: forall level path msg r. Member (AtomicState [msg]) r => InterpreterFor (Di level path msg) r Source #

Interpret Di by prepending each message to a list in an AtomicState.