maybeFail :: MonadError Err m => m (Maybe (Int, Text))
maybeFail = ( do a <- mightFail
                 b <- couldFail
                 pure (Just (a, b))
            ) `catchError` (\_ -> pure Nothing)
maybeFail :: MonadError Err m => m (Maybe (Int, Text))
maybeFail = ( do a <- mightFail
                 b <- couldFail
                 pure (Just (a, b))
            ) `catchError` (\_ -> pure Nothing)
maybeFail = ( do a <- mightFail
                 b <- couldFail
                 pure (Just (a, b))
            ) `catchError` (\_ -> pure Nothing)