“…Many approaches use this idea to improve error reporting. A probably incomplete list includes [41,25,26,23,33,32,27,34,29,52,53,54,50,44,67,68]. Independently from this separation, there exist other approaches toward improving errors [66]: error explanation systems [8,20,19,65] which focus on explaining the reasoning steps leading to a type error, and error reporting systems [60,57,13] which focus on trying to precisely locate errors in pieces of code.…”