class BindLeft m where
lbind :: forall a b r. m a r -> (a -> m b r) -> m b r
class (Biapplicative m, BindLeft m) <= MonadLeft m
This is a generalized, type-changing catch operation, which is useful for things like Either, and also lets you implement a Monad instance for Flip.
This is a generalized, type-changing
catchoperation, which is useful for things likeEither, and also lets you implement aMonadinstance forFlip.