equals
Structural: equal when every property is equal.
ratio goes through compareValues, the nullable spelling of the compareTo a data class emits for a Double. == would be IEEE instead — and a nullable one is no exception: there -0.0 == 0.0 holds while the two hash differently, so equal issues could disagree on hashCode.