Add Eq, Show, Data, Typeable instances