|
ABSTRACT
We report on an extension of Haskell with open type-level functions and equality constraints that unifies earlier work on GADTs, functional dependencies, and associated types. The contribution of the paper is that we identify and characterise the key technical challenge of entailment checking; and we give a novel, decidable, sound, and complete algorithm to solve it, together with some practically-important variants. Our system is implemented in GHC, and is already in active use.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
 |
4
|
|
 |
5
|
|
| |
6
|
|
| |
7
|
Iavor S. Diatchki. High-level abstractions for low-level programming. PhD thesis, OGI School of Science & Engineering, May 2007.
|
| |
8
|
Thom Frühwirth. Theory and practice of Constraint Handling Rules. Journal of Logic Programming, 37(1-3):95--138, 1998.
|
 |
9
|
Matthias Neubauer , Peter Thiemann , Martin Gasbichler , Michael Sperber, Functional logic overloading, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.233-244, January 16-18, 2002, Portland, Oregon
|
| |
10
|
Louis-Julien Guillemette and Stefan Monnier. One vote for type families in Haskell! In Draft Proc. of TFP'08, pages 53--65, 2008.
|
 |
11
|
|
| |
12
|
|
| |
13
|
|
 |
14
|
Sheng Liang , Paul Hudak , Mark Jones, Monad transformers and modular interpreters, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.333-343, January 23-25, 1995, San Francisco, California, United States
[doi> 10.1145/199448.199528]
|
| |
15
|
Daniel R. Licata and Robert Harper. A formulation of Dependent ML with explicit equality proofs. Technical Report CMU-CS-05-178, Carnegie Mellon University Department of Computer Science, 2005.
|
| |
16
|
Conor McBride. Epigram: A dependently typed functional programming language. http://www.dur.ac.uk/CARG/epigram/.
|
| |
17
|
Matthias Neubauer, Peter Thiemann, Martin Gasbichler, and Michael Sperber. A functional notation for functional dependencies. In Proceedings of the 2001 Haskell Workshop, 2001.
|
| |
18
|
Robert Nieuwenhuis and Albert Oliveras. Proof-producing congruence closure. In Proc. of RTA'05, volume 3467 of LNCS, pages 453--468. Springer-Verlag, 2005.
|
| |
19
|
Pyotr S. Novikov. On the algorithmic unsolvability of the word problem in group theory. In the Steklov Institute of Mathematics 44, pages 1--143, 1955. (Russian).
|
 |
20
|
Simon Peyton Jones , Dimitrios Vytiniotis , Stephanie Weirich , Geoffrey Washburn, Simple unification-based type inference for GADTs, Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, September 16-21, 2006, Portland, Oregon, USA
|
| |
21
|
Tom Schrijvers and Martin Sulzmann. Restoring confluence of functional dependencies via type families. In Draft Proc. of TFP'08, pages 22--36, 2008.
|
| |
22
|
Tom Schrijvers, Martin Sulzmann, Simon Peyton Jones, and Manuel Chakravarty. Towards open type functions for Haskell. In O. Chitil, editor, Proceedings of the 19th International Symposium on Implemantation and Application of Functional Languages, pages 233--251, 2007.
|
 |
23
|
|
| |
24
|
Tim Sheard. Type-level computation using narrowing in Omega. In Proceedings of the Programming Languages meets Program Verification (PLPV 2006), volume 174 of Electronic Notes in Computer Science, pages 105--128, 2006.
|
 |
25
|
|
 |
26
|
|
| |
27
|
Martin Sulzmann, Jeremy Wazny, and Peter J.Stuckey. A framework for extended algebraic data types. In Proc. of FLOPS'06, volume 3945 of LNCS, pages 47--64. Springer-Verlag, 2006.
|
 |
28
|
Martin Sulzmann , Manuel M. T. Chakravarty , Simon Peyton Jones , Kevin Donnelly, System F with type equality coercions, Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation, January 16-16, 2007, Nice, Nice, France
[doi> 10.1145/1190315.1190324]
|
| |
29
|
|
| |
30
|
Martin Sulzmann, Tom Schrijvers, and Peter Stuckey. Type inference for GADTs via Herbrand constraint abduction. Report CW 507, Department of Computer Science, K.U.Leuven, Leuven, Belgium, January 2008.
|
| |
31
|
|
 |
32
|
Hongwei Xi , Chiyan Chen , Gang Chen, Guarded recursive datatype constructors, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.224-235, January 15-17, 2003, New Orleans, Louisiana, USA
|
CITED BY 4
|
|
|
|
|
Jean-Philippe Bernardy , Patrik Jansson , Marcin Zalewski , Sibylle Schupp , Andreas Priesnitz, A comparison of c++ concepts and haskell type classes, Proceedings of the ACM SIGPLAN workshop on Generic programming, September 20-20, 2008, Victoria, BC, Canada
|
|
|
|
|
|
Julien Brunel , Damien Doligez , René Rydhof Hansen , Julia L. Lawall , Gilles Muller, A foundation for flow-based program matching: using temporal logic and model checking, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
|