Implementing Ord for a type is awkward?
I have a newtype and I want to implement Ord : use std::cmp::{Ord, Ordering}; struct MyType(isize); impl Ord for MyType { fn cmp(&self, &other: Self) -> Ordering { let MyType(ref lhs) = *self; let MyType(ref rhs) = *other; lhs.cmp(rhs) } } When I try to compare two variables of my types, I get errors: error[E0277]: the trait bound `MyType: std::cmp::PartialOrd` is not satisfied --> src/main.rs:5:6 | 5 | impl Ord for MyType { | ^^^ can't compare `MyType` with `MyType` | = help: the trait `std::cmp::PartialOrd` is not implemented for `MyType` error[E0277]: the trait bound `MyType: std::cmp::Eq`