deriving (Data) is present in some code I use, not sure what for, seems to work without it but maybe I just been lucky I expect writing Typeable instances by hand is not recommended, too.