{-# LANGUAGE LambdaCase #-} module Parquet.Utils where import Control.Monad.Except import qualified Data.Text as T (<??>) :: MonadError b m => Maybe a -> b -> m a (<??>) Nothing err = throwError err (<??>) (Just v) _ = pure v infixl 4 <??> failOnExcept :: Monad m => ExceptT T.Text m a -> m a failOnExcept = runExceptT >=> \case Left err -> fail (T.unpack err) Right v -> pure v