@unpublished{leftcorner, author = "Baars, Arthur I. and Swierstra, S. Doaitse", title = "Typed Transformations of Typed Abstract Syntax", note = "http://www.cs.uu.nl/wiki/Center/TTTAS", month = "4", year = "2008" } @inproceedings{jones06, author = {Simon L. {Peyton~Jones} and Dimitrios Vytiniotis and Stephanie Weirich and Geoffrey Washburn}, title = {Simple unification-based type inference for GADTs}, booktitle = {ICFP}, year = {2006}, pages = {50-61}, ee = {http://doi.acm.org/10.1145/1159803.1159811}, bibsource = {DBLP, http://dblp.uni-trier.de} } @TECHREPORT{jones04, AUTHOR = {Simon L. {Peyton~Jones} and Geoffrey Washburn and Stephanie Weirich}, TITLE = {Wobbly types: type inference for generalised algebraic data types}, INSTITUTION = {University of Pennsylvania}, ADDRESS = {Computer and Information Science Department, Levine Hall, 3330 Walnut Street, Philadelphia, Pennsylvania, 19104-6389}, YEAR = 2004, MONTH = jul, NUMBER = {MS-CIS-05-26}, PDF = {http://www.cis.upenn.edu/~geoffw/research/papers/MS-CIS-05-26.pdf}, PLCLUB = "yes", ABSTRACT = { Generalised algebraic data types (GADTs), sometimes known as ``guarded recursive data types'' or ``first-class phantom types'', are a simple but powerful generalisation 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. It is time to pluck the fruit. Can GADTs be added to Haskell, without losing type inference, or requiring unacceptably heavy type annotations? Can this be done without completely rewriting the already-complex Haskell type-inference engine, and without complex interactions with (say) type classes? We answer these questions in the affirmative, giving a type system that explains just what type annotations are required, and a prototype implementation that implements it. Our main technical innovation is \emph{wobbly types}, which express in a declarative way the uncertainty caused by the incremental nature of typical type-inference algorithms. } } @inproceedings{baars02, author = {Baars, Arthur I. and Swierstra, S. Doaitse }, booktitle = {ICFP '02: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming}, citeulike-article-id = {4880}, doi = {10.1145/581478.581494}, issn = {0362-1340}, keywords = {dynamic-typing, hybrid-typing, javascript, type-dynamic}, month = {September}, pages = {157--166}, publisher = {ACM Press}, title = {Typing dynamic typing}, url = {http://portal.acm.org/citation.cfm?id=581494}, volume = {37}, year = {2002} } @book{pierce02, title = {Types and Programming Languages}, author = {Benjamin Pierce}, url = {http://www.cis.upenn.edu/~bcpierce/tapl/}, year = {2002}, keywords = {pgmlang types }, } @inproceedings{sulzmann07, author = {Martin Sulzmann and Manuel M. T. Chakravarty and Simon L. {Peyton~Jones} and Kevin Donnelly}, title = {{System F} with type equality coercions}, booktitle = {TLDI}, year = {2007}, pages = {53-66}, ee = {http://doi.acm.org/10.1145/1190315.1190324}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{sulzmann06, author = {Martin Sulzmann and Jeremy Wazny and Peter J. Stuckey}, title = {A Framework for Extended Algebraic Data Types}, booktitle = {FLOPS}, year = {2006}, pages = {47-64}, ee = {http://dx.doi.org/10.1007/11737414_5}, bibsource = {DBLP, http://dblp.uni-trier.de} } @phdthesis{wazny06, author = "Jeremy Richard Wazny", title = "Type inference and type error diagnosis for Hindley/Milner with extensions", school = "The university of Melbourne", year = "2006", month = "January", } @inproceedings{vytiniotis06, title = {Boxy types: inference for higher-rank types and impredicativity.}, author = {Dimitrios Vytiniotis and Stephanie Weirich and Simon L. {Peyton~Jones}}, booktitle = {ICFP}, editor = {John H. Reppy and Julia L. Lawall}, pages = {251-262}, publisher = {ACM}, url = {http://dblp.uni-trier.de/db/conf/icfp/icfp2006.html#VytiniotisWJ06}, year = {2006}, description = {dblp}, ee = {http://doi.acm.org/10.1145/1159803.1159838}, isbn = {1-59593-309-3}, date = {2006-12-06}, keywords = {dblp } } @inproceedings{pottier06, author = {Fran\c{c}ois Pottier and Yann R{\'e}gis-Gianas}, title = {Stratified type inference for generalized algebraic data types}, booktitle = {POPL}, year = {2006}, pages = {232-244}, ee = {http://doi.acm.org/10.1145/1111037.1111058}, bibsource = {DBLP, http://dblp.uni-trier.de} } @article{stuckey05, author = {Peter J. Stuckey and Martin Sulzmann}, title = {Type Inference for Guarded Recursive Data Types}, journal = {CoRR}, volume = {abs/cs/0507037}, year = {2005}, ee = {http://arxiv.org/abs/cs/0507037}, bibsource = {DBLP, http://dblp.uni-trier.de} } @misc{dijkstra04 , eprint = {papers/dijkstra04ehc-web.pdf} , title = {{EHC Web}} , author = {Dijkstra, Atze} , year = {2004} , url = {http://www.cs.uu.nl/wiki/Ehc/WebHome} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/WebHome|}} @phdthesis{dijkstra05phd , eprint = {papers/dijkstra05phd.pdf} , title = {{Stepping through Haskell}} , author = {Dijkstra, Atze} , school = {Utrecht University, Department of Information and Computing Sciences} , year = {2005} , url = {http://www.cs.uu.nl/wiki/Ehc/WebHome} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/WebHome|}} @article{chr98, author={Thom Fr{\"u}hwirth}, title={Theory and Practice of Constraint Handling Rules}, journal={Journal of Logic Programming, Special Issue on Constraint Logic Programming}, volume={37}, year={1998}, pages={95-138}, month={October}, number={1-3}, editor={P. Stuckey, K. Marriot}, url={citeseer.ist.psu.edu/fruhwirth98theory.html}, url={http://www.informatik.uni-muenchen.de/~fruehwir/drafts/jlp-chr1.ps.Z}, annote={HTML Version on: http://www.informatik.uni-muenchen.de/~fruehwir/jlp-chr1/index.html} } @misc{stuckey02, author = "P. Stuckey and M. Sulzmann", title = "A theory of overloading", text = "P. J. Stuckey and M. Sulzmann. A theory of overloading. In Proc. of ICFP'02, 2002. to appear.", year = "2002", url = "citeseer.ist.psu.edu/stuckey02theory.html" } @misc{rossberg02, author = "A. Rossberg and M. Sulzmann", title = "A theory of overloading part II: Semantics and coherence", text = "A. Rossberg and M. Sulzmann. A theory of overloading part II: Semantics and coherence. Technical report, The University of Melbourne, 2002.", year = "2002", url = "citeseer.ist.psu.edu/rossberg02theory.html" } @misc{atze07, author = "Atze Dijkstra and Gerrit van den Geest and Bastiaan Heeren and S. Doaitse Swierstra", title = "Modelling Scoped Instances with Constraint Handling Rules", year = "2007", url = "http://www.cs.uu.nl/wiki/bin/view/Ehc/ModellingScopedInstancesWithConstraintHandlingRules" } @mastersthesis{geest07, author = "Gerrit van den Geest", title = "Constraints for Type Class Extensions", school = "Universiteit Utrecht", year = "2007", url = "people.cs.uu.nl/bastiaan/vandengeest07thesis.pdf" }