Fair enough! So what you're saying is you'd have the ifTrue and ifFalse themselves return Eithers, if necessary, like
(3 < 2) ? Left(42) |: Right("forty-two")
Is that right?
I wonder if there's an implicit conversion that would let us do away with the Left() and Right()...
That is a good example to ensure type consistency with minimal effort, you don't need |: and &: at the same time and achieve the same result (Option[Either[T, F]]).
One of my main point here is do not over obsess with data type generalization and construct unnecessary structures.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.