rescue-0.4.2.1: More understandable exceptions
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Cleanup.Class

Synopsis

Documentation

class (m `Raises` 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 -> ErrorCase 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

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

Defined in Control.Monad.Trans.Cleanup.Types

Methods

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