use GHC 7.7 (and up) Typeable derivation