HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduleeffectful-core-2.3.0.1Haskell2010

Effectful.Labeled

Labeled effects.

  • 1 type
  • 2 values

Example

0 declarations

An effect can be assigned multiple labels and you can have all of them available at the same time.

Example1 expression
import Effectful.Reader.Static
Example1 expression
:{ action   :: ( Labeled "a" (Reader String) :> es      , Labeled "b" (Reader String) :> es      , Reader String :> es      )   => Eff es String action = do   a <- labeled @"b" @(Reader String) $ do     labeled @"a" @(Reader String) $ do       ask   b <- labeled @"b" @(Reader String) $ do     ask   pure $ a ++ b:}
Example1 expression
:{ runPureEff @String   . runLabeled @"a" (runReader "a")   . runLabeled @"b" (runReader "b")   . runReader "c"   $ action:}"ab"

Effect

1 declaration

Handlers

Operations

valuelabeled
  1. :: Labeled label e :> es
  2. => Eff (e ': es) a

    The action using the effect.

  3. -> Eff es a
#

Bring an effect into scope to be able to run its operations.