Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Stratified type inference for generalized algebraic data types
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Boxy types: inference for higher-rank types and impredicativity
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
System F with type equality coercions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Typed transformations of typed abstract syntax
Proceedings of the 4th international workshop on Types in language design and implementation
Complete and decidable type inference for GADTs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
The architecture of the Utrecht Haskell compiler
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Pointwise generalized algebraic data types
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Libraries for generic programming in haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Positive Recursive Type Assignment
Fundamenta Informaticae
Hi-index | 0.00 |
Generalized Algebraic Data Types are a generalization of Algebraic Data Types with additional type equality constraints. These found their use in many functional programs, including the development of embedded domain specific programming languages and generic programming.Recently, several authors published novel inference algorithms and corresponding type system specifications. These approaches tend to be more algorithmic than declarative in nature, and tied to a given compiler infrastructure. This results in complex specifications. For a language implementor, adopting such a complex approach is hard, due to conflicting infrastructure and language features. Similarly, type inference is difficult to comprehend for a programmer when the specification is complex.To make the integration of GADTs in languages easier, we thus need a more orthogonal specification. We present an orthogonal specification for GADTs: the language System F ~, consisting of System F augmented with first-class equality proofs. This specification exploits the Church encoding of data types to describe GADT matches in terms of conventional lambda abstractions.