Reporting a type error is fairly straightforward: making a good suggestion of how to fix it is much harder. I was really impressed with rustc's handling of Path printing here.