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 aAllocate a resource, use it, and clean it up afterwards.
BracketOnError :: m a -> (a -> m c) -> (a -> m b) -> Resource m aAllocate a resource, use it, and clean it up afterwards if an error occurred.