“…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. There are also approaches that report type errors together with sugges-tions for changes that would solve the errors [28,38].…”