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