Yeah, I *generally* agree, though walking through that logic can lead to some weird places.
In #rust, `true ^ false` evaluates to `true` because Rust implements `^` as the XOR operator for the `bool` type—no casting involved at all.
In #javascript—which *doesn't* have an XOR for booleans, `true ^ false` *also* evaluates to `true` (in a conditional), because JS casts it to `1 ^ 0`, which is `1`, which is cast to `true`.
Does that mean that `^` is good code in Rust but bad in JS?