Helium is a Haskell compiler designed to provide programmer friendly type error messages. It employs specially designed heuristics that work on a type graph representation of the type inference process. In order to support existentials and Generalized Algebraic Data Types (GADTs) in Helium, we extend the type graphs of Helium with facilities for local reasoning. We have translated the original Helium heuristics to this new setting, and define a number of GADT-specific heuristics that help diagnose Helium programs that employ GADTs
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
The more expressive a type system, the more type information has to be provided in a program. Havin...
Helium is a Haskell compiler designed to provide programmer friendly type error messages. It employs...
Type inference engines often give terrible error messages, and the more sophisticated the type syste...
Customizable type error diagnosis has been proposed as a solution to achieve domain-specific type er...
Domain-specic languages (DSLs) have the potential both to reduce the eort of programming, and to res...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
Generalized algebraic data types (GADTs) are a type system extension to algebraic data types that al...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “fir...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types” or “firs...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “fir...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
We report on an extension of Haskell with open type-level func-tions and equality constraints that u...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
The more expressive a type system, the more type information has to be provided in a program. Havin...
Helium is a Haskell compiler designed to provide programmer friendly type error messages. It employs...
Type inference engines often give terrible error messages, and the more sophisticated the type syste...
Customizable type error diagnosis has been proposed as a solution to achieve domain-specific type er...
Domain-specic languages (DSLs) have the potential both to reduce the eort of programming, and to res...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
Generalized algebraic data types (GADTs) are a type system extension to algebraic data types that al...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “fir...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types” or “firs...
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “fir...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
We report on an extension of Haskell with open type-level func-tions and equality constraints that u...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
The more expressive a type system, the more type information has to be provided in a program. Havin...