Copyright | (c) Hisaket VioletRed 2022 |
---|---|
License | AGPL-3.0-or-later |
Maintainer | hisaket@outlook.jp |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
This module provides methods that allow for isolating effects inside or outside the scope locally.
It will be useful when using the effects for virtualization or containerization such as libvirt or Docker safely.
Synopsis
- isolatingScopedP :: Member (ScopedP path resource effect) r => path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle r)] r
- isolatingScopedPSub :: forall es path resource effect r. (Member (ScopedP path resource effect) r, Members es r) => path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle es)] r
- isolatingScopedPSubUsing :: forall es path resource effect r. Member (ScopedP path resource effect) r => (forall e. ElemOf e es -> ElemOf e r) -> path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle es)] r
- data ScopeSide
- inScope :: Member (Tagged Inner (Bundle es)) r => Sem es a -> Sem r a
- inScope_single :: Member (Tagged Inner eff) r => Sem '[eff] a -> Sem r a
- outScope :: Member (Tagged Outer (Bundle es)) r => Sem es a -> Sem r a
Documentation
isolatingScopedP :: Member (ScopedP path resource effect) r => path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle r)] r Source #
Variant of scopedP
that can isolate effects inside or outside the scope locally.
isolatingScopedPSub :: forall es path resource effect r. (Member (ScopedP path resource effect) r, Members es r) => path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle es)] r Source #
Variant of scopedP
that can isolate effects inside or outside the scope locally.
A version that can isolate only a subset of effects in regards to outside the scope.
isolatingScopedPSubUsing :: forall es path resource effect r. Member (ScopedP path resource effect) r => (forall e. ElemOf e es -> ElemOf e r) -> path -> InterpretersFor '[Tagged 'Inner effect, Input path, Tagged 'Outer (Bundle es)] r Source #
Variant of scopedP
that can isolate effects inside or outside the scope locally.
inScope :: Member (Tagged Inner (Bundle es)) r => Sem es a -> Sem r a Source #
Isolate only effects inside the scope.