For structs, they have already less restriction for the return type of `opEquals` than this.
I think this should be `is(typeof(lhs.opEquals(rhs)) : bool) && is(typeof(rhs.opEquals(lhs)) : bool))`.