thentos-cookie-session-0.8.4: src/Control/Monad/Except/Missing.hs
module Control.Monad.Except.Missing where
import Control.Monad.Except (MonadError(catchError, throwError))
import Data.Functor (($>))
finally :: MonadError e m => m a -> m b -> m a
finally action finalizer = do
a <- action `catchError` \e -> finalizer >> throwError e
finalizer $> a