derived more Typeable and Data instances