@hackage standalone-derive-topdown0.0.0.1

This package will derive class instance along the data type declaration tree.

For a very complex composited data type, you just need to write one deriving declaration instead of writing deriving for each of them. Please see the example in Readme file. You need to use GHC 7.10 or higher GHC version.