Add Eq, Show, Data, Typeable instances
Tidy docs