>> liftA2 (<|>) b a > > B > A > Right 42 > > (In the latter case I don't want A in the output…) Wrap it into ExceptT (from the latest transformers), as in runExceptT $ ExceptT a <|> ExceptT b