module Data.Either.Extras where whenR :: Monad m => (a -> m (Either e b)) -> Either e a -> m (Either e b) whenR f a = case a of Left e -> return . Left $ e Right a' -> f a'