obey hlint
add -Wall and fix all the things

Actually, not quite.  There's an -fno-warn-orphans in Types, but I
can't see a way around that...