| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Polysemy.Conc.Effect.Scoped
Description
Documentation
data Scoped (resource :: Type) (effect :: Effect) :: Effect where Source #
Scoped transforms a program so that effect is associated with a resource within that program.
This requires the interpreter for effect to be parameterized by resource and constructed for every program using
Scoped separately.
An application for this is Events, in which each program using the effect Consume is
interpreted with its own copy of the event channel; or a database transaction, in which a transaction handle is
created for the wrapped program and passed to the interpreter for the database effect.
Resource creation is performed by the function passed to runScoped.
The constructors are not intended to be used directly; the smart constructor scoped is used like a local
interpreter for effect.