module Data.TypedEncoding.Internal.Util where


explainBool :: (a -> err) -> (a, Bool) -> Either err a
explainBool :: (a -> err) -> (a, Bool) -> Either err a
explainBool a -> err
_ (a
a, Bool
True) = a -> Either err a
forall a b. b -> Either a b
Right a
a
explainBool a -> err
f (a
a, Bool
False) = err -> Either err a
forall a b. a -> Either a b
Left (err -> Either err a) -> err -> Either err a
forall a b. (a -> b) -> a -> b
$ a -> err
f a
a 


-- -- | explicit mapM
-- extractEither :: Traversable t => t (Either err a) -> Either err (t a)
-- extractEither = sequence -- mapM id