Fix up pretty-printing and update test output.

It's possible that the decision about when to display an arrow
(or not) is still wrong in some cases. I'm definitely open to
guidance about how it should work. The current behavior seems
good to me but there are a lot of different Type subclasses
which might need different handling.