@hackage derive-topdown0.0.0.2

This library will help you generate Haskell empty Generic instances and deriving type instances from the top automatically to the bottom for composited data types.