| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
Polysemy.Resource
Contents
Description
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 b. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
 - bracket_ :: Member Resource r => Sem r a -> Sem r b -> Sem r c -> Sem r c
 - bracketOnError :: forall r a c b. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
 - 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
 - resourceToIOFinal :: Member (Final IO) r => 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.
Constructors
| Bracket :: m a -> (a -> m c) -> (a -> m b) -> Resource m b | Allocate a resource, use it, and clean it up afterwards.  | 
| BracketOnError :: m a -> (a -> m c) -> (a -> m b) -> Resource m b | Allocate a resource, use it, and clean it up afterwards if an error occurred.  | 
Actions
bracket :: forall r a c b. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b Source #
Allocate a resource, use it, and clean it up afterwards.
bracketOnError :: forall r a c b. Member Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b Source #
Allocate a resource, use it, and clean it up afterwards if an error occurred.
Arguments
| :: 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
Arguments
| :: 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: 1.0.0.0