Simplify datatype definitions

Rather than having all those manual instances of Show, I can just derive
the automatic implementation and then write a function to lower case it
all at the end.