HORIZON HASKELLDocslts/ghc-10.0.x8fef28d2026-11-02Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8fef28d · 2026-11-02

Modulepolysemy-1.9.2.0Haskell2010

Polysemy.Tagged

Contents
  1. Effect
  2. Actions
  3. Interpretations
Synopsis
  • Packagepolysemy-1.9.2.0
  • Exports5
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceTagged.hs

Effect

newtypenewtype Tagged (k3 :: k) (e :: k1 -> k2 -> Type) (m :: k1) (a :: k2) where

An effect for annotating effects and disambiguating identical effects.

Constructors

Actions

valuetag :: Member (Tagged k2 e) r => Sem (e ': r) a -> Sem r a

Tag uses of an effect, effectively gaining access to the tagged effect locally.

This may be used to create tagged- variants of regular actions.

For example:

taggedLocal :: forall k i r a
             . Member (Tagged k (Reader i)) r
            => (i -> i)
            -> Sem r a
            -> Sem r a
taggedLocal f m =
  tag @k @(Reader i) $ local @i f (raise m)

Interpretations