Better parser messages

What did you think of factoring the duplicated HINT messages away from where they're used?

(most changes came from #141)