rescue-0.2.0: More understandable exceptions

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Cleanup.Class

Synopsis

Documentation

class (Raises m SomeException, MonadRescue m) => MonadCleanup m where Source #

Safely work with resources when an asynchronous exception may be thrown

Methods

cleanup Source #

Arguments

:: m resource

Acquire some resource

-> (resource -> OpenUnion (Errors m) -> m _ig1)

Cleanup and re-raise

-> (resource -> m _ig2)

Cleanup normally

-> (resource -> m a)

Inner action to perform with the resource

-> m a 
Instances
(Contains (Errors m) (Errors m), Contains (Errors m) (SomeException ': Errors m), MonadRescue m, MonadMask m) => MonadCleanup (CleanupT m) Source # 
Instance details

Defined in Control.Monad.Trans.Cleanup.Types

Methods

cleanup :: CleanupT m resource -> (resource -> OpenUnion (Errors (CleanupT m)) -> CleanupT m _ig1) -> (resource -> CleanupT m _ig2) -> (resource -> CleanupT m a) -> CleanupT m a Source #