derived Data and Typeable instances to conform with GHC 7.8