Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Resource m a where
- Bracket :: m a -> (a -> m c) -> (a -> m b) -> Resource m b
- BracketOnError :: m a -> (a -> m c) -> (a -> m b) -> Resource m b
- bracket :: forall r a c a. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r a) -> Sem r a
- bracketOnError :: forall r a c a. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r a) -> Sem r a
- finally :: Member Resource r => Sem r a -> Sem r b -> Sem r a
- onException :: Member Resource r => Sem r a -> Sem r b -> Sem r a
- runResource :: forall r a. Sem (Resource ': r) a -> Sem r a
- runResourceInIO :: forall r a. Member (Lift IO) r => (forall x. Sem r x -> IO x) -> Sem (Resource ': r) a -> Sem r a
Effect
data Resource m a where Source #
An effect capable of providing bracket
semantics. Interpreters for this
will successfully run the deallocation action even in the presence of other
short-circuiting effects.
Bracket | |
| |
BracketOnError | |
|
Instances
type DefiningModule Resource Source # | |
Defined in Polysemy.Resource |
Actions
bracket :: forall r a c a. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r a) -> Sem r a Source #
bracketOnError :: forall r a c a. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r a) -> Sem r a Source #
:: Member Resource r | |
=> Sem r a | computation to run first |
-> Sem r b | computation to run afterward (even if an exception was raised) |
-> Sem r a |
Like bracket
, but for the simple case of one computation to run
afterward.
Since: 0.4.0.0
:: Member Resource r | |
=> Sem r a | computation to run first |
-> Sem r b | computation to run afterward if an exception was raised |
-> Sem r a |
Like bracketOnError
, but for the simple case of one computation to run
afterward.
Since: 0.4.0.0
Interpretations
runResource :: forall r a. Sem (Resource ': r) a -> Sem r a Source #
Run a Resource
effect purely.
Since: 0.4.0.0