Should we derive a lot of traits and rely on dead code elimination? Should we allow users of the library to specify which ones they want to derive? (with just Deserialize as a default)