I would not worry about any of these as the precise evaluation order (for example) is an obscure implementation detail which might change. The performance difference of `==` on a case object will only in rare cases justify deviations from the most obvious (and therefore correct) syntax.