Improve exact printing of (->).

The actual work consists of putting the right annotations in the AST so we can distinguish '(' thing ')' from just thing.