module Ribosome.Control.Monad.Error( recoverAs, recoveryFor, ) where import Control.Monad.Error.Class (MonadError(catchError)) recoveryFor :: MonadError e m => m a -> m a -> m a recoveryFor :: m a -> m a -> m a recoveryFor = (m a -> (e -> m a) -> m a) -> (e -> m a) -> m a -> m a forall a b c. (a -> b -> c) -> b -> a -> c flip m a -> (e -> m a) -> m a forall e (m :: * -> *) a. MonadError e m => m a -> (e -> m a) -> m a catchError ((e -> m a) -> m a -> m a) -> (m a -> e -> m a) -> m a -> m a -> m a forall b c a. (b -> c) -> (a -> b) -> a -> c . m a -> e -> m a forall a b. a -> b -> a const recoverAs :: MonadError e m => m a -> m a -> m a recoverAs :: m a -> m a -> m a recoverAs = (m a -> m a -> m a) -> m a -> m a -> m a forall a b c. (a -> b -> c) -> b -> a -> c flip m a -> m a -> m a forall e (m :: * -> *) a. MonadError e m => m a -> m a -> m a recoveryFor