Using modified version of generic-deriving so
it plays well with the latest Template Haskell