Type errors reported by compilers can sometimes be cryptic, or difficult to understand. In this paper, we propose a type debugging framework that exposes a high-level representation of the typechecking decision-making process that users normally do not have access to in state-of-the-art compilers. This representation makes it easier for non-experts to analyze complex type errors. Our system is implemented by instrumenting the existing Scala typechecker, but without modifying it. We also provide generic search algorithms that can be used as basic building blocks to build a number of systems, from visual type debugging tools to customized error reporting for normal Scala users as well as to users of domain-specific languages. Using our framew...
In modern statically typed functional languages, type inference is used to determine the type of eac...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Many different approaches to type error debugging were developed independently. In this paper, we d...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
Abstract. We present guided type debugging as a new approach to quickly and reliably remove type err...
We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly type...
In this work, we present an unexpected connection between gradual typing and type error debugging. N...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Domain-specific languages (DSLs) are a widely used technique in the programming world, since they ma...
Understanding the cause of a type error can be challenging; for over 30 years, researchers have prop...
Type error debugging can be a laborious yet necessary process for programmers of statically typed fu...
We present a new way to generate type-error messages in a poly-morphic, implicitly, and strongly typ...
The type error message of a standard type checker for a functional language gives only a single loca...
In modern statically typed functional languages, type inference is used to determine the type of eac...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Many different approaches to type error debugging were developed independently. In this paper, we d...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
Abstract. We present guided type debugging as a new approach to quickly and reliably remove type err...
We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly type...
In this work, we present an unexpected connection between gradual typing and type error debugging. N...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Domain-specific languages (DSLs) are a widely used technique in the programming world, since they ma...
Understanding the cause of a type error can be challenging; for over 30 years, researchers have prop...
Type error debugging can be a laborious yet necessary process for programmers of statically typed fu...
We present a new way to generate type-error messages in a poly-morphic, implicitly, and strongly typ...
The type error message of a standard type checker for a functional language gives only a single loca...
In modern statically typed functional languages, type inference is used to determine the type of eac...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
Production compilers for programming languages face multiple requirements. They should be correct, a...