module HaskellWorks.Error ( onLeft , onNothing , onLeftM , onNothingM ) where import HaskellWorks.Polysemy.Prelude onLeft :: forall e m a. Monad m => (e -> m a) -> Either e a -> m a onLeft :: forall e (m :: * -> *) a. Monad m => (e -> m a) -> Either e a -> m a onLeft e -> m a f = (e -> m a) -> (a -> m a) -> Either e a -> m a forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either e -> m a f a -> m a forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure onNothing :: forall a m. Monad m => m a -> Maybe a -> m a onNothing :: forall a (m :: * -> *). Monad m => m a -> Maybe a -> m a onNothing m a h = m a -> (a -> m a) -> Maybe a -> m a forall b a. b -> (a -> b) -> Maybe a -> b maybe m a h a -> m a forall a. a -> m a forall (m :: * -> *) a. Monad m => a -> m a return onLeftM :: forall e m a. Monad m => (e -> m a) -> m (Either e a) -> m a onLeftM :: forall e (m :: * -> *) a. Monad m => (e -> m a) -> m (Either e a) -> m a onLeftM e -> m a f m (Either e a) action = (e -> m a) -> Either e a -> m a forall e (m :: * -> *) a. Monad m => (e -> m a) -> Either e a -> m a onLeft e -> m a f (Either e a -> m a) -> m (Either e a) -> m a forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m (Either e a) action onNothingM :: forall a m. Monad m => m a -> m (Maybe a) -> m a onNothingM :: forall a (m :: * -> *). Monad m => m a -> m (Maybe a) -> m a onNothingM m a h m (Maybe a) f = m a -> Maybe a -> m a forall a (m :: * -> *). Monad m => m a -> Maybe a -> m a onNothing m a h (Maybe a -> m a) -> m (Maybe a) -> m a forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< m (Maybe a) f