2006 · 336 citations · 19 references
ComputingComputer ScienceAlgorithmsCompilersProgramming LanguagesAbstract Syntax TreesData TypesRecursion TheoryType CheckingType SystemsAlgebraic Data TypesData Type InferenceDeclarative SemanticsGuarded RecursionRecursive TypesType InferenceType TheoryType Unification
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “first-class phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is known to be difficult. Our contribution is to show how to exploit programmer-supplied type annotations to make the type inference task almost embarrassingly easy. Our main technical innovation is wobbly types, which express in a declarative way the uncertainty caused by the incremental nature of typical type-inference algorithms. 1.
19
The implementation of functional programming languages
Microprocessors and Microsystems · 1987 · 1.1K citations
Dependent types in practical programming
Hongwei Xi, Frank Pfenning · 1999 · 584 citations · Full text
Guarded recursive datatype constructors
Hongwei Xi, Chiyan Chen, Gang Chen · 2003 · 329 citations
Conor McBride, James McKinna · Journal of Functional Programming · 2004 · 327 citations · Full text
Cayenne—a language with dependent types
Lennart Augustsson · 1998 · 283 citations