polysemy-log-0.2.0.0: lib/Polysemy/Log/Data/DataLog.hs
{-# options_haddock prune #-}
-- |Description: Internal
module Polysemy.Log.Data.DataLog where
-- |Adapter for a logging backend.
--
-- Usually this is reinterpreted into an effect like those from /co-log/ or /di/, but it can be used purely for testing.
data DataLog a :: Effect where
-- |Schedule an arbitrary value for logging.
DataLog :: a -> DataLog a m ()
-- |Stores the provided function in the interpreter and applies it to all log messages emitted within the higher-order
-- thunk that's the second argument.
Local :: (a -> a) -> m b -> DataLog a m b
makeSem ''DataLog