Maybe duplicated to this thread
It should be better to just have a
#[derive(Copy, Ord)]
struct Foo;
rather than
#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord)]
struct Foo;
Actually we could auto implement higher trait for lower traits. In case we have Ord, we should have Eq and PartialOrd automatically.