Instead of manual or semi-automated generation of
instances of Data.Binary.Binary you just derive
Data.Data.Data and the library automatically
figures out how to (de-)serialize the type.
You may also define your own type-specific
stack of serialisation functions.