{-# options_haddock prune #-}
module Polysemy.Conc.Effect.Gate where
import Polysemy.Scoped (Scoped_, scoped_)
data Gate :: Effect where
Signal :: Gate m ()
Gate :: Gate m ()
makeSem ''Gate
type Gates =
Scoped_ Gate
withGate ::
Member (Scoped_ Gate) r =>
InterpreterFor Gate r
withGate :: forall (r :: EffectRow).
Member (Scoped_ Gate) r =>
InterpreterFor Gate r
withGate =
Sem (Gate : r) a -> Sem r a
forall (effect :: Effect) (r :: EffectRow).
Member (Scoped_ effect) r =>
InterpreterFor effect r
scoped_