data-effects-0.4.0.2: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2024-2025 Sayo contributors
LicenseMPL-2.0 (see the LICENSE file)
Maintainerymdfield@outlook.jp
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Effect.Log

Description

Interpreters for the co-log ecosystem.

The interface is similar to co-log-polysemy.

Documentation

data Log msg :: Effect where Source #

Constructors

Log :: msg -> Log msg f () 

Instances

Instances details
FirstOrder (Log msg) Source # 
Instance details

Defined in Data.Effect.Log

HFunctor (Log msg) Source # 
Instance details

Defined in Data.Effect.Log

Methods

hfmap :: (forall x. f x -> g x) -> Log msg f a -> Log msg g a #

type LabelOf (Log msg) Source # 
Instance details

Defined in Data.Effect.Log

type LabelOf (Log msg) = LogLabel
type OrderOf (Log msg) Source # 
Instance details

Defined in Data.Effect.Log

type OrderOf (Log msg) = 'FirstOrder

log'_ :: forall (msg :: Type) f es ff c. (Free c ff, f ~ Eff ff es, In (Log msg) es) => msg -> f () Source #

log'' :: forall tag (msg :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Tagged tag (Log msg)) es) => msg -> f () Source #

log' :: forall key (msg :: Type) f es ff c. (Free c ff, f ~ Eff ff es, Has key (Log msg) es) => msg -> f () Source #

log :: forall (msg :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Log msg) es) => msg -> f () Source #

runLogAsOutput :: forall msg a es ff c. (Output msg :> es, Free c ff) => Eff ff (Log msg ': es) a -> Eff ff es a Source #

runOutputAsLog :: forall msg a es ff c. (Log msg :> es, Free c ff) => Eff ff (Output msg ': es) a -> Eff ff es a Source #

runLogAction :: forall msg a es ff c. Free c ff => LogAction (Eff ff es) msg -> Eff ff (Log msg ': es) a -> Eff ff es a Source #

runLogActionEmbed :: forall msg f a es ff c. (Emb f :> es, Free c ff) => LogAction f msg -> Eff ff (Log msg ': es) a -> Eff ff es a Source #