New developments to Skalpel : a type error slicing method for explaining errors in type and effect systems
Abstract
Type error reports provide programmers with a description of type errors which
exist in their code. Such descriptions are frequently of poor quality, as they often
present just one point in the program, rather than all locations in the code which
contribute to that type error.
Skalpel is a type error report system for the Standard ML language which tackles
this problem, by presenting all and only the locations in the program which
contribute to the type error. While the original Skalpel gives substantially better
error reports than comparable systems, it has a number of limitations such as a
lack of support for language features and poor efficiency.
In this research we have made a number of contributions, including a full critique
of both the Skalpel core theoretical system and its extensions, support for the
remaining features of Standard ML, an analysis and improvements to the efficiency,
and an investigation for the first time on Skalpel’s theoretical properties.