Improving error messages, part I.