The type error message of a standard type checker for a functional language gives only a single location as potential cause of the type error. If that location is not the cause, which often is the case, then the type error message hardly helps in locating the real cause. Here we present a method that uses a standard type checker to enumerate locations that potentially cause the type error, each with an actual and a counter-factual type for the given location. Adding our method to existing compilers requires only limited effort but improves type error debugging substantially
Understanding the cause of a type error can be challenging; for over 30 years, researchers have prop...
The effectiveness of a type checking tool strongly depends on the accuracy of the positional informa...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Many different approaches to type error debugging were developed independently. In this paper, we d...
The type systems of most typed functional programming languages are based on the Hindley-Milner type...
Although type systems do detect type errors in programs, they often produce uninformative error mes...
In modern statically typed functional languages, type inference is used to determine the type of eac...
Typically a type error is reported when unication fails, even though the programmer 's actual e...
Automatic type inference is a popular feature of functional programming languages. If a program cann...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
Debugging type errors is a necessary process that programmers, both novices and experts alike, face ...
Producing precise and helpful error messages for type inference is\ud still a challenge for implemen...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
Type errors reported by compilers can sometimes be cryptic, or difficult to understand. In this pape...
Type systems for programming languages can be used by compilers to reject programs which are found t...
Understanding the cause of a type error can be challenging; for over 30 years, researchers have prop...
The effectiveness of a type checking tool strongly depends on the accuracy of the positional informa...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Many different approaches to type error debugging were developed independently. In this paper, we d...
The type systems of most typed functional programming languages are based on the Hindley-Milner type...
Although type systems do detect type errors in programs, they often produce uninformative error mes...
In modern statically typed functional languages, type inference is used to determine the type of eac...
Typically a type error is reported when unication fails, even though the programmer 's actual e...
Automatic type inference is a popular feature of functional programming languages. If a program cann...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
Debugging type errors is a necessary process that programmers, both novices and experts alike, face ...
Producing precise and helpful error messages for type inference is\ud still a challenge for implemen...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
Type errors reported by compilers can sometimes be cryptic, or difficult to understand. In this pape...
Type systems for programming languages can be used by compilers to reject programs which are found t...
Understanding the cause of a type error can be challenging; for over 30 years, researchers have prop...
The effectiveness of a type checking tool strongly depends on the accuracy of the positional informa...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...