One thing we've talked about quite a bit but never quite gets off the ground is a single "derive" for common data-types.
Straw-man:
#[derive(Data)]
// equivalent to
#[derive(Copy | Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)
// what about Default and Zero? Should Data include them if possible?