Some types like IEEE floating point numbers can’t be reflexive. Rust has a PartialEq trait.