From 4626d3b3c6de3c9aa36b588e4e65af90a9dc1412 Mon Sep 17 00:00:00 2001 From: Atze Dijkstra Date: Sat, 26 Sep 2015 09:43:21 +0200 Subject: [PATCH] some small corrections --- EHC/text/LitAdm.bib | 2 +- EHC/text/TopicExplImpl2015.cltex | 146 ++++++++++++++----------------- 2 files changed, 69 insertions(+), 79 deletions(-) diff --git a/EHC/text/LitAdm.bib b/EHC/text/LitAdm.bib index 90983f8a4..7e7e3843c 100644 --- a/EHC/text/LitAdm.bib +++ b/EHC/text/LitAdm.bib @@ -1 +1 @@ -@inproceedings{borras88centaur-sys , eprint = {papers/borras88centaur-sys.pdf} , title = {{CENTAUR: the system}} , author = {Borras, P. and Cl\'ement, D. and Despeyroux, Th. and Incerpi, J. and Kahn, G.} , booktitle = {Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, SIGPLAN 24(2)} , editor = {Peter Henderson} , month = {November} , organization = {ACM} , pages = {14-24} , year = {1988}} @book{fp:type-theory:func-prog , eprint = {papers/fp:type-theory:func-prog.pdf} , title = {{Type Theory and Functional Programming}} , author = {Thompson, Simon} , publisher = {Addison-Wesley} , year = {1991}} @inproceedings{ipt:type-infer-milner , eprint = {papers/ipt:type-infer-milner.pdf} , title = {{Principal type-schemes for functional programs}} , author = {Damas, Luis and Milner, Robin} , booktitle = {Proceedings of Principles of Programming Languages (POPL)} , organization = {ACM} , pages = {207-212} , publisher = {ACM} , year = {1982}} @book{ipt:impl-func-prog-lang , eprint = {papers/ipt:impl-func-prog-lang.pdf} , title = {{The Implementation of Functional Programming Languages}} , author = {Peyton Jones, Simon L.} , publisher = {Prentice Hall} , year = {1987}} @book{ipt:theory-of-objects , eprint = {papers/ipt:theory-of-objects.pdf} , title = {{A Theory of Objects}} , author = {Abadi, Martin and Cardelli, Luca} , publisher = {Springer} , year = {1996}} @inproceedings{ipt:typeful-progr , eprint = {papers/ipt:typeful-progr.pdf} , title = {{Typeful programming}} , author = {Cardelli, Luca} , booktitle = {Formal Description of Programming Concepts} , publisher = {Springer-Verlag} , series = {IFIP State of the Art Reports Series} , year = {1989} , howpublished = {\verb|http://gatekeeper.dec.com/pub/DEC/SRC/research-reports/abstracts/src-rr-045.html|}} @inproceedings{pcjava:haskell-java-vm-compiler , eprint = {papers/pcjava:haskell-java-vm-compiler.pdf} , title = {{A Haskell to Java Virtual Machine Code Compiler}} , author = {Wakeling, D.} , booktitle = {Proceedings of the 9th International Workshop on the Implementation of Functional Languages} , month = {September} , pages = {39-52} , number = {1467} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1997} , howpublished = {\verb|http://www.dcs.ex.ac.uk/~david/en/research/previous/java/index.htm|}} @inproceedings{func:lazy:java:parser-combinator , eprint = {papers/func:lazy:java:parser-combinator.pdf} , title = {{Lazy Functional Parser Combinators in Java}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Proceedings of 1st Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL)} , pages = {11-42} , publisher = {John von Neumann Institute for Computing} , year = {2001}} @article{moor00first-class-ag , eprint = {papers/moor00first-class-ag.pdf} , title = {{First Class Attribute Grammars}} , author = {Moor, Oege de and Backhouse, Kevin and Swierstra, S. Doaitse} , journal = {Informatica: An International Journal of Computing and Informatics} , month = {June} , pages = {329-341} , number = {2} , volume = {24} , year = {2000}} @book{typing:types-prog-lang:pierce , eprint = {papers/typing:types-prog-lang:pierce.pdf} , title = {{Types and Programming Languages}} , author = {Pierce, Benjamin C.} , publisher = {MIT Press} , year = {2002} , howpublished = {\verb|http://www.cis.upenn.edu/~bcpierce/tapl/|}} @inproceedings{swierstra99comb-lang , eprint = {papers/swierstra99comb-lang.pdf} , title = {{Designing and Implementing Combinator Languages}} , author = {Swierstra, S. Doaitse and Azero Alocer, P.R. and Saraiava, J.} , booktitle = {Advanced Functional Programming, Third International School, AFP'98} , editor = {Doaitse Swierstra and Pedro Henriques and Jos\'{e} Oliveira} , pages = {150-206} , number = {1608} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.cs.uu.nl/people/arthurb/ag.html|}} @article{duggan02check-multipclass , eprint = {papers/duggan02check-multipclass.pdf} , title = {{Type-Checking Multi-Parameter Type Classes}} , author = {Duggan, Dominic and Ophel, John} , journal = {Journal of Functional Programming} , year = {2002} , howpublished = {\verb|http://guinness.cs.stevens-tech.edu/~dduggan/Public/Papers/multi.pdf|}} @inproceedings{neubauer02more-high-poly , eprint = {papers/neubauer02more-high-poly.pdf} , title = {{Type Classes With More Higher-Order Polymorphism}} , author = {Neubauer, Matthias and Thiemann, Peter} , booktitle = {Proceedings of the seventh ACM SIGPLAN international conference on Functional programming} , year = {2002} , howpublished = {\verb|http://citeseer.nj.nec.com/neubauer02type.html|}} @article{faxen02semantics-haskell , eprint = {papers/faxen02semantics-haskell.pdf} , title = {{A Static Semantics for Haskell}} , author = {Fax\'en, Karl-Filip} , journal = {Journal of Functional Programming} , pages = {295} , number = {4} , volume = {12} , year = {2002} , howpublished = {\verb|http://www.it.kth.se/~kff/semantics.ps.gz|}} @inproceedings{peytonjones97typecl-explore , eprint = {papers/peytonjones97typecl-explore.pdf} , title = {{Type classes: an exploration of the design space}} , author = {Peyton Jones, Simon and Jones, Mark and Meijer, Erik} , booktitle = {Haskell Workshop} , year = {1997} , howpublished = {\verb|http://citeseer.nj.nec.com/peytonjones97type.html|}} @inproceedings{wadler88how-ad-hoc-poly , eprint = {papers/wadler88how-ad-hoc-poly.pdf} , title = {{How to make ad-hoc polymorphism less ad-hoc}} , author = {Wadler, Phil and Blott, Stephen} , booktitle = {Conference Record of the 16th Annual {ACM} Symposium on Principles of Programming Languages} , pages = {60--76} , year = {1988} , howpublished = {\verb|http://citeseer.nj.nec.com/wadler88how.html|}} @inproceedings{peterson93impl-type-class , eprint = {papers/peterson93impl-type-class.pdf} , title = {{Implementing Type Classes}} , author = {Peterson, John and Jones, Mark} , booktitle = {{SIGPLAN} Conference on Programming Language Design and Implementation} , pages = {227-236 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/peterson93implementing.html|}} @inproceedings{augustsson93impl-hask-overl , eprint = {papers/augustsson93impl-hask-overl.pdf} , title = {{Implementing Haskell overloading}} , author = {Augustsson, Lennart} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {65-73 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/augustsson93implementing.html|}} @article{hall96type-class-haskell , eprint = {papers/hall96type-class-haskell.pdf} , title = {{Type Classes in Haskell}} , author = {Hall, Cordelia and Hammond, Kevin and Peyton Jones, Simon and Wadler, Philip} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {109-138} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {18} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/227699.227700|}} @inproceedings{kaes88parametric-overl , eprint = {papers/kaes88parametric-overl.pdf} , title = {{Parametric overloading in polymorphic programming languages }} , author = {Kaes, Stefan} , booktitle = {Proc. 2nd European Symposium on Programming} , year = {1988}} @article{damiani03rank2-localdefs , eprint = {papers/damiani03rank2-localdefs.pdf} , title = {{Rank 2 intersection types for local definitions and conditional expressions}} , author = {Damiani, Ferrucio} , journal = {ACM TOPLAS} , month = {July} , pages = {401-451} , number = {4} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/778559.778560|}} @article{rhiger03embedded-langs , eprint = {papers/rhiger03embedded-langs.pdf} , title = {{A Foundation for Embedded Languages}} , author = {Rhiger, Morten} , journal = {ACM TOPLAS} , month = {may} , pages = {291-315} , number = {3} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/641909.641910|}} @article{saha03analysis-quanttype , eprint = {papers/saha03analysis-quanttype.pdf} , title = {{Intentional Analysis of Quantified Types}} , author = {Saha, Bratin and Trifonov, Valery and Shao, Zhong} , journal = {ACM TOPLAS} , month = {March} , pages = {159-209} , number = {2} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/641888.641889|}} @article{appel02rec-types-pcc , eprint = {papers/appel02rec-types-pcc.pdf} , title = {{An Indexed Model of Recursive Types for Foundational Proof-Carrying Code}} , author = {Appel, Andrew W. and McAllester, David} , journal = {ACM TOPLAS} , month = {September} , pages = {657-683} , number = {5} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/504709.504712|}} @article{igarashi01fwjava-core-calc , eprint = {papers/igarashi01fwjava-core-calc.pdf} , title = {{Featherweight Java: A Minimal Core Calculus for Java and GJ}} , author = {Igarishi, Atsushi and Pierce, Benjamin C. and Wadler, Philip} , journal = {ACM TOPLAS} , month = {may} , pages = {396 - 450 } , number = {3} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/503502.503505|}} @article{league02fwjava-typepreserve , eprint = {papers/league02fwjava-typepreserve.pdf} , title = {{Type-preserving compilation of Featherweight Java}} , author = {League, Christopher and Shao, Zhong and Trifonov, Valery} , journal = {ACM TOPLAS} , month = {March} , pages = {112-153} , number = {2} , volume = {24} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/514952.514954|}} @article{knoblock01java-subtype , eprint = {papers/knoblock01java-subtype.pdf} , title = {{Type Elaboration and Subtype Completion for Java Bytecode}} , author = {Knoblock, Todd B. and Rehof, Jakob} , journal = {ACM TOPLAS} , month = {March} , pages = {243 - 272 } , number = {2} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/383043.383045|}} @article{grossman00synt-type-abstr , eprint = {papers/grossman00synt-type-abstr.pdf} , title = {{Syntactic type abstraction}} , author = {Grossman, Dan and Morrisett, Greg and Zdancewic, Steve} , journal = {ACM TOPLAS} , month = {November} , pages = {1037-1080} , number = {6} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/371880.371887|}} @article{leroy00typebased-anal-exc , eprint = {papers/leroy00typebased-anal-exc.pdf} , title = {{Type-based analysis of uncaught exceptions}} , author = {Leroy, Xavier and Pessaux, Francois} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {340-377} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/349214.349230|}} @article{pierce00local-type-inference , eprint = {papers/pierce00local-type-inference.pdf} , title = {{Local Type Inference}} , author = {Pierce, Benjamin C. and Turner, David N.} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {January} , pages = {1-44} , number = {1} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/345099.345100|}} @article{lamport99speclang-typed , eprint = {papers/lamport99speclang-typed.pdf} , title = {{Should your specification language be typed}} , author = {Lamport, Leslie and Paulson, Lawrence C.} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {may} , pages = {502-526} , number = {3} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://doi.acm.org/10.1145/319301.319317|}} @article{morrisett99systemF-TAL , eprint = {papers/morrisett99systemF-TAL.pdf} , title = {{From System F to Typed Assembly Language}} , author = {Morrisett, Greg and Walker, David and Crary, Karl and Glew, Neil} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {may} , pages = {527-568} , number = {3} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://citeseer.nj.nec.com/86027.html|}} @article{duggan99dyntype-distr-polym , eprint = {papers/duggan99dyntype-distr-polym.pdf} , title = {{Dynamic Typing for Distributed Programming in Polymorphic Languages}} , author = {Duggan, Dominic} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {January} , pages = {11-45} , number = {1} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://doi.acm.org/10.1145/314602.314604|}} @article{lee98hindley-top-bottom , eprint = {papers/lee98hindley-top-bottom.pdf} , title = {{Proofs about a folklore let-polymorphic type inference algorithm }} , author = {Lee, Oukseh and Yi, Kwangkeun} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {July} , pages = {707-723} , number = {4} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {20} , year = {1998} , howpublished = {\verb|http://citeseer.nj.nec.com/151436.html|}} @article{douence98func-lang-impl , eprint = {papers/douence98func-lang-impl.pdf} , title = {{A systematic study of functional language implementations }} , author = {Douence, Remi and Fradet, Pascal} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {344-387} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {20} , year = {1998} , howpublished = {\verb|http://doi.acm.org/10.1145/276393.276397|}} @article{remy98objective-ml , eprint = {papers/remy98objective-ml.pdf} , title = {{Objective ML: An Effective Object-Oriented Extension to ML}} , author = {R\'emy, Didier and Vouillon, Jerome} , journal = {Theory and Practice of Object Systems} , pages = {27-50} , number = {1} , volume = {4} , year = {1998} , howpublished = {\verb|http://citeseer.nj.nec.com/remy98objective.html|}} @inproceedings{chen92param-type-class , eprint = {papers/chen92param-type-class.pdf} , title = {{Parametric type classes}} , author = {Chen, Kung and Hudak, Paul and Odersky, Martin} , booktitle = {ACM Symposium on Lisp and Functional Programming} , year = {1992} , howpublished = {\verb|http://www.ubka.uni-karlsruhe.de/cgi-bin/psview?document=/1992/informatik/18|}} @techreport{stuckey02theory-overloading , eprint = {papers/stuckey02theory-overloading.pdf} , title = {{A Theory of Overloading}} , address = {Parkville 3052, Australia} , author = {Stuckey, Peter J. and Sulzmann, Martin} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , month = {June} , number = {TR2002/2} , year = {2002}} @techreport{rossberg02theory-overload2 , eprint = {papers/rossberg02theory-overload2.pdf} , title = {{A Theory of Overloading Part II: Semantics and Coherence}} , address = {Parkville 3052, Australia} , author = {Rossberg, Andreas and Sulzmann, Martin} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , month = {March} , number = {TR2002/2} , year = {2002}} @inproceedings{neubauer01funct-logic-overl , eprint = {papers/neubauer01funct-logic-overl.pdf} , title = {{Functional Logic Overloading}} , author = {Neubauer, Matthias and Thiemann, Peter and Gasbichler, Martin and Sperber, Michael} , booktitle = {Symposium on Principles of Programming Languages} , pages = {233-244} , year = {2001} , howpublished = {\verb|http://citeseer.nj.nec.com/neubauer01functional.html|}} @inproceedings{nipkow93check-typeclass , eprint = {papers/nipkow93check-typeclass.pdf} , title = {{Type Checking Type Classes}} , author = {Nipkow, Tobias and Prehofer, Christian} , booktitle = {Symposium on Principles of Programming Languages} , pages = {409--418 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/nipkow93type.html|}} @book{jones94phd-qual-types , eprint = {papers/jones94phd-qual-types.pdf} , title = {{Qualified Types, Theory and Practice}} , author = {Jones, Mark P.} , publisher = {Cambridge Univ. Press} , year = {1994} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/thesis.html|}} @inproceedings{jones99thih , eprint = {papers/jones99thih.pdf} , title = {{Typing Haskell in Haskell}} , author = {Jones, Mark P.} , booktitle = {Haskell Workshop} , year = {1999} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/thih/thih-sep1-1999/|}} @misc{jones00thih , eprint = {papers/jones00thih.pdf} , title = {{Typing Haskell in Haskell}} , author = {Jones, Mark P.} , booktitle = {Haskell Workshop} , year = {2000} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/thih/|}} @inproceedings{jones99lightweight-ext-rec , eprint = {papers/jones99lightweight-ext-rec.pdf} , title = {{Lightweight Extensible Records for Haskell}} , author = {Jones, Mark P. and Peyton Jones, Simon} , booktitle = {Haskell Workshop} , publisher = {Utrecht University, Institute of Information and Computing Sciences} , year = {1999} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/lightrec.html|}} @inproceedings{jones95simplify-qualtype , eprint = {papers/jones95simplify-qualtype.pdf} , title = {{Simplifying and improving qualified types}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the seventh international conference on Functional programming languages and computer architecture} , pages = {160 - 169 } , year = {1995} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/fpca95.pdf|}} @inproceedings{wadler02girard-reynolds-iso , eprint = {papers/wadler02girard-reynolds-iso.pdf} , title = {{The Girard-Reynolds isomorphism }} , author = {Wadler, Phil} , booktitle = {Theoretical Aspects of Computer Software} , month = {October} , year = {2001} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/topics/parametricity.html|}} @inproceedings{wadler89theorems-for-free , eprint = {papers/wadler89theorems-for-free.pdf} , title = {{Theorems for free!}} , author = {Wadler, Phil} , booktitle = {4'th International Conference on Functional Programming and Computer Architecture} , month = {September} , year = {1989} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/topics/parametricity.html|}} @misc{wadler00proofs-are-programs , eprint = {papers/wadler00proofs-are-programs.pdf} , title = {{Proofs are Programs: 19th Century Logic and 21st Century Computing}} , author = {Wadler, Phil} , month = {November} , year = {2000} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/papers/frege/frege.pdf|}} @inproceedings{peytonjones03lex-scope-tvs , eprint = {papers/peytonjones03lex-scope-tvs.pdf} , title = {{Lexically-scoped type variables}} , author = {Peyton Jones, Simon and Shields, Mark} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars/|}} @inproceedings{jones00class-fundep , eprint = {papers/jones00class-fundep.pdf} , title = {{Type Classes with Functional Dependencies}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the 9th European Symposium on Programming, ESOP 2000,} , month = {March} , year = {2000} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/fundeps-esop2000.pdf|}} @inproceedings{jones93constr-class , eprint = {papers/jones93constr-class.pdf} , title = {{A system of constructor classes: overloading and implicit higher-order polymorphism}} , author = {Jones, Mark P.} , booktitle = {FPCA '93: Conference on Functional Programming and Computer Architecture, Copenhagen, Denmark } , pages = {52--61} , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/jones95system.html|}} @techreport{jones94simpl-qualtype , eprint = {papers/jones94simpl-qualtype.pdf} , title = {{Simplifying and improving qualified types}} , address = {P.O. Box 208285, New Haven, CT 06520-8285} , author = {Jones, Mark P.} , booktitle = {Proceedings of the seventh international conference on Functional programming languages and computer architecture} , institution = {Yale University, Department of Computer Science} , school = {Yale University, Department of Computer Science} , month = {June} , number = {YALEU/DCS/RR-1040} , year = {1994} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/RR-1040.pdf|}} @inproceedings{jones95overl-highpoly , eprint = {papers/jones95overl-highpoly.pdf} , title = {{Functional Programming with Overloading and Higher-Order Polymorphism}} , author = {Jones, Mark P.} , booktitle = {First International Spring School on Advanced Functional Programming Techniques, B{\aa}stad, Sweden} , month = {may} , number = {925} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1995} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/springschool.html|}} @techreport{jones93coherence-qual , eprint = {papers/jones93coherence-qual.pdf} , title = {{Coherence for qualified types}} , address = {New Haven, Connecticut, USA } , author = {Jones, Mark P.} , institution = {Yale University} , school = {Yale University} , number = {YALEU/DCS/RR-989 } , year = {1993 } , howpublished = {\verb|citeseer.nj.nec.com/jones93coherence.html |}} @techreport{duponcheel94constr-class , eprint = {papers/duponcheel94constr-class.pdf} , title = {{On the expressive power of Constructor Classes }} , address = {Padualaan 14, 3584 CH Utrecht, The Netherlands } , author = {Duponcheel, Luc and Meijer, Erik} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , year = {1995} , howpublished = {\verb|citeseer.nj.nec.com/duponcheel94expressive.html |}} @inproceedings{jones92qual-types , eprint = {papers/jones92qual-types.pdf} , title = {{A Theory of Qualified Types}} , author = {Jones, Mark P.} , booktitle = {ESOP '92, Proceedings of the 4th European Symposium on Programming, Rennes, France} , editor = {Krieg-Bruckner, Bernd} , month = {February} , pages = {287-306 } , number = {582 } , publisher = {Springer-Verlag} , series = {LNCS} , year = {1992} , howpublished = {\verb|http://citeseer.nj.nec.com/jones92theory.html|}} @article{jones95constr-class-jfp , eprint = {papers/jones95constr-class-jfp.pdf} , title = {{A system of constructor classes: overloading and implicit higher-order polymorphism}} , author = {Jones, Mark P.} , booktitle = {FPCA '93: Conference on Functional Programming and Computer Architecture, Copenhagen, Denmark } , journal = {Journal of Functional Programming} , month = {January} , pages = {1--35} , number = {1} , volume = {5} , year = {1995}} @inproceedings{lewis00implicit-param , eprint = {papers/lewis00implicit-param.pdf} , title = {{Implicit Parameters: Dynamic Scoping with Static Types}} , author = {Lewis, Jeffrey R. and Shields, Mark B. and Meijer, Erik and Launchbury, John} , booktitle = {Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts} , month = {January} , pages = {108-118} , year = {2000}} @inproceedings{faxen03hask-princ-types , eprint = {papers/faxen03hask-princ-types.pdf} , title = {{Haskell and Principal Types}} , author = {Fax\'en, Karl-Filip} , booktitle = {Haskell Workshop} , pages = {88-97} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/871895.871905|}} @inproceedings{kennedy94dimension-type , eprint = {papers/kennedy94dimension-type.pdf} , title = {{Dimension Types}} , author = {Kennedy, Andrew} , booktitle = {Programming Languages and Systems---{ESOP}'94, 5th European Symposium on Programming } , pages = {348--362} , number = {788} , publisher = {Springer} , series = {LNCS} , year = {1994} , howpublished = {\verb|http://citeseer.nj.nec.com/kennedy94dimension.html|}} @inproceedings{neubauer02fun-logic-overl , eprint = {papers/neubauer02fun-logic-overl.pdf} , title = {{Functional Logic Overloading}} , author = {Neubaurer, Matthias and Thiemann, Peter and Gasbichler, Martin and Sperber, Michael} , booktitle = {Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages} , pages = {233 - 244} , year = {2002} , howpublished = {\verb|http://portal.acm.org/citation.cfm?doid=503272.503294|}} @inproceedings{sulzmann97constrained-type , eprint = {papers/sulzmann97constrained-type.pdf} , title = {{Type Inference with Constrained Types}} , author = {Odersky, Martin and Sulzmann, Martin and Wehr, Martin} , booktitle = {Fourth International Workshop on Foundations of Object-Oriented Programming ({FOOL} 4)} , year = {1997} , howpublished = {\verb|citeseer.nj.nec.com/article/sulzmann97type.html|}} @misc{sulzmann03chameleon , eprint = {papers/sulzmann03chameleon.pdf} , title = {{An Overview of the Chameleon System}} , author = {Sulzmann, Martin} , year = {2003}} @inproceedings{damas82principal-type , eprint = {papers/damas82principal-type.pdf} , title = {{Principal type-schemes for functional programs}} , author = {Damas, Luis and Milner, Robin} , booktitle = {9th symposium Principles of Programming Languages} , pages = {207-212} , publisher = {ACM Press} , year = {1982}} @article{aiken99intro-set-constr-anal , eprint = {papers/aiken99intro-set-constr-anal.pdf} , title = {{Introduction to Set Constraint-Based Program Analysis}} , author = {Aiken, Alexander} , journal = {Science of Computer Programming} , pages = {79-111} , number = {1} , volume = {35} , year = {1999} , howpublished = {\verb|http://www.cs.berkeley.edu/~aiken/publications/papers/scp99.ps|}} @inproceedings{diatchki02hask-module , eprint = {papers/diatchki02hask-module.pdf} , title = {{A Formal Specification of the Haskell 98 Module System}} , author = {Diatchki, Iavor S. and Jones, Mark P. and Hallgren, Thomas} , booktitle = {Haskell Workshop} , pages = {17-29} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581690.581692|}} @article{martelli82eff-unif-alg , eprint = {papers/martelli82eff-unif-alg.pdf} , title = {{An Efficient Unification Algorithm}} , author = {Martelli, Alberto and Montanari, Ugo} , journal = {ACM TOPLAS} , month = {April} , pages = {258 - 282} , number = {2} , volume = {4} , year = {1982} , howpublished = {\verb|http://doi.acm.org/10.1145/357162.357169|}} @inproceedings{kanellakis91unification , eprint = {papers/kanellakis91unification.pdf} , title = {{Unification and {ML}-Type Reconstruction}} , author = {Kanellakis, Paris C. and Mairson, Harry G.} , booktitle = {Computational Logic - Essays in Honor of Alan Robinson} , year = {1991 } , howpublished = {\verb|http://citeseer.nj.nec.com/kanellakis91unification.html|}} @inproceedings{botlan03ml-power-f , eprint = {papers/botlan03ml-power-f.pdf} , title = {{ML-F, Raising ML to the Power of System F}} , author = {Botlan, Le, Didier and R\'emy, Didier} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://citeseer.nj.nec.com/564799.html|}} @misc{peytonjones04pract-inf-rank , eprint = {papers/peytonjones04pract-inf-rank.pdf} , title = {{Practical type inference for arbitrary-rank types}} , author = {Peyton Jones, Simon and Shields, Mark} , year = {2004}} @techreport{gaster96poly-ext-rec-var , eprint = {papers/gaster96poly-ext-rec-var.pdf} , title = {{A Polymorphic Type System for Extensible Records and Variants}} , author = {Gaster, Benedict R. and Jones, Mark P.} , institution = {Languages and Programming Group, Department of Computer Science, Nottingham} , school = {Languages and Programming Group, Department of Computer Science, Nottingham} , month = {November} , number = {NOTTCS-TR-96-3} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/gaster96polymorphic.html|}} @inproceedings{shields01first-class-mod , eprint = {papers/shields01first-class-mod.pdf} , title = {{First-class Modules for Haskell}} , author = {Shields, Mark and Peyton Jones, Simon} , booktitle = {Ninth International Conference on Foundations of Object-Oriented Languages (FOOL 9), Portland, Oregon} , month = {December} , year = {2001}} @book{plasmeijer01clean-rep-2 , eprint = {papers/plasmeijer01clean-rep-2.pdf} , title = {{The Concurrent Clean Language Report (draft)}} , author = {Plasmeijer, Rinus and Eekelen, Marko van} , publisher = {Department of Software Technology, University of Nijmegen} , year = {2001} , howpublished = {\verb|http://www.cs.kun.nl/~clean/contents/body_contents.html|}} @inproceedings{hinze00derive-type-class , eprint = {papers/hinze00derive-type-class.pdf} , title = {{Derivable Type Classes}} , author = {Hinze, Ralf and Peyton Jones, Simon} , booktitle = {Haskell Workshop} , year = {2000} , howpublished = {\verb|http://www.informatik.uni-bonn.de/~ralf/publications/Derive.ps.gz|}} @misc{barendsen94uniq-theor-pract , eprint = {papers/barendsen94uniq-theor-pract.pdf} , title = {{Uniqueness Typing in Theory and Practice}} , author = {Barendsen, E. and Smetsers, J.} , year = {1994} , howpublished = {\verb|http://citeseer.nj.nec.com/barendsen94uniqueness.html|}} @article{barendsen96uniq-graph-sem , eprint = {papers/barendsen96uniq-graph-sem.pdf} , title = {{Uniqueness Typing for Functional Languages with Graph Rewriting Semantics}} , author = {Barendsen, Erik and Smetsers, Sjaak} , journal = {Mathematical Structures in Computer Science} , pages = {579-612} , number = {6} , volume = {6} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/barendsen96uniquenes.html|}} @inproceedings{kahl01named-instance , eprint = {papers/kahl01named-instance.pdf} , title = {{Named Instances for Haskell Type Classes}} , author = {Kahl, Wolfram and Scheffczyk, Jan} , booktitle = {Haskell Workshop} , year = {2001} , howpublished = {\verb|http://www.informatik.uni-bonn.de/~ralf/hw2001/4.html|}} @inproceedings{pfeifer99polytypic , eprint = {papers/pfeifer99polytypic.pdf} , title = {{Polytypic proof construction}} , author = {Pfeifer, Holger and Rue{\ss}, Harals} , booktitle = {Proceedings 12th Int. Conf. on Theorem Proving in Higher Order Logics, TPHOLs'99} , pages = {55-72} , number = {1690} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999} , howpublished = {\verb|citeseer.nj.nec.com/pfeifer99polytypic.html|}} @inproceedings{dybjer99finite-axiomitiz , eprint = {papers/dybjer99finite-axiomitiz.pdf} , title = {{A Finite Axiomatization of Inductive-Recursive Definitions}} , author = {Dybjer, Peter and Setzer, Anton} , booktitle = {Typed Lambda Calculus and Applications} , pages = {129-146} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.math.uu.se/~setzer/articles/index.html|}} @misc{coquand94typeth-progr , eprint = {papers/coquand94typeth-progr.pdf} , title = {{Type Theory and Programming}} , author = {Coquand, Thierry and Nordstrom, Bengt and Smith, Jan M. and Sydow, Bjorn} , year = {1994} , howpublished = {\verb|ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/typetheoryandprogramming.ps.Z|}} @misc{altenkirch00taste-intuit-type , eprint = {papers/altenkirch00taste-intuit-type.pdf} , title = {{A Taste of Intuitionistic Type Theory}} , author = {Altenkirch, Thorsten} , year = {2000} , howpublished = {\verb|http://www.cs.nott.ac.uk/~txa/itt/|}} @misc{miguel03typeth-impred , eprint = {papers/miguel03typeth-impred.pdf} , title = {{Type Theory: Impredicative Part}} , author = {Miguel, Alexandre} , year = {2003} , howpublished = {\verb|http://www.math.chalmers.se/~miquel/|}} @phdthesis{magnusson95alf-impl , eprint = {papers/magnusson95alf-impl.pdf} , title = {{The Implementation of ALF - a Proof Editor based on Martin-L\"of's Monomorphic Type Theory with Explicit Substitution}} , author = {Magnusson, Lena} , year = {1995} , howpublished = {\verb|citeseer.nj.nec.com/magnusson95implementation.html|}} @article{dybjer00inductrec-inialg , eprint = {papers/dybjer00inductrec-inialg.pdf} , title = {{Induction-Recursion and Initial Algebras}} , author = {Dybjer, Peter and Setzer, Anton} , year = {2000} , howpublished = {\verb|http://www.cs.chalmers.se/~peterd/|}} @inproceedings{fokkinga94intro-categ , eprint = {papers/fokkinga94intro-categ.pdf} , title = {{A Gentle Introduction to Category Theory --- the calculational approach}} , author = {Fokkinga, Maarten} , booktitle = {Lecture Notes of the {STOP} 1992 Summerschool on Constructive Algorithmics} , month = {September} , pages = {1-72} , publisher = {Utrecht University, Institute of Information and Computing Sciences} , year = {1994} , howpublished = {\verb|http://wwwhome.cs.utwente.nl/~fokkinga/mmf92b.html|}} @inproceedings{cheney02lightweight , eprint = {papers/cheney02lightweight.pdf} , title = {{A Lightweight Implementation of Generics and Dynamics}} , author = {Cheney, James and Hinze, Ralf} , booktitle = {Haskell Workshop} , year = {2002} , howpublished = {\verb|http://citeseer.nj.nec.com/cheney02lightweight.html|}} @inproceedings{johnsson87attr-as-fun , eprint = {papers/johnsson87attr-as-fun.pdf} , title = {{Attribute grammars as a functional programming paradigm}} , author = {Johnsson, Thomas} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {154-173} , year = {1987} , howpublished = {\verb|http://citeseer.csail.mit.edu/johnsson87attribute.html|}} @inproceedings{odersky95overload-2nd , eprint = {papers/odersky95overload-2nd.pdf} , title = {{A Second Look at Overloading}} , author = {Odersky, Martin and Wadler, Philip and Wehr, Martin} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {135-146} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/172417.html|}} @article{laufer96class-existential , eprint = {papers/laufer96class-existential.pdf} , title = {{Type Classes with Existential Types}} , author = {Laufer, Konstantin} , journal = {Journal of Functional Programming} , month = {May} , pages = {485-517} , number = {3} , volume = {6} , year = {1996} , howpublished = {\verb|citeseer.ist.psu.edu/laeufer95type.html|}} @inproceedings{wadler87views , eprint = {papers/wadler87views.pdf} , title = {{Views: A Way for Pattern Matching to Cohabit with Data Abstraction}} , author = {Wadler, Philip} , booktitle = {Principles of Programming Languages} , editor = {Munchnik, Steve} , pages = {307-322} , year = {1987} , howpublished = {\verb|http://citeseer.ist.psu.edu/wadler87views.html|}} @book{peytonjones03has98-rev-rep , eprint = {papers/peytonjones03has98-rev-rep.pdf} , title = {{Haskell 98, Language and Libraries, The Revised Report}} , author = {Peyton Jones, Simon} , publisher = {Cambridge Univ. Press} , year = {2003}} @misc{www04ghc , eprint = {papers/www04ghc.pdf} , title = {{The Glasgow Haskell Compiler}} , author = {Marlow, Simon and Peyton Jones, Simon} , year = {2004} , howpublished = {\verb|http://www.haskell.org/ghc/|}} @misc{baars04ag-www , eprint = {papers/baars04ag-www.pdf} , title = {{Attribute Grammar System}} , author = {Baars, Arthur and Swierstra, S. Doaitse and L\"oh, Andres} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Center/AttributeGrammarSystem|}} @inproceedings{kfoury94direct , eprint = {papers/kfoury94direct.pdf} , title = {{A Direct Algorithm for Type Inference in the Rank-2 Fragment of Second-Order lambda-Calculus}} , author = {Kfoury, A.J. and Wells, J.B.} , booktitle = {Proceedings of the 1994 ACM conference on LISP and functional programming} , pages = {196-207} , year = {1994} , howpublished = {\verb|http://doi.acm.org/10.1145/182409.182456|}} @techreport{jim95rank , eprint = {papers/jim95rank.pdf} , title = {{Rank 2 type systems and recursive definitions}} , author = {Jim, Trevor} , institution = {MIT} , school = {MIT} , number = {MIT/LCS TM-531} , year = {1995} , howpublished = {\verb|http://www.research.att.com/~trevor/papers.html|}} @inproceedings{kfoury99rank2-decid , eprint = {papers/kfoury99rank2-decid.pdf} , title = {{Principality and Decidable Type Inference for Finite-Rank Intersection Types}} , author = {Kfoury, A.J. and Wells, J.B.} , booktitle = {Principles of Programming Languages} , journal = {Theoretical Computer Science} , pages = {161-174} , year = {1999} , howpublished = {\verb|http://www.church-project.org/reports/Kfo+Wel:POPL-1999.html|}} @article{kfoury03rank2-princ , eprint = {papers/kfoury03rank2-princ.pdf} , title = {{Principality and Type Inference for Intersection Types Using Expansion Variables}} , author = {Kfoury, A.J. and Wells, J.B.} , journal = {Theoretical Computer Science} , pages = {1-70} , number = {1-3} , volume = {311} , year = {2003} , howpublished = {\verb|http://www.church-project.org/reports/Kfo+Wel:TCSB-2004-v311n1-3.html|}} @article{kfoury93recursivetype , eprint = {papers/kfoury93recursivetype.pdf} , title = {{Type recursion in the presence of polymorphic recursion}} , author = {Kfoury, A.J. and Tiuryn, J. and Urzyczyn, P.} , journal = {ACM TOPLAS} , pages = {290-311} , number = {2} , volume = {15} , year = {1993} , howpublished = {\verb|http://www.cs.bu.edu/techreports/pdf/1993-019-recursivetype.pdf|}} @techreport{hallet04polyrec-ex , eprint = {papers/hallet04polyrec-ex.pdf} , title = {{Programming Examples needing Polymorphic Recursion}} , author = {Hallet, J.J. and Kfoury, A.J.} , institution = {Boston University} , school = {Boston University} , year = {2004} , howpublished = {\verb|http://www.church-project.org/reports/electronic/Hal+Kfo:BUCS-TR-2004-004.pdf|}} @techreport{vasconcellos03polyrec-impl , eprint = {papers/vasconcellos03polyrec-impl.pdf} , title = {{Practical Type Inference for Polymorphic Recursion: an Implementation in Haskell}} , author = {Vasconcellos, Cristiano and Figueiredo, Lucilia and Camarao, Carlos} , year = {2003} , howpublished = {\verb|http://www.dcc.ufmg.br/~camarao/sblp2003.pdf|}} @article{henglein91polyrec-infer , eprint = {papers/henglein91polyrec-infer.pdf} , title = {{Type inference with polymorphic recursion}} , author = {Henglein, Fritz} , journal = {ACM TOPLAS} , pages = {253-289} , number = {2} , volume = {15} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/169701.169692|}} @inproceedings{figueiredo01polyrec-princ , eprint = {papers/figueiredo01polyrec-princ.pdf} , title = {{Principal Typing and Mutual Recursion}} , author = {Figueiredo, Lucilia and Camarao, Carlos} , booktitle = {International Workshop on Functional and (Constraint) Logic Programming} , year = {2001} , howpublished = {\verb|http://www.informatik.uni-kiel.de/~wflp2001/proceedings/|}} @misc{dijkstra04ehc-web , eprint = {papers/dijkstra04ehc-web.pdf} , title = {{EHC Web}} , author = {Dijkstra, Atze} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Ehc/WebHome|}} @inproceedings{swierstra00parser-toytool , eprint = {papers/swierstra00parser-toytool.pdf} , title = {{Parser Combinators, from Toys to Tools}} , author = {Swierstra, S. Doaitse} , booktitle = {Haskell Workshop} , number = {41.1} , publisher = {Elsevier Science Publishers} , series = {Electronic Notes in Theoretical Computer Science} , year = {2000} , howpublished = {\verb|http://www.cs.uu.nl/~doaitse/#pubs|}} @inproceedings{swierstra99parser-tutor , eprint = {papers/swierstra99parser-tutor.pdf} , title = {{Fast, Error Correcting Parser Combinators: A Short Tutorial}} , author = {Swierstra, S. Doaitse and Azero Alcocer, Pablo R.} , booktitle = {SOFSEM'99 Theory and Practice of Informatics} , month = {November} , pages = {111-129} , number = {1725} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.cs.uu.nl/~doaitse/#pubs|}} @inproceedings{odersky97putting-ann , eprint = {papers/odersky97putting-ann.pdf} , title = {{Putting Type Annotations to Work}} , author = {Odersky, Martin and Laufer, Konstantin} , booktitle = {Principles of Programming Languages} , pages = {54-67} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/odersky96putting.html|}} @dissertation{perry91phd , eprint = {papers/perry91phd.pdf} , title = {{The Implementation of Practical Functional Programming Languages}} , author = {Perry, Nigel} , institution = {Department of Computing, Imperial College, London} , school = {Department of Computing, Imperial College, London} , year = {1991}} @techreport{laufer94poly-absdata , eprint = {papers/laufer94poly-absdata.pdf} , title = {{Polymorphic Type Inference and Abstract Data Types}} , author = {Laufer, Konstantin and Odersky, Martin} , institution = {Loyola University of Chicago} , school = {Loyola University of Chicago} , number = {LUC-001} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/lufer94polymorphic.html|}} @article{mitchell88absty-exist , eprint = {papers/mitchell88absty-exist.pdf} , title = {{Abstract Types Have Existential Type}} , author = {Mitchell, John C. and Plotkin, Gordon D.} , journal = {ACM TOPLAS} , month = {July} , pages = {470-502} , number = {3} , volume = {10} , year = {1988} , howpublished = {\verb|http://doi.acm.org/10.1145/44501.45065|}} @misc{uust04www , eprint = {papers/uust04www.pdf} , title = {{UUST library}} , author = {Software Technology Group, Utrecht University} , year = {2004} , howpublished = {\verb|http://cvs.cs.uu.nl/cgi-bin/cvsweb.cgi/uust/|}} @techreport{heeren02hm-constr , eprint = {papers/heeren02hm-constr.pdf} , title = {{Generalizing Hindley-Milner Type Inference Algorithms}} , address = {University Utrecht, Netherlands} , author = {Heeren, Bastiaan and Hage, Jurriaan and Swierstra, S. Doaitse} , institution = {Institute of Information and Computing Science} , school = {Institute of Information and Computing Science} , number = {UU-CS-2002-031} , year = {2002} , howpublished = {\verb|http://www.cs.uu.nl/pub/RUU/CS/techreps/CS-2002/2002-031.pdf|}} @misc{schrage04www-proxima , eprint = {papers/schrage04www-proxima.pdf} , title = {{Proxima. A generic presentation-oriented XML editor}} , author = {Schrage, Martijn} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Center/Proxima|}} @article{milner78type-poly , eprint = {papers/milner78type-poly.pdf} , title = {{A theory of type polymorphism in programming}} , author = {Milner, R.} , journal = {Journal of Computer and System Sciences} , number = {3} , volume = {17} , year = {1978}} @article{hindley69princ-type , eprint = {papers/hindley69princ-type.pdf} , title = {{The principal type-scheme of an object in combinatory logic}} , author = {Hindley, J.R.} , journal = {Transactions of the American Mathematical Society} , month = {December} , pages = {29-60} , volume = {146} , year = {1969}} @inproceedings{reynolds74type-struct-sysF , eprint = {papers/reynolds74type-struct-sysF.pdf} , title = {{Towards a theory of type structure}} , author = {Reynolds, J.C.} , booktitle = {Proceedings Colloque sur la Programmation} , pages = {408-425} , number = {19} , series = {LNCS} , year = {1974 }} @inproceedings{boquist96grin-optim , eprint = {papers/boquist96grin-optim.pdf} , title = {{The GRIN Project: A Highly Optimising Back End For Lazy Functional Languages}} , author = {Boquist, Urban and Johnsson, Thomas} , booktitle = {Selected papers from the 8th International Workshop on Implementation of Functional Languages} , year = {1996} , howpublished = {\verb|http://www.cs.chalmers.se/~boquist/ifl96-abstract.html|}} @book{boquist99phd-optim-lazy , eprint = {papers/boquist99phd-optim-lazy.pdf} , title = {{Code Optimisation Techniques for Lazy Functional Languages, PhD Thesis}} , author = {Boquist, Urban} , publisher = {Chalmers University of Technology} , year = {1999} , howpublished = {\verb|http://www.cs.chalmers.se/~boquist/phd/index.html|}} @inproceedings{peytonjones92ghc-overview , eprint = {papers/peytonjones92ghc-overview.pdf} , title = {{The Glasgow Haskell compiler: a technical overview}} , author = {Peyton Jones, Simon and Hall, Cordy and Hammond, Kevin and Partain, Will and Wadler, Phil} , booktitle = {Proc. UK Joint Framework for Information Technology (JFIT) Technical Conference} , year = {1992} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones92glasgow.html|}} @book{plasmeijer93func-graph , eprint = {papers/plasmeijer93func-graph.pdf} , title = {{Functional Programming and Parallel Graph Rewriting}} , author = {Plasmeijer, Rinus and Eekelen, M.J. van} , publisher = {Addison-Wesley} , year = {1993} , howpublished = {\verb|http://www.cs.kun.nl/~clean/contents/Addison__Wesley_book/addison__wesley_book.html|}} @misc{marlow98new-ghc-run , eprint = {papers/marlow98new-ghc-run.pdf} , title = {{The New GHC/Hugs Runtime System}} , author = {{GHC Team}} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/marlow98new.html|}} @inproceedings{peytonjones96hs-transf , eprint = {papers/peytonjones96hs-transf.pdf} , title = {{Compiling Haskell by program transformation: a report from the trenches}} , author = {Peyton Jones, Simon} , booktitle = {European Symposium On Programming} , pages = {18-44} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones96compiling.html|}} @article{peytonjones98trans-optim , eprint = {papers/peytonjones98trans-optim.pdf} , title = {{A transformation-based optimiser for Haskell}} , author = {Peyton Jones, Simon and Santos, Andre} , journal = {Science of Computer Programming} , month = {3-47} , number = {1-3} , volume = {32} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones98transformationbased.html|}} @techreport{dijkstra04thag-part1 , eprint = {papers/dijkstra04thag-part1.pdf} , title = {{Typing Haskell with an Attribute Grammar (Part I)}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {UU-CS-2004-037} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2004-037.html|}} @article{peytonjones02hs-inline , eprint = {papers/peytonjones02hs-inline.pdf} , title = {{Secrets of the Glasgow Haskell Compiler inliner}} , author = {Peyton Jones, Simon and Marlow, Simon} , journal = {Journal of Functional Programming} , pages = {393-434} , year = {2002}} @techreport{leroy90zinc-ml-impl , eprint = {papers/leroy90zinc-ml-impl.pdf} , title = {{The ZINC experiment: an economical implementation of the ML language}} , author = {Leroy, Xavier} , institution = {INRIA-Rocquencourt} , school = {INRIA-Rocquencourt} , number = {RT-0117} , year = {1990 } , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy90zinc.html|}} @misc{tolmach01ghc-core , eprint = {papers/tolmach01ghc-core.pdf} , title = {{An External Representation for the GHC Core Language (Draft for GHC5.02)}} , author = {Tolmach, Andrew} , year = {2001} , howpublished = {\verb|http://www.haskell.org/ghc/documentation.html|}} @phdthesis{santos95phd-comp-trafo , eprint = {papers/santos95phd-comp-trafo.pdf} , title = {{Compilation by Transformation in Non-Strict Functional Languages}} , author = {Santos, Andre} , institution = {University of Glasgow} , school = {University of Glasgow} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/santos95compilation.html|}} @misc{peytonjones94trafo-ghc , eprint = {papers/peytonjones94trafo-ghc.pdf} , title = {{Compilation by Transformation in the Glasgow Haskell Compiler}} , author = {Peyton Jones, Simon and Santos, Andre} , booktitle = {Functional Programming} , editor = {K Hammond e.a} , pages = {184-204} , publisher = {Springer-Verlag} , series = {Workshops in Computing} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones94compilation.html|}} @inproceedings{leroy95appl-func-mod , eprint = {papers/leroy95appl-func-mod.pdf} , title = {{Applicative Functors and Fully Transparent Higher-Order Modules}} , author = {Leroy, Xavier} , booktitle = {Principles of Programming Languages} , pages = {142-153} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy95applicative.html|}} @inproceedings{leroy94manif-ty-mod , eprint = {papers/leroy94manif-ty-mod.pdf} , title = {{Manifest types, modules, and separate compilation}} , author = {Leroy, Xavier} , booktitle = {Principles of Programming Languages} , pages = {109-122} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy94manifest.html|}} @article{cardelli85ty-abstr-poly , eprint = {papers/cardelli85ty-abstr-poly.pdf} , title = {{On Understanding Types, Data Abstraction, and Polymorphism}} , author = {Cardelli, Luca and Wegner, Peter} , journal = {ACM Computing Surveys} , pages = {471-522} , number = {4} , volume = {17} , year = {1985} , howpublished = {\verb|http://citeseer.ist.psu.edu/cardelli85understanding.html|}} @techreport{jones99impl-param , eprint = {papers/jones99impl-param.pdf} , title = {{Exploring the design space for typebased implicit parameterization}} , author = {Jones, Mark} , institution = {Oregon Graduate Institute} , school = {Oregon Graduate Institute} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones99exploring.html|}} @mastersthesis{scheffczyk01mth-namedinst , eprint = {papers/scheffczyk01mth-namedinst.pdf} , title = {{Named Instances for Haskell Type Classes}} , author = {Scheffzcyk, Jan} , institution = {Universitat der Bundeswehr M\"unchen} , school = {Universitat der Bundeswehr M\"unchen} , year = {2001} , howpublished = {\verb|http://www.rz.unibw-muenchen.de/~j8sj0499/|}} @inproceedings{dijkstra04thag , eprint = {papers/dijkstra04thag.pdf} , title = {{Typing Haskell with an Attribute Grammar}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Advanced Functional Programming Summerschool} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {3622} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2004}} @misc{chakravarty03hask-ffi , eprint = {papers/chakravarty03hask-ffi.pdf} , title = {{The Haskell 98 Foreign Function Interface 1.0: An Addendum to the Haskell 98 Report}} , author = {Chakravarty, Manuel} , year = {2003} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/haskell/ffi/|}} @misc{www03hugs , eprint = {papers/www03hugs.pdf} , title = {{Hugs 98}} , author = {Jones, Mark P.} , year = {2003} , howpublished = {\verb|http://www.haskell.org/hugs/|}} @techreport{gaster98phd-records , eprint = {papers/gaster98phd-records.pdf} , title = {{Records, variants and qualified types}} , author = {Gaster, Benedict R.} , institution = {University of Nottingham} , school = {University of Nottingham} , number = {NOTTCS-TR-98-3} , year = {1998} , howpublished = {\verb|http://www.cs.nott.ac.uk/Research/fop/gaster-thesis.pdf|}} @inproceedings{harper91records-symm , eprint = {papers/harper91records-symm.pdf} , title = {{A record calculus based on symmetric concatenation}} , author = {Harper, Robert and Pierce, Benjamin} , booktitle = {Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages} , pages = {131-142} , year = {1991} , howpublished = {\verb|http://doi.acm.org/10.1145/99583.99603|}} @inproceedings{jones96paramsig-mod , eprint = {papers/jones96paramsig-mod.pdf} , title = {{Using Parameterized Signatures to Express Modular Structure}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the Twenty Third Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages} , year = {1996} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/paramsig.pdf|}} @inproceedings{sansom93gen-gc-hask , eprint = {papers/sansom93gen-gc-hask.pdf} , title = {{Generational Garbage Collection for Haskell}} , author = {Sansom, Patrick M. and Peyton Jones, Simon} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {106-116} , year = {1993 } , howpublished = {\verb|http://citeseer.ist.psu.edu/article/sansom93generational.html|}} @misc{dijkstra04expl-impl-param , eprint = {papers/dijkstra04expl-impl-param.pdf} , title = {{Explicit implicit parameters (submitted to ESOP2005)}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , year = {2004}} @techreport{dijkstra04expl-impl-param-tr , eprint = {papers/dijkstra04expl-impl-param-tr.pdf} , title = {{Explicit implicit parameters}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Institute of Information and Computing Science} , school = {Institute of Information and Computing Science} , number = {UU-CS-2004-059} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2004-059.html|}} @inproceedings{jeuring94gram-anal , eprint = {papers/jeuring94gram-anal.pdf} , title = {{Bottom-Up Grammar Analysis, A Functional Formulation}} , author = {Jeuring, Johan and Swierstra, S. Doaitse} , booktitle = {European Symposium On Programming} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/jeuring94bottomup.html|}} @inproceedings{jeuring95gram-anal-func , eprint = {papers/jeuring95gram-anal-func.pdf} , title = {{Constructing Functional Programs for Grammar Analysis Problems}} , author = {Jeuring, Johan and Swierstra, S. Doaitse} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {259-269} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/jeuring95constructing.html|}} @inproceedings{farrow92comp-ag , eprint = {papers/farrow92comp-ag.pdf} , title = {{Composable Attribute Grammars: Support for Modularity in Translator Design and Implementation}} , author = {Farrow, R. and Marlowe, T.J. and Yelling, D.M.} , booktitle = {Principles of Programming Languages} , pages = {223-234} , year = {1992} , howpublished = {\verb|http://doi.acm.org/10.1145/143165.143210|}} @article{dueck90mod-ag , eprint = {papers/dueck90mod-ag.pdf} , title = {{Modular Attribute Grammars}} , author = {Dueck, G.D.P. and Cormack, G.V.} , journal = {The Computer Journal} , pages = {164-172} , number = {2} , volume = {33} , year = {1990 }} @phdthesis{adams91mod-gram , eprint = {papers/adams91mod-gram.pdf} , title = {{Modular Grammars for Programming Language Prototyping}} , author = {Adams, Stephen Robert} , publisher = {University of Southampton, Faculty of Engineering, Dept of CS} , year = {1991 } , howpublished = {\verb|http://www.swiss.ai.mit.edu/users/adams/MAG/|}} @article{shan04sexy-types , eprint = {papers/shan04sexy-types.pdf} , title = {{Sexy types in action}} , author = {Shan, Chung-chieh} , journal = {ACM SIGPLAN Notices} , month = {May} , pages = {15-22} , number = {5} , volume = {39} , year = {2004} , howpublished = {\verb|http://doi.acm.org/10.1145/997140.997142|}} @inproceedings{kiselyov04impl-config , eprint = {papers/kiselyov04impl-config.pdf} , title = {{Implict configuration - or, type classes reflect the value of types}} , author = {Kiselyov, Oleg and Shan, Chung-chieh} , booktitle = {Haskell Workshop} , year = {2004} , howpublished = {\verb|http://www.eecs.harvard.edu/~ccshan/prepose/prepose.pdf|}} @inproceedings{odersky01col-loc-infer , eprint = {papers/odersky01col-loc-infer.pdf} , title = {{Colored Local Type Inference}} , author = {Odersky, Martin and Zenger, Christoph and Zenger, Matthias} , booktitle = {Principles of Programming Languages} , journal = {ACM SIGPLAN Notices} , month = {March} , pages = {41-53} , number = {3} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/373243.360207|}} @inproceedings{mohnen96ctxt-pat , eprint = {papers/mohnen96ctxt-pat.pdf} , title = {{Context Patterns in Haskell}} , author = {Mohnen, Markus} , booktitle = {Implementation of Functional Languages} , pages = {41-57} , number = {1268} , series = {LNCS} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/mohnen96context.html|}} @inproceedings{mohnen97ctxt-pat , eprint = {papers/mohnen97ctxt-pat.pdf} , title = {{Context Patterns, Part {II}}} , author = {Mohnen, Markus} , booktitle = {Implementation of Functional Languages} , pages = {338--357} , number = {1467} , series = {LNCS} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/mohnen97context.html|}} @mastersthesis{mazanek03highkind-subtype , eprint = {papers/mazanek03highkind-subtype.pdf} , title = {{Higher-Kinded Types in the Context of Subtyping}} , author = {Mazanek, Steffen} , school = {University of the German Federal Armed Forces} , year = {2003} , howpublished = {\verb|http://www.steffen-mazanek.de/mixed/projects/Diplomarbeit.pdf|}} @inproceedings{kuiper86ag-fp , eprint = {papers/kuiper86ag-fp.pdf} , title = {{Using Attribute Grammars to Derive Efficient Functional Programs}} , author = {Kuiper, M.F. and Swierstra, S. Doaitse} , booktitle = {Computing Science in the Netherlands CSN'87} , month = {November} , year = {1987} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/RUU-CS-86-16.html|}} @article{bird84circ-traverse , eprint = {papers/bird84circ-traverse.pdf} , title = {{Using Circular Programs to Eliminate Multiple Traversals of Data}} , author = {Bird, Richard S.} , journal = {Acta Informatica} , pages = {239-250} , volume = {21} , year = {1984} , howpublished = {\verb|http://www.springerlink.com/index/G74174VVL1861605.pdf|}} @inproceedings{laemmel03boilerplate , eprint = {papers/laemmel03boilerplate.pdf} , title = {{Scrap your boilerplate: a practical design pattern for generic programming}} , author = {L\"ammel, Ralf and Peyton Jones, Simon} , booktitle = {Types In Languages Design And Implementation} , pages = {26-37} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/604174.604179|}} @inproceedings{wadler90deforest , eprint = {papers/wadler90deforest.pdf} , title = {{Deforestation: transforming programs to eliminate trees}} , author = {Wadler, Philip} , booktitle = {Theoretical Computer Science, (Special issue of selected papers from 2'nd European Symposium on Programming)} , pages = {231-248} , year = {1990} , howpublished = {\verb|http://homepages.inf.ed.ac.uk/wadler/topics/deforestation.html|}} @phdthesis{saraiva99phd-funcimpl-ag , eprint = {papers/saraiva99phd-funcimpl-ag.pdf} , title = {{Purely Functional Implementation of Attribute Grammars}} , author = {Saraiva, Joao} , institution = {Utrecht University} , school = {Utrecht University} , year = {1999}} @phdthesis{girard72system-f , eprint = {papers/girard72system-f.pdf} , title = {{Interpr\'etation fonctionelle et \'elimination des coupures de l'arithm\'etique d'ordre sup\'erieur}} , author = {Girard, Jean-Yves} , school = {Universit\'e Paris VII} , year = {1972}} @misc{baars02www-syn-macro , eprint = {papers/baars02www-syn-macro.pdf} , title = {{Syntax Macros (Unfinished draft)}} , author = {Baars, Arthur and Swierstra, S. Doaitse} , year = {2002} , howpublished = {\verb|http://www.cs.uu.nl/\-people/\-arthurb/macros.html|}} @inproceedings{heeren05class-direct , eprint = {papers/heeren05class-direct.pdf} , title = {{Type Class Directives}} , author = {Heeren, Bastiaan and Hage, Jurriaan} , booktitle = {Seventh International Symposium on Practical Aspects of Declarative Languages} , pages = {253 -- 267} , publisher = {Springer-Verlag} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/people/bastiaan/|}} @article{efremidis97attr-gram-ml , eprint = {papers/efremidis97attr-gram-ml.pdf} , title = {{AML: Attribute Grammars in ML}} , author = {Efremidis, Sofoklis G. and Mughal, Khalis A. and Reppy, John H. and Soraas, Lars} , journal = {Nordic Journal of Computing} , year = {1997}} @misc{hallgren03progica-demo , eprint = {papers/hallgren03progica-demo.pdf} , title = {{Haskell Tools from the Programmatica Project}} , author = {Hallgren, Thomas} , year = {2003}} @misc{launchbury96state-haskell , eprint = {papers/launchbury96state-haskell.pdf} , title = {{State in Haskell}} , author = {Launchbury, J. and Peyton Jones, SL.} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/details/launchbury96state.html|}} @inproceedings{stuckey02th-overl-acm , eprint = {papers/stuckey02th-overl-acm.pdf} , title = {{A Theory of Overloading}} , author = {Stuckey, Peter J. and Sulzmann, Martin} , booktitle = {Proceedings of the seventh ACM SIGPLAN international conference on Functional programming} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , pages = {167-178} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581478.581495|}} @phdthesis{pasalic04type-eq-phd , eprint = {papers/pasalic04type-eq-phd.pdf} , title = {{The Role of Type Equality in Meta-programming}} , author = {Pasalic, Emir} , school = {OGI School of Science & Engineering} , year = {2004} , howpublished = {\verb|http://www.cs.rice.edu/%7Epasalic/thesis/body.pdf|}} @inproceedings{pasalic04meta-ty-objrep , eprint = {papers/pasalic04meta-ty-objrep.pdf} , title = {{Meta-Programming with Typed Object-Language Representations}} , author = {Pasalic, Emir} , booktitle = {Generative Programming and Component Engineering} , school = {OGI School of Science & Engineering} , year = {2004} , howpublished = {\verb|http://www.cs.pdx.edu/%7Esheard/papers/MetaProgTypObjLangReps.ps|}} @techreport{simonet05constr-gadt , eprint = {papers/simonet05constr-gadt.pdf} , title = {{Constraint-Based Type Inference for Guarded Algebraic Data Types}} , author = {Simonet, Vincent and Pottier, Francois} , institution = {INRIA-Rocquencourt} , school = {INRIA-Rocquencourt} , number = {5462} , year = {2005} , howpublished = {\verb|http://cristal.inria.fr/%7Efpottier/publis/simonet-pottier-hmg.pdf|}} @article{simonet05constr-gadt-acm , eprint = {papers/simonet05constr-gadt-acm.pdf} , title = {{Constraint-Based Type Inference for Guarded Algebraic Data Types (submitted to TOPLAS)}} , author = {Simonet, Vincent and Pottier, Francois} , journal = {ACM TOPLAS} , year = {2005} , howpublished = {\verb|http://cristal.inria.fr/%7Efpottier/publis/simonet-pottier-hmg-toplas.pdf|}} @phdthesis{loh04gener-hs-phd , eprint = {papers/loh04gener-hs-phd.pdf} , title = {{Exploring Generic Haskell}} , author = {L\"oh, Andres} , school = {Utrecht University, Department of Information and Computing Sciences} , year = {2004}} @misc{vytiniotis05boxy-impred , eprint = {papers/vytiniotis05boxy-impred.pdf} , title = {{Boxy type inference for higher-rank types and impredicativity (submitted to ICFP2005)}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , year = {2005}} @phdthesis{dijkstra05phd , eprint = {papers/dijkstra05phd.pdf} , title = {{Stepping through Haskell}} , author = {Dijkstra, Atze} , school = {Utrecht University, Department of Information and Computing Sciences} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Ehc/WebHome|}} @misc{loh04lhs2tex-www , eprint = {papers/loh04lhs2tex-www.pdf} , title = {{lhs2TeX}} , author = {L\"oh, Andres} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/people/andres/lhs2tex/|}} @article{knuth68ag , eprint = {papers/knuth68ag.pdf} , title = {{Semantics of context-free languages}} , author = {Knuth, D.E.} , journal = {Mathematical Systems Theory} , pages = {127-145} , number = {2} , volume = {2} , year = {1968 }} @inproceedings{trifonov03sim-qucls-cnstr , eprint = {papers/trifonov03sim-qucls-cnstr.pdf} , title = {{Simulating quantified class constraints}} , author = {Trifonov, Valery} , booktitle = {Haskell Workshop} , pages = {98-102} , year = {2003} , howpublished = {\verb|http://flint.cs.yale.edu/trifonov/papers/sqcc.pdf|}} @techreport{dijkstra05explimpl , eprint = {papers/dijkstra05explimpl.pdf} , title = {{Making Implicit Parameters Explicit}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Utrecht University} , school = {Utrecht University} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2005-032.html|}} @misc{www05programmatica , eprint = {papers/www05programmatica.pdf} , title = {{Programmatica Project (WWW site)}} , year = {2005} , howpublished = {\verb|http://www.cse.ogi.edu/PacSoft/projects/\-programatica/default.htm|}} @inproceedings{aydemir95poplmark-chall , eprint = {papers/aydemir95poplmark-chall.pdf} , title = {{Mechanized metatheory for the masses: The POPLmark challenge}} , author = {Aydemir, Brian E. and Bohannon, Aaron and Fairbairn, Matthew and Foster, J. Nathan and Pierce, Benjamin C.} , booktitle = {The 18th International Conference on Theorem Proving in Higher Order Logics} , year = {2005} , howpublished = {\verb|http://www.cis.upenn.edu/group/proj/plclub/mmm/|}} @techreport{dijkstra05ruler , eprint = {papers/dijkstra05ruler.pdf} , title = {{Ruler: Programming Type Rules}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Utrecht University} , school = {Utrecht University} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2005-033.html|}} @misc{www05litprog , eprint = {papers/www05litprog.pdf} , title = {{Literate Programming}} , year = {2005} , howpublished = {\verb|http://www.literateprogramming.com/|}} @article{knuth92litprog , eprint = {papers/knuth92litprog.pdf} , title = {{Literate Programming}} , author = {Knuth, D.E.} , booktitle = {Literate Programming} , journal = {Journal of the ACM} , pages = {97-111} , number = {42} , series = {CSLI} , year = {1984 } , howpublished = {\verb|http://www.literateprogramming.com/knuthweb.pdf|}} @misc{dijkstra05ruler-www , eprint = {papers/dijkstra05ruler-www.pdf} , title = {{Ruler}} , author = {Dijkstra, Atze} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/Ruler|}} @book{davey02lattices-order , eprint = {papers/davey02lattices-order.pdf} , title = {{Introduction to Lattices and Order}} , author = {Davey, B.A. and Priestley, H.A.} , edition = {2nd edition} , publisher = {Cambridge Univ. Press} , year = {2002}} @phdthesis{bakel93phd-intersection , eprint = {papers/bakel93phd-intersection.pdf} , title = {{Intersection Type Disciplines in Lambda Calculus and Applicative Term Rewriting Systems}} , address = {Amsterdam} , author = {Bakel, Stef van} , school = {Mathematisch Centrum} , year = {1993}} @article{wells98undec-type-sysf , eprint = {papers/wells98undec-type-sysf.pdf} , title = {{Typability and Type Checking in System F Are Equivalent and Undecidable}} , author = {Wells, J.B.} , journal = {Annals of Pure and Applied Logic} , pages = {111-156} , number = {1-3} , volume = {98} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/wells98typability.html|}} @misc{kfoury03princ-intersect , eprint = {papers/kfoury03princ-intersect.pdf} , title = {{Principality and type inference for intersection types using expansion variables}} , author = {Kfoury, A. and Wells, J.} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/kfoury03principality.html|}} @misc{www03church-project , eprint = {papers/www03church-project.pdf} , title = {{The Church Project}} , author = {Kfoury, Assaf and Xi, Hongwei and Pericas, Santiago M.} , year = {2005} , howpublished = {\verb|http://www.church-project.org/|}} @inproceedings{leijen05qual-mlf , eprint = {papers/leijen05qual-mlf.pdf} , title = {{Qualified types for MLF}} , author = {Leijen, Daan and L\"oh, Andres} , booktitle = {ICFP} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/people/daan/pubs.html|}} @phdthesis{lillibridge97phd-translucent , eprint = {papers/lillibridge97phd-translucent.pdf} , title = {{Translucent Sums: A Foundation for Higher-Order Module Systems}} , author = {Lillibridge, Mark} , school = {School of Computer Science, Carnegie Mellon University} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/lillibridge97translucent.html|}} @techreport{srensen98curry-howard , eprint = {papers/srensen98curry-howard.pdf} , title = {{Lectures on the Curry-Howard isomorphism}} , author = {Srensen, M. and Urzyczyn, P.} , institution = {Univ. of Copenhagen} , school = {Univ. of Copenhagen} , number = {TOPPS D-368} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/519604.html|}} @book{knuth86tex-program , eprint = {papers/knuth86tex-program.pdf} , title = {{Computers and Typesetting, Volume B, TeX: The Program}} , author = {Knuth, Donald E.} , publisher = {Addison-Wesley} , year = {1986}} @misc{www04cminusminus , eprint = {papers/www04cminusminus.pdf} , title = {{C--}} , year = {2004} , howpublished = {\verb|http://www.cminusminus.org/|}} @inproceedings{macqueen86dep-ty-module , eprint = {papers/macqueen86dep-ty-module.pdf} , title = {{Using dependent types to express modular structure}} , author = {MacQueen, David B.} , booktitle = {Principles of Programming Languages} , pages = {277-286} , year = {1986} , howpublished = {\verb|http://doi.acm.org/10.1145/512644.512670|}} @phdthesis{steffen97polar-phd , eprint = {papers/steffen97polar-phd.pdf} , title = {{Polarized Higher-Order Subtyping}} , author = {Steffen, Martin} , school = {Der Technischen Fakult\"at der Universit\"at Erlangen-N\"urnberg} , year = {1997} , howpublished = {\verb|http://www.informatik.uni-kiel.de|}} @inproceedings{steffen97polar-abs , eprint = {papers/steffen97polar-abs.pdf} , title = {{Polarized Higher-Order Subtyping (Extended Abstract)}} , author = {Steffen, Martin} , booktitle = {Types working group Workshop on Subtyping, inheritance and modular development of proofs} , school = {Der Technischen Fakult\"at der Universit\"at Erlangen-N\"urnberg} , year = {1997} , howpublished = {\verb|http://www.informatik.uni-kiel.de|}} @phdthesis{boyland96phd-compile-comp , eprint = {papers/boyland96phd-compile-comp.pdf} , title = {{Descriptional Composition of Compiler Components}} , author = {Boyland, John Tang} , school = {Computer Science Division, University of California} , year = {1996} , howpublished = {\verb|www.cs.uwm.edu/~boyland/papers/tr.ps.Z|}} @inproceedings{malcolm89homo-cata , eprint = {papers/malcolm89homo-cata.pdf} , title = {{Homomorphisms and promotability}} , author = {Malcolm, G.} , booktitle = {Mathematics of Program Construction} , editor = {Snepscheut, J.L.A. van} , pages = {335-347} , number = {375} , series = {LNCS} , year = {1989 }} @inproceedings{fegaras96cata , eprint = {papers/fegaras96cata.pdf} , title = {{Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)}} , author = {Fegaras, Leonidas and Sheard, Tim} , booktitle = {Principles of Programming Languages} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/237721.237792|}} @inproceedings{remy05sysf-tycont , eprint = {papers/remy05sysf-tycont.pdf} , title = {{Simple, partial type-inference for System F based on type-containment}} , author = {R\'emy, Didier} , booktitle = {ICFP} , year = {2005} , howpublished = {\verb|http://pauillac.inria.fr/~remy/|}} @inproceedings{pottier05stratif-gadt , eprint = {papers/pottier05stratif-gadt.pdf} , title = {{Stratified type inference for generalized algebraic data types (submitted)}} , author = {Pottier, Francois and R\'egis-Gianas, Yann} , booktitle = {Principles of Programming Languages} , pages = {232-244} , year = {2005} , howpublished = {\verb|http://doi.acm.org/10.1145/1111037.1111058|}} @inproceedings{ekman04rewr-ref-ag , eprint = {papers/ekman04rewr-ref-ag.pdf} , title = {{Rewritable Reference Attributed Grammars}} , author = {Ekman, Torbj\"orn and Hedin, G\"odel} , booktitle = {ECOOP} , pages = {147-171} , number = {3086} , series = {LNCS} , year = {2004} , howpublished = {\verb|http://springerlink.metapress.com/link.asp?id=jel9au2pa1f766u7|}} @misc{ekman04lic-rewr-ref-ag , eprint = {papers/ekman04lic-rewr-ref-ag.pdf} , title = {{Rewritable Reference Attributed Grammars. Design, implementation and applications}} , author = {Ekman, Torbj\"orn} , year = {2004} , howpublished = {\verb|http://prog.vub.ac.be/~thomas/ERLS/Ekman.pdf|}} @misc{parigot98ag-www-home , eprint = {papers/parigot98ag-www-home.pdf} , title = {{Attribute Grammars Home Page}} , author = {Parigot, Didier} , year = {1998} , howpublished = {\verb|http://www-rocq.inria.fr/oscar/www/fnc2/attribute-grammar-people.html|}} @misc{parigot98ag-fnc2 , eprint = {papers/parigot98ag-fnc2.pdf} , title = {{The Fnc-2 Attribute Grammar System}} , author = {Parigot, Didier} , year = {1998} , howpublished = {\verb|http://www-rocq.inria.fr/oscar/www/fnc2/littlefnc2.html|}} @misc{visser05stratego-www , eprint = {papers/visser05stratego-www.pdf} , title = {{Stratego Home Page}} , author = {Visser, Eelco} , year = {2005} , howpublished = {\verb|http://www.program-transformation.org/Stratego/WebHome|}} @inproceedings{visser01stratego-system05 , eprint = {papers/visser01stratego-system05.pdf} , title = {{Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5}} , author = {Visser, Eelco} , booktitle = {Rewriting Techniques and Applications (RTA'01)} , editor = {Middeldorp, A.} , pages = {357--361} , number = {2051} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2001} , howpublished = {\verb|http://www.program-transformation.org/Stratego/StrategoALanguageForProgramTransformationBasedOnRewritingStrategies|}} @techreport{swierstra91hag , eprint = {papers/swierstra91hag.pdf} , title = {{Higher order attribute grammars, Lecture notes of the International Summer School on Attribute Grammars, applications and systems}} , author = {Swierstra, S. Doaitse and Vogt, H.H.} , institution = {Utrecht University} , school = {Utrecht University} , number = {RUU-CS-91-14} , year = {1991 } , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/RUU-CS-91-14.html|}} @misc{www05eli , eprint = {papers/www05eli.pdf} , title = {{Eli: An Integrated Toolset for Compiler Construction}} , year = {2005} , howpublished = {\verb|http://eli-project.sourceforge.net/|}} @article{gray92eli , eprint = {papers/gray92eli.pdf} , title = {{Eli: a complete, flexible compiler construction system}} , author = {Gray, Rober W. and Levi, Simon P. and Heuring, Vincent P. and Sloane, Anthony M. and Waite, William M.} , journal = {Communications of the ACM} , pages = {121-130} , number = {2} , volume = {35} , year = {1992 } , howpublished = {\verb|http://doi.acm.org/10.1145/129630.129637|}} @inbook{pottier05ml-essence , eprint = {papers/pottier05ml-essence.pdf} , title = {{The essence of ML type inference}} , author = {Pottier, Francois and R\'emy, Didier} , booktitle = {Advanced Topics in Types and Programming Languages} , chapter = {10} , pages = {389--489} , publisher = {MIT Press} , year = {2005}} @phdthesis{heeren05phd-errormsg , eprint = {papers/heeren05phd-errormsg.pdf} , title = {{Top Quality Type Error Messages}} , author = {Heeren, Bastiaan} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {2005}} @book{milner97sml-def-revise , eprint = {papers/milner97sml-def-revise.pdf} , title = {{The Definition of Standard ML (Revised)}} , author = {Milner, Robin and Tofte, Mads and Harper, Robert and MacQueen, David} , publisher = {MIT Press} , year = {1997}} @misc{peytonjones04wobbly-gadt , eprint = {papers/peytonjones04wobbly-gadt.pdf} , title = {{Wobbly types: type inference for generalised algebraic data types}} , author = {Peyton Jones, Simon and Washburn, Geoffrey and Weirich, Stephanie} , year = {2004}} @inproceedings{pfenning91anti-unif , eprint = {papers/pfenning91anti-unif.pdf} , title = {{Unification and Anti-Unification in the Calculus of Constructions}} , author = {Pfenning, Frank} , booktitle = {Sixth Annual IEEE Symposium on Logic in Computer Science} , pages = {74--85} , year = {1991 } , howpublished = {\verb|http://citeseer.ist.psu.edu/pfenning91unification.html|}} @misc{levin99tinkertype , eprint = {papers/levin99tinkertype.pdf} , title = {{TinkerType: A Language for Playing with Formal Systems}} , author = {Levin, Michael Y. and Pierce, Benjamin C.} , year = {1999} , howpublished = {\verb|http://www.cis.upenn.edu/~milevin/tt.html|}} @misc{www05twelf , eprint = {papers/www05twelf.pdf} , title = {{The Twelf Project}} , year = {2007} , howpublished = {\verb|http://twelf.plparty.org/wiki|}} @misc{harper05lect-mechlangdef , eprint = {papers/harper05lect-mechlangdef.pdf} , title = {{Mechanizing Language Definitions (invited lecture at ICFP05)}} , author = {Harper, Robert} , year = {2005} , howpublished = {\verb|http://www.cs.cmu.edu/~rwh/|}} @misc{www99croap , eprint = {papers/www99croap.pdf} , title = {{Projet CROAP. Design and Implementaiton of Programming Tools}} , year = {1999} , howpublished = {\verb|http://www-sop.inria.fr/croap/|}} @misc{www05asf-sdf , eprint = {papers/www05asf-sdf.pdf} , title = {{ASF+SDF}} , author = {{The Meta-Environment Team}} , year = {2005} , howpublished = {\verb|http://www.asfsdf.org/|}} @misc{www05synth-gen , eprint = {papers/www05synth-gen.pdf} , title = {{Synthesizer Generator}} , author = {GrammaTech} , year = {2005} , howpublished = {\verb|http://www.grammatech.com/products/sg/overview.html|}} @misc{sulzmann98hm-constr , eprint = {papers/sulzmann98hm-constr.pdf} , title = {{Polymorphism in Hindley/Milner Style Type Systems with Constraints}} , author = {Sulzmann, Martin} , year = {1998} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @phdthesis{sulzmann00phd-cnstr , eprint = {papers/sulzmann00phd-cnstr.pdf} , title = {{A General Framework for Hindley/Milner Type Systems with Constraints}} , author = {Sulzmann, Martin} , school = {Yale University, Department of Computer Science} , journal = {Journal of Functional Programming} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/sulzmann00general.html|}} @article{fruhwirth98theory-chr , eprint = {papers/fruhwirth98theory-chr.pdf} , title = {{Theory and Practice of Constraint Handling Rules}} , author = {Fr{\"u}hwirth, Thom} , journal = {Journal of Logic Programming, Special Issue on Constraint Logic Programming} , month = {October} , pages = {95-138} , number = {1-3} , volume = {37} , year = {1998} , howpublished = {\verb|http://www.informatik.uni-muenchen.de/~fruehwir/drafts/jlp-chr1.ps.Z|}} @phdthesis{abdennadher01phd-chr , eprint = {papers/abdennadher01phd-chr.pdf} , title = {{Rule-Based Constraint Programming: Theory and Practice. Habilitation}} , author = {Abdennadher, Slim} , school = {Ludwig-Maximilians-Universit\"at M\"unchen, Institut f\"ur Informatik} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/abdennadher01rulebased.html|}} @misc{stuckey04chameleon-sys , eprint = {papers/stuckey04chameleon-sys.pdf} , title = {{The Chameleon System}} , author = {Stuckey, Peter J. and Sulzmann, Martin and Wazny, Jeremy} , howpublished = {\verb|http://citeseer.ist.psu.edu/683340.html|}} @misc{simonetXXhmx-exist-forall , eprint = {papers/simonetXXhmx-exist-forall.pdf} , title = {{An extension of HM(X) with first class existential and universal data-types}} , author = {Simonet, Vincent} , howpublished = {\verb|http://citeseer.ist.psu.edu/573334.html|}} @misc{rossberg02tyclass-cham-chr , eprint = {papers/rossberg02tyclass-cham-chr.pdf} , title = {{Beyond Type Classes}} , author = {Rossbert, Andreas and Sulzmann, Martin} , year = {2002} , howpublished = {\verb|http://www.ps.uni-sb.de/Papers/abstracts/btclasses.ps|}} @techreport{cardelli97impl-sysf , eprint = {papers/cardelli97impl-sysf.pdf} , title = {{An Implementation of F\(_{<:}\)}} , author = {Cardelli, Luca} , institution = {Digital Systems Research Center} , school = {Digital Systems Research Center} , number = {97} , year = {1993} , howpublished = {\verb|http://gatekeeper.research.compaq.com/pub/DEC/SRC/research-reports/abstracts/src-rr-097.html|}} @article{duggan02open-closed-gener , eprint = {papers/duggan02open-closed-gener.pdf} , title = {{Open and closed scopes for constrained genericity}} , author = {Duggan, D. and Ophel, J.} , journal = {Theoretical Computer Science} , pages = {215--258} , volume = {275} , year = {2002} , howpublished = {\verb|http://guinness.cs.stevens-tech.edu/~dduggan/Public/Papers/index.html|}} @inproceedings{duck04tyinf-funct-dep , eprint = {papers/duck04tyinf-funct-dep.pdf} , title = {{Sound and Decidable Type Inference for Functional Dependencies}} , author = {Duck, Gregory J. and Peyton Jones, Simon and Stuckey, Peter J. and Sulzmann, Martin} , booktitle = {European Symposium On Programming} , year = {2004} , howpublished = {\verb|http://research.microsoft.com/Users/simonpj/Papers/fd-chr/|}} @misc{rossberg05www-alice , eprint = {papers/rossberg05www-alice.pdf} , title = {{The Alice Project}} , author = {Rossberg, Andreas} , year = {2005} , howpublished = {\verb|http://www.ps.uni-sb.de/alice/|}} @misc{heeren05www-helium , eprint = {papers/heeren05www-helium.pdf} , title = {{Helium, for learning Haskell}} , author = {Heeren, Bastiaan and IJzendoorn, Arjan van and Hage, Jurriaan} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/helium/|}} @article{paakki95ag-paradigms , eprint = {papers/paakki95ag-paradigms.pdf} , title = {{Attribute grammar paradigmsŃa high-level methodology in language implementation}} , author = {Paakki, Jukka} , journal = {ACM Computing Surveys} , month = {June} , pages = {196-255} , number = {2} , volume = {27} , year = {1995} , howpublished = {\verb|http://doi.acm.org/10.1145/210376.197409|}} @article{mernik00mult-ag , eprint = {papers/mernik00mult-ag.pdf} , title = {{Multiple Attribute Grammar Inheritance}} , author = {Mernik, Marjan and Lenic, Mitja and Avidcausevic, Enis and Zumer, Viljem} , journal = {Informatica} , pages = {319-328} , number = {3} , volume = {24} , year = {2000} , howpublished = {\verb|http://marcel.uni-mb.si/lisa/publications.html|}} @misc{dijkstra05ehc-plans , eprint = {papers/dijkstra05ehc-plans.pdf} , title = {{EHC Project Plans}} , author = {Dijkstra, Atze} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/ProjectPlans|}} @inproceedings{dijkstra06ruler , eprint = {papers/dijkstra06ruler.pdf} , title = {{Ruler: Programming Type Rules}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Functional and Logic Programming: 8th International Symposium, FLOPS 2006, Fuji-Susono, Japan, April 24-26, 2006} , institution = {Utrecht University} , school = {Utrecht University} , pages = {30-46} , number = {3945} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2006}} @inproceedings{vanwyk02forwarding-ag , eprint = {papers/vanwyk02forwarding-ag.pdf} , title = {{Forwarding in Attribute Grammars for Modular Language Design}} , author = {Van Wyk, Eric and de Moor, Oege and Backhouse, Kevin and Kwiatkowski, Paul} , booktitle = {Computational Complexity} , pages = {128-142} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/vanwyk02forwarding.html|}} @article{palsberg96cnstr-ty , eprint = {papers/palsberg96cnstr-ty.pdf} , title = {{Constrained types and their expressiveness}} , author = {Palsberg, Jens and Smith, Scott} , journal = {ACM TOPLAS} , pages = {519--527} , number = {5} , volume = {18} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/232706.232715|}} @inproceedings{trifonov96sub-cnstr-ty , eprint = {papers/trifonov96sub-cnstr-ty.pdf} , title = {{Subtyping Constrained Types}} , author = {Trifonov, Valery and Smith, Scott} , booktitle = {Proceedings of the Third International Static Analysis Symposium} , pages = {349--365} , publisher = {Springer-Verlag} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/trifonov96subtyping.html|}} @inproceedings{eifrig95rec-cnstr-oo , eprint = {papers/eifrig95rec-cnstr-oo.pdf} , title = {{Type Inference for Recursively Constrained Types and its Application to OOP}} , author = {Eifrig, J. and Smith, S. and Trifonov, V.} , booktitle = {Mathematical Foundations of Programming Semantics} , number = {1} , publisher = {Elsevier} , series = {Electronic Notes in Theoretical Computer Science} , year = {1995} , howpublished = {\verb|http://www.cs.jhu.edu/~scott/pll/constraints.html|}} @inproceedings{eifrig95ty-infer-oo , eprint = {papers/eifrig95ty-infer-oo.pdf} , title = {{Sound Polymorphic Type Inference for Objects}} , author = {Eifrig, Jonathan and Smith, Scott and Trifonov, Valery} , booktitle = {OOPSLA} , pages = {169-184} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/eifrig95sound.html|}} @inproceedings{aiken94soft-cond-ty , eprint = {papers/aiken94soft-cond-ty.pdf} , title = {{Soft Typing with Conditional Types}} , author = {Aiken, Alexander and Wimmers, Edward L. and Lakshman, T.K.} , booktitle = {Principles of Programming Languages} , pages = {163--173} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/aiken94soft.html|}} @inproceedings{foster99ty-qual , eprint = {papers/foster99ty-qual.pdf} , title = {{A Theory of Type Qualifiers}} , author = {Foster, Jeffrey S. and F\"ahndrich, Manuel and Aiken, Alexander} , booktitle = {Programming Language Design and Implementation} , pages = {192--203} , year = {1999} , howpublished = {\verb|http://theory.stanford.edu/~aiken/publications/papers/pldi99.ps|}} @phdthesis{foster02ty-qual-phd , eprint = {papers/foster02ty-qual-phd.pdf} , title = {{Type Qualifiers: Lightweight Specifications to Improve Software Quality}} , author = {Foster, Jeffrey S.} , booktitle = {Programming Language Design and Implementation} , school = {University of California} , pages = {192--203} , year = {2002} , howpublished = {\verb|http://www.cs.umd.edu/~jfoster/papers/pldi02.pdf|}} @inproceedings{carlier04ty-infer-intersect , eprint = {papers/carlier04ty-infer-intersect.pdf} , title = {{Type inference with expansion variables and intersection types in System E and an exact correspondence with beta-reduction}} , author = {Carlier, S\'ebastien and Wells, J.B.} , booktitle = {Principles and Practice Declarative Programming} , year = {2004} , howpublished = {\verb|http://types.bu.edu/reports/Car+Wel:PPDP-2004.html|}} @inproceedings{vytiniotis06boxy-impred , eprint = {papers/vytiniotis06boxy-impred.pdf} , title = {{Boxy Types: Inference for Higher-Rank Types and Impredicativity}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , booktitle = {ICFP} , pages = {251-262} , year = {2006} , howpublished = {\verb|http://research.microsoft.com/users/simonpj/|}} @techreport{dijkstra06exploit-tyann-tr , eprint = {papers/dijkstra06exploit-tyann-tr.pdf} , title = {{Exploiting Type Annotations}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {UU-CS-2006-051} , year = {2006} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2006-051.html|}} @article{paige82finite-diff , eprint = {papers/paige82finite-diff.pdf} , title = {{Finite Differencing of Computable Expressions}} , author = {Paige, Robert and Koenig, Shaye} , journal = {ACM TOPLAS} , pages = {402 - 454} , number = {3} , volume = {4} , year = {1982} , howpublished = {\verb|http://doi.acm.org/10.1145/357172.357177|}} @article{boehm88gc-c , eprint = {papers/boehm88gc-c.pdf} , title = {{Garbage Collection in an Uncooperative Environment}} , author = {Boehm, H. and Weiser, M.} , journal = {Software Practice and Experience} , month = {Sep} , pages = {807-820} , year = {1988} , howpublished = {\verb|http://www.hpl.hp.com/personal/Hans_Boehm/spe_gc_paper/|}} @misc{boehm06gc-www , eprint = {papers/boehm06gc-www.pdf} , title = {{A garbage collector for C and C++}} , author = {Boehm, H.} , year = {2006} , howpublished = {\verb|http://www.hpl.hp.com/personal/Hans_Boehm/gc/|}} @inproceedings{peytonjones99impr-exc , eprint = {papers/peytonjones99impr-exc.pdf} , title = {{A Semantics for Imprecise Exceptions}} , author = {Peyton Jones, Simon and Reid, Alasteir and Hoare, Tony and Marlow, Simon and Henderson, Fergus} , booktitle = {Programming Language Design and Implementation} , pages = {25-36} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones99semantics.html|}} @inproceedings{peytonjones02awkward-squad , eprint = {papers/peytonjones02awkward-squad.pdf} , title = {{Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell }} , author = {Peyton Jones, Simon} , booktitle = {Engineering theories of software construction, Marktoberdorf Summer School} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones02tackling.html|}} @inproceedings{peytonjones99weakptr-stablenm , eprint = {papers/peytonjones99weakptr-stablenm.pdf} , title = {{Stretching the storage manager: weak pointers and stable names in Haskell}} , author = {Peyton Jones, Simon and Marlow, Simon and Elliott, Conal} , booktitle = {Implementation of Functional Languages} , pages = {37-58} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones99stretching.html|}} @inbook{baader01unif-th , eprint = {papers/baader01unif-th.pdf} , title = {{Unification Theory}} , author = {Baader, Franz and Snyder, Wayne} , booktitle = {Handbook of Automated Reasoning} , chapter = {8} , pages = {447-531} , publisher = {Elsevier Science Publishers} , year = {2001}} @mastersthesis{geest07cnstr-tycls-ext , eprint = {papers/geest07cnstr-tycls-ext.pdf} , title = {{Constraints for Type Class Extensions}} , author = {Geest, Gerrit van den} , school = {Universiteit Utrecht, Department of Information and Computing Sciences} , number = {INF/SCR-06-36} , year = {2007} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/GvdGeest|}} @article{sulzmann07fundep-chr , eprint = {papers/sulzmann07fundep-chr.pdf} , title = {{Understanding Functional Dependencies via Constraint Handling Rules}} , author = {Sulzmann, Martin and Duck, Gregory J. and Peyton-Jones, Simon and Stuckey, Peter J.} , journal = {Journal of Functional Programming} , month = {Jan} , pages = {83 - 129} , number = {1} , volume = {17} , year = {2007} , howpublished = {\verb|http://dx.doi.org/10.1017/S0956796806006137|}} @article{jaffar94clp-survey , eprint = {papers/jaffar94clp-survey.pdf} , title = {{Constraint Logic Programming: A Survey}} , author = {Jaffar, Joxan and Maher, Michael J.} , journal = {Journal of Logic Programming} , pages = {503 - 581} , volume = {19/20} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/334926.html|}} @inproceedings{chakravarty05assoc-ty-syn , eprint = {papers/chakravarty05assoc-ty-syn.pdf} , title = {{Associated Type Synonyms}} , author = {Chakravarty, Manuel M.T. and Keller, Gabriele and Peyton Jones, Simon} , booktitle = {International Conference on Functional Programming} , pages = {241 - 253} , year = {2005} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/papers/CKP05.html|}} @inproceedings{chakravarty04assoc-tp-class , eprint = {papers/chakravarty04assoc-tp-class.pdf} , title = {{Associated Types with Class}} , author = {Chakravarty, Manuel M.T. and Keller, Gabriele and Peyton Jones, Simon and Marlow, Simon} , booktitle = {Principles of Programming Languages} , pages = {1 - 13} , year = {2005} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/papers/CKP05.html|}} @inproceedings{sulzmann06tycls-inf-multi-par , eprint = {papers/sulzmann06tycls-inf-multi-par.pdf} , title = {{Principal Type Inference for GHC-Style Multi-Parameter Type Classes}} , author = {Sulzmann, Martin and Schrijvers, Tom and Stuckey, Peter J.} , booktitle = {ASIAN Symposium on Programming Languages and Systems} , year = {2006} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @misc{sulzmann05assoc-fundep , eprint = {papers/sulzmann05assoc-fundep.pdf} , title = {{Associated Functional Dependencies}} , author = {Sulzmann, Martin and Lam, Edmund Soon Lee} , year = {2005} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann|}} @misc{stuckey04exist-tycls , eprint = {papers/stuckey04exist-tycls.pdf} , title = {{Existentially Quantified Type Classes}} , author = {Stuckey, Peter J. and Sulzmann, Martin and Wazny, Jeremy} , year = {2004} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @article{erwig01inductive-graph , eprint = {papers/erwig01inductive-graph.pdf} , title = {{Inductive Graphs and Functional Graph Algorithms}} , author = {Erwig, Martin} , journal = {Journal of Functional Programming} , pages = {467 - 492} , number = {5} , volume = {11} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/erwig01inductive.html|}} @book{fruhwirth03essence-constrprog , eprint = {papers/fruhwirth03essence-constrprog.pdf} , title = {{Essentials of Constraint Programming}} , author = {Fr{\"u}hwirth, Thom and Abdennadher, Slim} , publisher = {Springer} , year = {2003}} @misc{lattner07www-llvm , eprint = {papers/lattner07www-llvm.pdf} , title = {{The LLVM Compiler Infrastructure Project}} , author = {Lattner, Chris} , year = {2007} , howpublished = {\verb|http://llvm.org/|}} @inproceedings{dreyer07mod-tyclass , eprint = {papers/dreyer07mod-tyclass.pdf} , title = {{Modular Type Classes}} , author = {Dreyer, Derek and Harper, Robert and Chakravarty, Manuel M.T. and Keller, Gabriele} , booktitle = {Principles of Programming Languages} , pages = {63 - 70} , year = {2007}} @inproceedings{kennedy76ag-gen , eprint = {papers/kennedy76ag-gen.pdf} , title = {{Automatic generation of efficient evaluators for attribute grammars}} , author = {Kennedy, Ken and Warren, Scott K.} , booktitle = {Principles of Programming Languages} , pages = {32-49} , year = {1976 } , howpublished = {\verb|http://doi.acm.org/10.1145/800168.811538|}} @misc{www07ghc-dev-wiki , eprint = {papers/www07ghc-dev-wiki.pdf} , title = {{GHC Developer Wiki}} , author = {{GHC Team}} , year = {2007} , howpublished = {\verb|http://hackage.haskell.org/trac/ghc|}} @inproceedings{dijkstra07ehcstruct , eprint = {papers/dijkstra07ehcstruct.pdf} , title = {{The Structure of the Essential Haskell Compiler, or Coping with Compiler Complexity}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Haskell Workshop} , year = {2007} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Atze/WebHome/20070831-ifl07-ehcstruct.pdf|}} @article{kastens80order-attrgam , eprint = {papers/kastens80order-attrgam.pdf} , title = {{Ordered Attribute Grammars}} , author = {Kastens, Uwe} , journal = {Acta Informatica} , pages = {229-256} , volume = {13} , year = {1980}} @article{knuth68ag-first-intro , eprint = {papers/knuth68ag-first-intro.pdf} , title = {{Semantics of Context-Free Languages}} , author = {Knuth, Donald E.} , journal = {Theory of Computing Systems} , month = {June} , pages = {127-145} , number = {2} , volume = {2} , year = {1968 }} @article{reps84synth-gen , eprint = {papers/reps84synth-gen.pdf} , title = {{The Synthesizer Generator}} , author = {Reps, Thomas and Teitelbaum, Tim} , journal = {ACM SIGSOFT Software Engineering Notes} , pages = {42-48} , number = {3} , volume = {9} , year = {1984} , howpublished = {\verb|http://doi.acm.org/10.1145/390010.808247|}} @book{reps84gen-langbased-env , eprint = {papers/reps84gen-langbased-env.pdf} , title = {{Generating language-based environments}} , author = {Reps, Thomas} , publisher = {Massachusetts Institute of Technology} , year = {1984 }} @inproceedings{demers81incr-eval-ag , eprint = {papers/demers81incr-eval-ag.pdf} , title = {{Incremental evaluation for attribute grammars with application to syntax-directed editors}} , author = {Demers, Alan and Reps, Thomas and Teitelbaum, Tim} , booktitle = {Principles of Programming Languages} , pages = {105-116} , year = {1981} , howpublished = {\verb|http://doi.acm.org/10.1145/567532.567544|}} @techreport{teitelbaum80cornell-synth-gen , eprint = {papers/teitelbaum80cornell-synth-gen.pdf} , title = {{The Cornell Program Synthesizer: a syntax-directed programming environment}} , author = {Teitelbaum, Tim and Reps, Thomas} , institution = {Dept. Computer Science, Cornell University} , school = {Dept. Computer Science, Cornell University} , month = {May} , number = {TR80-421} , publisher = {Dept. Computer Science, Cornell University} , year = {1980}} @inproceedings{schrage05dazzle , eprint = {papers/schrage05dazzle.pdf} , title = {{Haskell ready to dazzle the real world}} , author = {Schrage, Martijn M. and IJzendoorn, Arjan van and Gaag, Linda C. van der} , booktitle = {Haskell Workshop} , pages = {17-26} , year = {2005} , howpublished = {\verb|http://doi.acm.org/10.1145/1088348.1088351|}} @misc{www07energy-doubled , eprint = {papers/www07energy-doubled.pdf} , title = {{Data centre energy consumption has doubled since 2000}} , author = {IT news} , year = {2007} , howpublished = {\verb|http://www.itnews.com.au|}} @misc{loper07datacenter-energy , eprint = {papers/loper07datacenter-energy.pdf} , title = {{Energy Efficiency in Data Centers: A New Policy Frontier}} , author = {Loper, Joe and Parr, Sarah} , year = {2007} , howpublished = {\verb|http://www.ase.org/content/news/detail/3591|}} @inproceedings{hoover86incr-ag-tuple , eprint = {papers/hoover86incr-ag-tuple.pdf} , title = {{Efficient incremental evaluation of aggregate values in attribute grammars}} , author = {Hoover, Roger and Teitelbaum, Tim} , booktitle = {Compiler Construction} , pages = {39-50} , year = {1986 } , howpublished = {\verb|http://doi.acm.org/10.1145/12276.13315|}} @phdthesis{maddox97incr-static-anal , eprint = {papers/maddox97incr-static-anal.pdf} , title = {{Incremental Static Semantic Analysis}} , author = {Maddox III, William Harry} , institution = {University of California, Berkeley} , school = {University of California, Berkeley} , number = {UCB/CSD--97--948} , year = {1997} , howpublished = {\verb|http://citeseer.comp.nus.edu.sg/maddox97incremental.html|}} @phdthesis{hedin92incr-sem-anal , eprint = {papers/hedin92incr-sem-anal.pdf} , title = {{Incremental Semantic Analysis}} , author = {Hedin, Gorel} , institution = {Lund Institute of Technology, Department of Computer Science, SDE Research} , school = {Lund Institute of Technology, Department of Computer Science, SDE Research} , year = {1992}} @techreport{hedin94door-ag-overv , eprint = {papers/hedin94door-ag-overv.pdf} , title = {{An Overview of Door Attribute Grammars}} , author = {Hedin, Gorel} , institution = {Department of Computer Science, Lund University} , school = {Department of Computer Science, Lund University} , number = {LU-CS-TR:94-123} , year = {1994} , howpublished = {\verb|http://www.cs.lth.se/Research/ProgEnv/OOAG.html|}} @techreport{barendregt94intro-lambda-calc , eprint = {papers/barendregt94intro-lambda-calc.pdf} , title = {{Introduction to Lambda Calculus}} , author = {Barendregt, H. and Barendsen, E.} , institution = {Department of Computer Science, University of Nijmegen} , school = {Department of Computer Science, University of Nijmegen} , year = {1994} , howpublished = {\verb|http://citeseer.comp.nus.edu.sg/barendregt94introduction.html|}} @book{barendregt84lambda-calc , eprint = {papers/barendregt84lambda-calc.pdf} , title = {{The lambda calculus, its syntax and semantics}} , author = {Barendregt, Henk} , publisher = {North-Holland} , year = {1984}} @misc{parigot99biblio-ag , eprint = {papers/parigot99biblio-ag.pdf} , title = {{Bibliography on Attribute Grammars}} , author = {Parigot, Didier} , year = {1999} , howpublished = {\verb|http://liinwww.ira.uka.de/bibliography/Compiler/AG.html|}} @misc{www93centaur , eprint = {papers/www93centaur.pdf} , title = {{CENTAUR}} , author = {Bertot, Janet and Thery, Laurent} , year = {1993} , howpublished = {\verb|http://www-sop.inria.fr/croap/centaur/centaur.html|}} @article{frost96memo-fun , eprint = {papers/frost96memo-fun.pdf} , title = {{Memoizing purely functional top-down backtracking language processors}} , author = {Frost, Richard A. and Szydlowski, Barbara} , journal = {Science of Computer Programming} , pages = {2630288} , volume = {27} , year = {1996} , howpublished = {\verb|http://dx.doi.org/10.1016/0167-6423(96)00014-7|}} @inproceedings{saraiva00func-incr-ag-eval , eprint = {papers/saraiva00func-incr-ag-eval.pdf} , title = {{Functional, incremental attribute rvaluation}} , author = {Saraiva, Joao and Swierstra, Doaitse S. and Kuiper, Matthijs} , booktitle = {Compiler Construction} , editor = {David Watt} , pages = {279--294} , number = {1781} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2000}} @techreport{pugh88incr-func , eprint = {papers/pugh88incr-func.pdf} , title = {{Incremental Computation and the Incremental Evaluation of Functional Programs}} , author = {Pugh, William W.} , institution = {Cornell University} , school = {Cornell University} , number = {TR88-936} , year = {1988} , howpublished = {\verb|http://hdl.handle.net/1813/6776|}} @misc{www05uuag , eprint = {papers/www05uuag.pdf} , title = {{Attribute Grammar System}} , author = {Swierstra, Doaitse S. and Baars, Arthur} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/HUT/AttributeGrammarSystem|}} @misc{demoor02incr-anal-langfact , eprint = {papers/demoor02incr-anal-langfact.pdf} , title = {{Incremental Program Analysis via Language Factors}} , author = {de Moor, Oege and Drape, Stephen and Lacey, David and Sittampalam, Ganesh} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/demoor02incremental.html|}} @book{conway71reg-alg-fin-mach , eprint = {papers/conway71reg-alg-fin-mach.pdf} , title = {{Regular Algebra and Finite Machines}} , author = {Conway, John Horton} , publisher = {Chapman and Hall} , year = {1971}} @inproceedings{sittampalam04incr-trafo , eprint = {papers/sittampalam04incr-trafo.pdf} , title = {{Incremental Execution of Transformation Specifications}} , author = {Sittampalam, Ganesh and de Moor, Oege and Larsen, Ken Friis} , booktitle = {Principles of Programming Languages} , pages = {26-38} , year = {2004} , howpublished = {\verb|http://citeseer.ist.psu.edu/sittampalam04incremental.html|}} @article{ryder88incr-dataflow-anal , eprint = {papers/ryder88incr-dataflow-anal.pdf} , title = {{Incremental Data-Flow Analysis Algorithms}} , author = {Ryder, Barbara G. and Paull, Marvin C.} , journal = {ACM TOPLAS} , pages = {1-50} , number = {1} , volume = {10} , year = {1988 }} @inproceedings{liu05incr-object-abstr , eprint = {papers/liu05incr-object-abstr.pdf} , title = {{Incrementalization Across Object Abstraction}} , author = {Liu, Yanhong A. and Stoller, Scott D. and Gorbovitski, Michael and Rothamel, Tom and Liu, Yanni Ellen} , booktitle = {OOPSLA} , pages = {473-486} , year = {2005}} @inproceedings{yellin88inc-incr-comp-lang , eprint = {papers/yellin88inc-incr-comp-lang.pdf} , title = {{INC: a language for incremental computations}} , author = {Yellin, D. and Strom, R.} , booktitle = {Programming Language Design and Implementation} , pages = {115-124} , year = {1988 } , howpublished = {\verb|http://doi.acm.org/10.1145/53990.54002|}} @article{paige86prog-invariants , eprint = {papers/paige86prog-invariants.pdf} , title = {{Programming with Invariants}} , author = {Paige, Robert} , journal = {IEEE Software} , pages = {56-69} , number = {1} , volume = {3} , year = {1986}} @inproceedings{gupta93views-incr , eprint = {papers/gupta93views-incr.pdf} , title = {{Maintaining views incrementally}} , author = {Gupta, Ashish and Mumick, Inderpal Singh and Subrahmanian, V.S.} , booktitle = {ACM SIGMOD International conference on Management of data} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/170035.170066|}} @article{katz78prog-opt-invar , eprint = {papers/katz78prog-opt-invar.pdf} , title = {{Program optimization using invariants}} , author = {Katz, S.} , journal = {IEEE Transaction on Software Engineering} , pages = {378-389} , number = {5} , volume = {4} , year = {1978}} @inproceedings{nakamura01incr-obj-query , eprint = {papers/nakamura01incr-obj-query.pdf} , title = {{Incremental computation of complex object queries}} , author = {Nakamura, Hiroaki} , booktitle = {OOPSLA} , pages = {156-165} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/504282.504294|}} @inproceedings{ramalingam93biblio-incr , eprint = {papers/ramalingam93biblio-incr.pdf} , title = {{A categorized bibliography on incremental computation}} , author = {Ramalingam, G. and Reps, Thomas} , booktitle = {Principles of Programming Languages} , pages = {502-510} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/158511.158710|}} @inproceedings{hage07gener-use-anal , eprint = {papers/hage07gener-use-anal.pdf} , title = {{A Generic Usage Analysis with Subeffect Qualifiers}} , author = {Hage, Jurriaan and Holdermans, Stefan and Middelkoop, Arie} , booktitle = {International Conference on Functional Programming} , year = {2007}} @inproceedings{kuiper98lrc , eprint = {papers/kuiper98lrc.pdf} , title = {{Lrc - A Generator for Incremental Language-Oriented Tools}} , author = {Kuiper, Matthijs and Saraiva, Joao} , booktitle = {Compiler Construction} , pages = {298-301} , year = {1998}} @inproceedings{saraiva97eff-fun-cache-mgt , eprint = {papers/saraiva97eff-fun-cache-mgt.pdf} , title = {{Effective Function Cache Management for Incremental Attribute Evaluation}} , author = {Saraiva, Joao and Kuiper, Matthijs and Swierstra, S. Doaitse} , booktitle = {International Workshop on Implementation of Functional Languages} , pages = {517-528} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/357470.html|}} @inproceedings{nissen07funsetl , eprint = {papers/nissen07funsetl.pdf} , title = {{FunSETL - Functional Reporting for ERP Systems}} , author = {Nissen, Michael and Larsen, Ken Friis} , booktitle = {Implementation of Functional Languages} , year = {2007}} @inproceedings{li07lw-conc , eprint = {papers/li07lw-conc.pdf} , title = {{Lightweight Concurrency Primitives for GHC}} , author = {Li, Peng and Marlow, Simon and Peyton Jones, Simon and Tolmach, Andrew} , booktitle = {Haskell Workshop} , pages = {107-118} , year = {2007}} @article{barendregt91gen-type-sys , eprint = {papers/barendregt91gen-type-sys.pdf} , title = {{Introduction to generalized type systems}} , author = {Barendregt, H.P.} , institution = {Radboud University} , school = {Radboud University} , journal = {Journal of Functional Programming} , month = {April} , pages = {125-154} , number = {2} , volume = {1} , year = {1991 } , howpublished = {\verb|http://hdl.handle.net/2066/17240|}} @book{schroer97gentle-comp-sys , eprint = {papers/schroer97gentle-comp-sys.pdf} , title = {{The GENTLE Compiler Construction System}} , author = {Schršer, Friedrich Wilhelm} , publisher = {R. Oldenbourg Verlag} , year = {1997}} @misc{www07gentle , eprint = {papers/www07gentle.pdf} , title = {{The GENTLE Compiler Construction System}} , year = {2007} , howpublished = {\verb|http://gentle.compilertools.net/|}} @misc{www07cocktail , eprint = {papers/www07cocktail.pdf} , title = {{Compiler Compiler Laboratory}} , author = {Grosch, Josef and Vollmer, Jurgen} , year = {2007} , howpublished = {\verb|http://www.cocolab.com/|}} @misc{www06catalog-comp-constr , eprint = {papers/www06catalog-comp-constr.pdf} , title = {{The Catalog of Compiler Construction Tools}} , year = {2006} , howpublished = {\verb|http://catalog.compilertools.net/|}} @inproceedings{grosch91cocolab-toolbox , eprint = {papers/grosch91cocolab-toolbox.pdf} , title = {{A Tool Box for Compiler Construction}} , author = {Grosch, Josef and Emmelmann, H.} , booktitle = {Proceedings of the third international workshop on Compiler compilers} , year = {1991 } , howpublished = {\verb|http://www.cocolab.com|}} @inbook{grosch92trafo-ag-patmach , eprint = {papers/grosch92trafo-ag-patmach.pdf} , title = {{Transformation of Attributed Trees Using Pattern Matching}} , author = {Grosch, Josef} , booktitle = {Compiler Construction} , number = {641} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1992 }} @inproceedings{augusteijn90elegant , eprint = {papers/augusteijn90elegant.pdf} , title = {{The Elegant compiler generator system}} , author = {Augusteijn, Lex} , booktitle = {Proceedings of the international conference on Attribute grammars and their applications} , pages = {238-254} , year = {1990 }} @misc{www08jastadd , eprint = {papers/www08jastadd.pdf} , title = {{JastAdd}} , year = {2008} , howpublished = {\verb|http://jastadd.org/|}} @article{ekman07jastadd-system , eprint = {papers/ekman07jastadd-system.pdf} , title = {{The JastAdd System - modular extensible compiler construction}} , author = {Ekman, T. and Hedin, G.} , booktitle = {Science of Computer Programming} , journal = {Science of Computer Programming} , month = {Dec} , pages = {14-26} , number = {1-3} , volume = {69} , year = {2007}} @misc{www08elegant , eprint = {papers/www08elegant.pdf} , title = {{The Elegant Homepage}} , author = {Augusteijn, Lex} , year = {2008} , howpublished = {\verb|http://www.research.philips.com/technologies/syst%5fsoftw/elegant/|}} @article{hedin03jastadd-aspects , eprint = {papers/hedin03jastadd-aspects.pdf} , title = {{JastAdd, an aspect-oriented compiler construction system}} , author = {Hedin, Gorel and Magnusson, Eva} , journal = {Science of Computer Programming} , month = {Apr} , pages = {37-58} , number = {1} , volume = {47} , year = {2003}} @inproceedings{ekman07jastadd-java , eprint = {papers/ekman07jastadd-java.pdf} , title = {{The JastAdd Extensible Java Compiler}} , author = {Ekman, T. and Hedin, G.} , booktitle = {OOPSLA} , pages = {1-18} , year = {2007} , howpublished = {\verb|http://doi.acm.org/10.1145/1297027.1297029|}} @misc{www08polyglot , eprint = {papers/www08polyglot.pdf} , title = {{Polyglot}} , year = {2008} , howpublished = {\verb|http://www.cs.cornell.edu/projects/polyglot/|}} @inproceedings{nystrom03polyglot-comp-framew , eprint = {papers/nystrom03polyglot-comp-framew.pdf} , title = {{Polyglot: An Extensible Compiler Framework for Java}} , author = {Nystrom, Nathaniel and Clarkson, Micheal R. and Myers, Andrew C.} , booktitle = {Compiler Construction} , month = {Apr} , pages = {138-152} , number = {2622} , series = {LNCS} , year = {2003} , howpublished = {\verb|http://www.cs.cornell.edu/projects/polyglot/|}} @inproceedings{sewell07ott-tool-semantic , eprint = {papers/sewell07ott-tool-semantic.pdf} , title = {{Ott: effective tool support for the working semanticist}} , author = {Sewell, Peter and Nardelli, Francesco Zappa and Owens, Scott and Peskine, Gilles and et.al.} , booktitle = {ICFP} , pages = {1-12} , year = {2007} , howpublished = {\verb|http://doi.acm.org/10.1145/1291220.1291155|}} @inproceedings{robinson76fast-unif , eprint = {papers/robinson76fast-unif.pdf} , title = {{Fast unification}} , author = {Robinson, J.A.} , booktitle = {Theorem Proving Workshop} , year = {1976 }} @inproceedings{hansen06anal-fast-unif , eprint = {papers/hansen06anal-fast-unif.pdf} , title = {{Analysis of Fast Unification: An Exercise in Applied Logic}} , author = {Hansen, Kaj Borge} , booktitle = {Modality Matters} , editor = {Lagerlund, H. and Lindstr\"om, S. and Sliwinski, R.} , year = {2006} , howpublished = {\verb|http://www.filosofi.uu.se/eng/personal/kajborgeha.htm|}} @inproceedings{robinson71unification , eprint = {papers/robinson71unification.pdf} , title = {{Computational logic: The unification computation}} , author = {Robinson, J.A.} , booktitle = {Machine Intelligence} , editor = {Meltzer, B. and Michie, D.} , pages = {63-72} , year = {1971}} @article{venkatesh05unif-sourcetrack , eprint = {papers/venkatesh05unif-sourcetrack.pdf} , title = {{Source-tracking unification}} , author = {Choppella, Venkatesh and Haynes, Christopher T.} , journal = {Information and Computation} , pages = {121-159} , number = {2} , volume = {201} , year = {2005}} @article{robinson65unif-resoution , eprint = {papers/robinson65unif-resoution.pdf} , title = {{A machine-oriented logic based on the resolution principle}} , author = {Robinson, J.A.} , booktitle = {Machine Intelligence} , editor = {Meltzer, B. and Michie, D.} , journal = {Journal of the ACM} , month = {Jan} , pages = {23-41} , number = {1} , volume = {12} , year = {1965}} @misc{logic06resolution , eprint = {papers/logic06resolution.pdf} , title = {{CS157: Computational Logic, Relational Resolution}} , booktitle = {Computational Logic} , year = {2006} , howpublished = {\verb|http://logic.stanford.edu/classes/cs157|}} @techreport{gallier91unif-survey , eprint = {papers/gallier91unif-survey.pdf} , title = {{Unification Procedures in Automated Deduction Methods Based on Matings: A Survey}} , author = {Gallier, Jean H.} , institution = {University of Pennsylvania, Department of Computer and Information Science} , school = {University of Pennsylvania, Department of Computer and Information Science} , number = {MS-CIS-91-76} , year = {1991 }} @article{knight89unif-survey , eprint = {papers/knight89unif-survey.pdf} , title = {{Unification: a multidisciplinary survey}} , author = {Knight, Kevin} , journal = {ACM Computing Surveys} , month = {Mar} , pages = {93-124} , number = {1} , volume = {21} , year = {1989} , howpublished = {\verb|http://doi.acm.org/10.1145/62029.62030|}} @inproceedings{comon91disunification , eprint = {papers/comon91disunification.pdf} , title = {{Disunification: a Survey}} , author = {Comon, Hubert} , booktitle = {Computational Logic - Essays in Honor of Alan Robinson} , year = {1991 } , howpublished = {\verb|http://citeseer.ist.psu.edu/173753.html|}} @article{paterson78unif-linear , eprint = {papers/paterson78unif-linear.pdf} , title = {{Linear unification}} , author = {Paterson, M.S. and Wegman, M.N.} , journal = {Journal of Computer and System Sciences} , month = {Apr} , pages = {158-167} , number = {2} , volume = {16} , year = {1978 }} @{lassez88unif-revisited , eprint = {papers/lassez88unif-revisited.pdf} , title = {{Unification revisited}} , author = {Lassez, J.-L. and Maher, M. and Marriot, K.} , year = {1988 }} @inproceedings{claessen99observable-share , eprint = {papers/claessen99observable-share.pdf} , title = {{Observable Sharing for Functional Circuit Description}} , author = {Claessen, Koen and Sands, David} , booktitle = {Asian Computing Science Conference} , pages = {62-73} , number = {1742} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/370543.html|}} @inproceedings{attanasio01par-gc-compare , eprint = {papers/attanasio01par-gc-compare.pdf} , title = {{A Comparative Evaluation of Parallel Garbage Collectors}} , author = {Attanasio, C. and Bacon, D. and Cocchi, A. and Smith, S.} , booktitle = {Fourteenth Annual Workshop on Languages and Compilers for Parallel Computing} , pages = {177-192} , number = {2624} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/attanasio01comparative.html|}} @inproceedings{endo97gc-par-scalable , eprint = {papers/endo97gc-par-scalable.pdf} , title = {{A Scalable Mark-Sweep Garbage Collector on Large-Scale Shared-Memory Machines}} , author = {Endo, Toshio and Taura, Keniro and Yonezawa, Akinori} , booktitle = {High Performance Computing and Networking} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/83365.html|}} @inproceedings{henderson02gc-uncoop-accurate , eprint = {papers/henderson02gc-uncoop-accurate.pdf} , title = {{Accurate garbage collection in an uncooperative environment}} , author = {Henderson, F.} , booktitle = {International Symposium on Memory Management} , pages = {150-156} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/henderson02accurate.html|}} @inproceedings{marlow08par-gc-haskell , eprint = {papers/marlow08par-gc-haskell.pdf} , title = {{Parallel generational-copying garbage collection with a block-structured heap}} , author = {Marlow, Simon and Harris, Tim and James, Roshan P. and Peyton Jones, Simon} , booktitle = {International Symposium on Memory Management} , year = {2008} , howpublished = {\verb|http://research.microsoft.com/~simonpj/papers/parallel-gc/index.htm|}} @inproceedings{garrigue97ext-ml-rank2-poly , eprint = {papers/garrigue97ext-ml-rank2-poly.pdf} , title = {{Extending ML with Semi-Explicit Higher-Order Polymorphism }} , author = {Garrigue, Jacques and Remy, Didier} , booktitle = {Theoretical Aspects of Computer Software} , pages = {20-46} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/115759.html|}} @inproceedings{pfenning88part-poly-inf , eprint = {papers/pfenning88part-poly-inf.pdf} , title = {{Partial polymorphic type inference and higher-order unification}} , author = {Pfenning, Frank} , booktitle = {LISP and functional programming} , pages = {153-163} , year = {1988} , howpublished = {\verb|http://doi.acm.org/10.1145/62678.62697|}} @techreport{hosoya99howgood-locty-infer , eprint = {papers/hosoya99howgood-locty-infer.pdf} , title = {{How Good is Local Type Inference?}} , author = {Hosoya, Haruo and Pierce, Benjamin C.} , year = {1999}} @misc{jones03gc-bibl , eprint = {papers/jones03gc-bibl.pdf} , title = {{The Garbage Collection Bibliography}} , author = {Jones, Richard} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones03garbage.html|}} @misc{boehm00gc-par-multiproc , eprint = {papers/boehm00gc-par-multiproc.pdf} , title = {{Fast Multiprocessor Memory Allocation and Garbage Collection}} , author = {Boehm, Hans-J.} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm00fast.html|}} @inproceedings{boehm03finalizer-destr-synch , eprint = {papers/boehm03finalizer-destr-synch.pdf} , title = {{Destructors, Finalizers, and Synchronization}} , author = {Boehm, Hans-J.} , booktitle = {Principles of Programming Languages} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm03destructors.html|}} @inproceedings{boehm00gc-cachemiss-reduce , eprint = {papers/boehm00gc-cachemiss-reduce.pdf} , title = {{Reducing Garbage Collector Cache Misses}} , author = {Boehm, Hans-J.} , booktitle = {International Symposium on Memory Management} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm00reducing.html|}} @misc{vytiniotis08higher-rank , eprint = {papers/vytiniotis08higher-rank.pdf} , title = {{FPH : First-class Polymorphism for Haskell, Dimitrios Vytiniotis, Stephanie Weirich, and Simon Peyton Jones, submitted to ICFP 2008}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , year = {2008}} @inbook{mitchell84ty-infer-contain , eprint = {papers/mitchell84ty-infer-contain.pdf} , title = {{Type Inference and Containment}} , author = {Mitchell, John C.} , booktitle = {Semantics of Data Types} , journal = {Information and Computation} , number = {173} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {76} , year = {1984 } , howpublished = {\verb|http://www.springerlink.com/content/y601023056327n08/|}} @misc{www08lernet , eprint = {papers/www08lernet.pdf} , title = {{LERnet}} , author = {LERnet} , year = {2008} , howpublished = {\verb|http://alfa.di.uminho.pt/~lernet/|}} @techreport{camarao01ty-infer-overl , eprint = {papers/camarao01ty-infer-overl.pdf} , title = {{Type Inference for Overloading}} , author = {Camarao, Carlos and Figueiredo, Lucilia} , institution = {Universidade Federal de Minas Gerais} , school = {Universidade Federal de Minas Gerais} , year = {2001}} @inproceedings{camarao99ty-infer-overl-noann , eprint = {papers/camarao99ty-infer-overl-noann.pdf} , title = {{Type Inference for Overloading without Restrictions, Declarations or Annotations}} , author = {Camarao, Carlos and Figueiredo, Lucilia} , booktitle = {Functional and Logic Programming} , institution = {Universidade Federal de Minas Gerais} , school = {Universidade Federal de Minas Gerais} , number = {1722} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999}} @inproceedings{remy08graph-ty-cnstr-mlf , eprint = {papers/remy08graph-ty-cnstr-mlf.pdf} , title = {{Graphic Type Constraints and Efficient Type Inference: from ML to MLF}} , author = {Remy, Didier and Yakobowski, Boris} , booktitle = {International Conference on Functional Programming} , year = {2008}} @inproceedings{leijen08hmf-ty-infer , eprint = {papers/leijen08hmf-ty-infer.pdf} , title = {{HMF: Simple type inference for first-class polymorphism}} , author = {Leijen, Daan} , booktitle = {International Conference on Functional Programming} , year = {2008}} @techreport{dybvig94bibop-mem-mgt , eprint = {papers/dybvig94bibop-mem-mgt.pdf} , title = {{Don't Stop the BIBOP: Flexible and Efficient Storage Management for Dynamically-Typed Languages}} , author = {Dybvig, R. Kent and Eby, David and Bruggeman, Carl} , institution = {Indiana University Department of Computer Science} , school = {Indiana University Department of Computer Science} , month = {Mar} , number = {TR400} , year = {1994} , howpublished = {\verb|https://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR400|}} @article{knowlton65buddy-fast-storage , eprint = {papers/knowlton65buddy-fast-storage.pdf} , title = {{A fast storage allocator}} , author = {Knowlton, Kenneth C.} , journal = {Communications of the ACM} , pages = {623-625} , number = {10} , volume = {8} , year = {1965} , howpublished = {\verb|http://doi.acm.org/10.1145/365628.365655|}} @inproceedings{kaufman80buddy-var-mem-mgt , eprint = {papers/kaufman80buddy-var-mem-mgt.pdf} , title = {{Variations on the binary buddy system for dynamic memory management}} , author = {Kaufman, Arie} , booktitle = {ACM Southeast Regional Conference} , year = {1980 } , howpublished = {\verb|http://doi.acm.org/10.1145/503838.503848|}} @techreport{johnson92buddy-paral-mem-mgt , eprint = {papers/johnson92buddy-paral-mem-mgt.pdf} , title = {{Space efficient parallel buddy memory management}} , author = {Johnson, Theodore and Davis, Tim} , institution = {Department of Computer and Information Science, University of Florida} , school = {Department of Computer and Information Science, University of Florida} , number = {TR 92-008} , year = {1992 } , howpublished = {\verb|ftp://ftp.cis.ufl.edu/pub/tech-reports/tr92/tr92-008.ps.Z|}} @inproceedings{flood01garbcoll-paral-shmem , eprint = {papers/flood01garbcoll-paral-shmem.pdf} , title = {{Parallel Garbage Collection for Shared Memory Multiprocessors}} , author = {Flood, Christine H. and Detlefs, David and Shavit, Nir and Zhang, Xiaolan} , booktitle = {Java Virtual Machine Research and Technology Symposium} , year = {1991 }} @inproceedings{hayes92finalize-collector , eprint = {papers/hayes92finalize-collector.pdf} , title = {{Finalization in the Collector Interface}} , author = {Hayes, Barry} , booktitle = {International Workshop on Memory Management} , pages = {277-298} , number = {637} , series = {LNCS} , year = {1992} , howpublished = {\verb|http://www.springerlink.com/content/w17q82r35874712t/|}} @inproceedings{while92gc-stg-increm , eprint = {papers/while92gc-stg-increm.pdf} , title = {{Incremental garbage collection for the Spineless Tagless G-machine}} , author = {While, R.L. and Field, A.J.} , booktitle = {Massey Functional Programming Workshop} , year = {1992 } , howpublished = {\verb|http://www.doc.ic.ac.uk/~ajf/Research/publications.html|}} @mastersthesis{cheadle99gc-ghc-increm , eprint = {papers/cheadle99gc-ghc-increm.pdf} , title = {{Incremental Garbage Collection for Haskell}} , author = {Cheadle, Andrew} , school = {Department of Computing, Imperial College, London} , year = {1999}} @inproceedings{pizlo08gc-realtime-conc , eprint = {papers/pizlo08gc-realtime-conc.pdf} , title = {{A study of concurrent real-time garbage collectors}} , author = {Pizlo, Filip and Petrank, Erez and Steensgaard, Bjarne} , booktitle = {Programming Language Design and Implementation} , pages = {33-44} , year = {2008}} @inproceedings{pizlo07gc-stopless-realtime-multi , eprint = {papers/pizlo07gc-stopless-realtime-multi.pdf} , title = {{STOPLESS: A real-time garbage collector for multiprocessors}} , author = {Pizlo, Filip and Frampton, Daniel and Petrank, Erez and Steensgard, Bjarne} , booktitle = {International Symposium on Memory Management} , pages = {159-172} , year = {2007}} @inproceedings{pizlo07gc-hierarch-realtime , eprint = {papers/pizlo07gc-hierarch-realtime.pdf} , title = {{Hierarchical real-time garbage collection}} , author = {Pizlo, Filip and Hosking, Anthony L. and Vitek, Jan} , booktitle = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools (LCTES07)} , pages = {123-133} , year = {2007}} @inproceedings{siebert07gc-realtime-jamaica , eprint = {papers/siebert07gc-realtime-jamaica.pdf} , title = {{Realtime garbage collection in the JamaicaVM 3.0}} , author = {Siebert, Fridtjof} , booktitle = {Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007)} , pages = {94-103} , year = {2007}} @article{baker78listproc-realtime , eprint = {papers/baker78listproc-realtime.pdf} , title = {{List processing in real time on a serial computer}} , author = {Baker, Henry G.} , journal = {Communications of the ACM} , pages = {182-194} , year = {1978}} @inproceedings{stanchina07gc-realtim-markorsweep , eprint = {papers/stanchina07gc-realtim-markorsweep.pdf} , title = {{Mark-sweep or copying? ``a best of both worlds'' algorithm and a hardware-supported real-time implementation}} , author = {Stanchina, Sylvain and Meyer, Mattias} , booktitle = {International Symposium on Memory Management} , pages = {173-182} , year = {2007}} @inproceedings{xian07gc-java-applserv , eprint = {papers/xian07gc-java-applserv.pdf} , title = {{AS-GC: An efficient generational garbage collector for Java application servers}} , author = {Xian, Feng and Srisa-an, Witawas and Jia, C. and Jiang, Hong} , booktitle = {ECOOP} , year = {2007}} @inproceedings{cherem06gc-dealloc-compiletime , eprint = {papers/cherem06gc-dealloc-compiletime.pdf} , title = {{Compile-time deallocation of individual objects}} , author = {Cherem, Sigmund and Rugina, Radu} , booktitle = {International Symposium on Memory Management} , pages = {138-149} , year = {2006}} @inproceedings{hosking06gc-conc-copy-multi , eprint = {papers/hosking06gc-conc-copy-multi.pdf} , title = {{Portable, mostly-concurrent and mostly-copying garbage collection for multi-processors}} , author = {Hosking, Antony L.} , booktitle = {International Symposium on Memory Management} , pages = {40-51} , year = {2006}} @inproceedings{kermany06gc-compressor , eprint = {papers/kermany06gc-compressor.pdf} , title = {{The Compressor: Concurrent, incremental and parallel compaction}} , author = {Kermany, Haim and Petrank, Erez} , booktitle = {Programming Language Design and Implementation} , pages = {354-363} , year = {2006}} @article{peterson77buddy-systems , eprint = {papers/peterson77buddy-systems.pdf} , title = {{Buddy Systems}} , author = {Peterson, James L. and Norman, Theodore A.} , journal = {Communications of the ACM} , pages = {421-431} , number = {6} , volume = {20} , year = {1977 }} @inproceedings{masmano06mem-realtime-cmp , eprint = {papers/masmano06mem-realtime-cmp.pdf} , title = {{A comparison of memory allocators for real-time applications}} , author = {Masmano, Miguel and Ripoli, Ismael and Crespo, Alfons} , booktitle = {Workshop on Java Technologies for Real-time and Embedded Systems} , pages = {68-76} , year = {2006}} @article{muthukumar06gc-java-gen-scale-multi , eprint = {papers/muthukumar06gc-java-gen-scale-multi.pdf} , title = {{Yama: a scalable generational garbage collector for Java in multiprocessor systems}} , author = {Muthukumar, R. and Janakiram, D.} , journal = {EEE Transactions on Parallel and Distributed Systems} , pages = {148-159} , number = {2} , volume = {17} , year = {2006}} @inproceedings{sagonas06gc-mark-split , eprint = {papers/sagonas06gc-mark-split.pdf} , title = {{Mark and Split}} , author = {Sagonas, Konstantinos and Wilhelmsson, Jesper} , booktitle = {International Symposium on Memory Management} , pages = {29-39} , year = {2006}} @inproceedings{bacon05gc-syncopation-metronome , eprint = {papers/bacon05gc-syncopation-metronome.pdf} , title = {{Syncopation: Generational real-time garbage collection in the Metronome}} , author = {Bacon, David F. and Cheng, Perry and Grove, David and Vechev, Martin} , booktitle = {Languages, Compilers, and Tools for Embedded Systems (LCTES'05)} , year = {2005}} @article{bacon03gc-realtime , eprint = {papers/bacon03gc-realtime.pdf} , title = {{A real-time garbage collector with low overhead and consistent utilization}} , author = {Bacon, David F. and Cheng, Perry and Rajan, V.T.} , journal = {ACM SIGPLAN Notices} , pages = {285-298} , number = {1} , volume = {38} , year = {2003}} @article{barabash05gc-srv-paral-incr-conc , eprint = {papers/barabash05gc-srv-paral-incr-conc.pdf} , title = {{A parallel, incremental, mostly concurrent garbage collector for servers}} , author = {Barabash, Katherine and Ben-Yitzhak, Ori and Goft, Irit and Kolodner, Elliot K. and Leikeman, Victor} , journal = {ACM TOPLAS} , pages = {1097-1146} , number = {6} , volume = {27} , year = {2005}} @inproceedings{hertz05gc-nopaging , eprint = {papers/hertz05gc-nopaging.pdf} , title = {{Garbage collection without paging}} , author = {Hertz, Matthew and Feng, Yi and Berger, Emery D.} , booktitle = {Programming Language Design and Implementation} , pages = {143-153} , year = {2005}} @inproceedings{vechev05gc-concur-eval , eprint = {papers/vechev05gc-concur-eval.pdf} , title = {{Derivation and evaluation of concurrent collectors}} , author = {Vechev, Martin and Bacon, David F. and Cheng, Perry and Grove, David} , booktitle = {ECOOP} , year = {2005}} @inproceedings{blackburn04gc-perf , eprint = {papers/blackburn04gc-perf.pdf} , title = {{Myths and reality: The performance impact of garbage collection}} , author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.} , booktitle = {Measurement and Modeling of Computer Systems} , year = {2004}} @inproceedings{blackburn04gc-mmtk-java , eprint = {papers/blackburn04gc-mmtk-java.pdf} , title = {{Oil and water? high performance garbage collection in Java with MMTk}} , author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.} , booktitle = {ICSE} , year = {2004}} @inproceedings{blackburn04gc-barriers , eprint = {papers/blackburn04gc-barriers.pdf} , title = {{Barriers: Friend or foe?}} , author = {Blackburn, Stephen M. and Hosking, Tony} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{detlefs04gc-first , eprint = {papers/detlefs04gc-first.pdf} , title = {{Garbage-first garbage collection}} , author = {Detlefs, David and Flood, Christine and Heller, Steven and Printezis, Tony} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{vechev04gc-writebarrier-conc , eprint = {papers/vechev04gc-writebarrier-conc.pdf} , title = {{Write barrier elision for concurrent garbage collectors}} , author = {Vechev, Martin and Bacon, F.} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{azatchi03gc-marksweep-slideview , eprint = {papers/azatchi03gc-marksweep-slideview.pdf} , title = {{An on-the-fly Mark and Sweep Garbage Collector Based on Sliding Views}} , author = {Azatchi, Hezi and Levanoni, Yossi and Paz, Harel and Petrank, Erez} , booktitle = {OOPSLA} , year = {2003}} @inproceedings{bacon03gc-fragment-space , eprint = {papers/bacon03gc-fragment-space.pdf} , title = {{Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java}} , author = {Bacon, David F. and Cheng, Perry and Rajan, V.T.} , booktitle = {Languages, Compilers, and Tools for Embedded Systems} , year = {2003}} @inproceedings{barabash03gc-mostconc-rev , eprint = {papers/barabash03gc-mostconc-rev.pdf} , title = {{Mostly concurrent garbage collection revisited}} , author = {Barabash, Katherine and Ossia, Yoav and Petrank, Erez} , booktitle = {OOPSLA} , year = {2003}} @inproceedings{boehm91gc-mostparal , eprint = {papers/boehm91gc-mostparal.pdf} , title = {{Mostly Parallel Garbage Collection}} , author = {Boehm, Hans-J. and Demers, Alan J. and Shenker, Scott} , booktitle = {Programming Language Design and Implementation} , pages = {157-164} , year = {1991}} @article{appel89gc-simple-gen , eprint = {papers/appel89gc-simple-gen.pdf} , title = {{Simple Generational Garbage Collection and Fast Allocation}} , author = {Appel, Andrew W.} , journal = {Software Practice and Experience} , pages = {171-183} , number = {2} , volume = {19} , year = {1989 } , howpublished = {\verb|http://citeseer.ist.psu.edu/appel88simple.html|}} @inproceedings{blackburn02gc-beltway , eprint = {papers/blackburn02gc-beltway.pdf} , title = {{Beltway: Getting Around Garbage Collection Gridlock}} , author = {Blackburn, Stephen M. and Jones, Richard E. and McKinley, Kathryn S. and Moss, J. Eliot B.} , booktitle = {Programming Language Design and Implementation} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/blackburn02beltway.html|}} @inproceedings{blackburn02gc-write-barrier , eprint = {papers/blackburn02gc-write-barrier.pdf} , title = {{In or out?: putting write barriers in their place}} , author = {Blackburn, Stephen M. and McKinley, Kathryn S.} , booktitle = {International Symposium on Memory Management} , month = {2} , pages = {175-184} , number = {38} , series = {ACM Sigplan Notices} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/773039.512452|}} @misc{dijkstra08effic-funct-subst-tr , eprint = {papers/dijkstra08effic-funct-subst-tr.pdf} , title = {{Efficient Functional Unification and Substitution}} , author = {Dijkstra, Atze and Middelkoop, Arie and Swierstra, S. Doaitse} , booktitle = {Implementation of Functional Languages} , year = {2008} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2008-027.html|}} @techreport{rose96expl-subst , eprint = {papers/rose96expl-subst.pdf} , title = {{Explicit Substitution - Tutorial and Survey}} , author = {Rose, Kristoffer H.} , institution = {Department of Computer Science, University of Aarhus} , school = {Department of Computer Science, University of Aarhus} , number = {BRICS-LS-96-3} , year = {1996} , howpublished = {\verb|http://www.brics.dk/LS/96/3/BRICS-LS-96-3/BRICS-LS-96-3.html|}} @inproceedings{abadi89expl-subst , eprint = {papers/abadi89expl-subst.pdf} , title = {{Explicit Substitutions}} , author = {Abadi, M. and Cardelli, L. and Curien, P-L. and Levy, J-J.} , booktitle = {Principles of Programming Languages} , pages = {31-46} , year = {1991 } , howpublished = {\verb|http://doi.acm.org/10.1145/96709.96712|}} @article{abadi91expl-subst , eprint = {papers/abadi91expl-subst.pdf} , title = {{Explicit Substitutions}} , author = {Abadi, M. and Cardelli, L. and Curien, P-L.} , booktitle = {Principles of Programming Languages} , journal = {Journal of Functional Programming} , month = {Oct} , pages = {375-416} , number = {4} , volume = {1} , year = {1991 } , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.9903|}} @inproceedings{leywild08selfadj-cont , eprint = {papers/leywild08selfadj-cont.pdf} , title = {{Compiling Self-Adjusting Programs with Continuations}} , author = {Ley-Wild, Ruy and Fluet, Matthew and Acar, Umut A.} , booktitle = {ICFP} , pages = {321-333} , year = {2008}} @article{acar06adapt-fun-prog , eprint = {papers/acar06adapt-fun-prog.pdf} , title = {{Adaptive Functional Programming}} , author = {Acar, Umut A. and Blelloch, Guy E. and Harper, Robert} , journal = {ACM TOPLAS} , month = {Nov} , pages = {990-1034} , number = {6} , volume = {28} , year = {2006} , howpublished = {\verb|http://doi.acm.org/10.1145/1186632.1186634|}} @inproceedings{acar06analysis-selfadjust , eprint = {papers/acar06analysis-selfadjust.pdf} , title = {{An Experimental Analysis of Self-Adjusting Computation}} , author = {Acar, Umut A. and Blelloch, Guy E. and Blume, Matthias and Tangwongsan, Kanat} , booktitle = {Programming Language Design and Implementation} , pages = {96-107} , year = {2006} , howpublished = {\verb|http://doi.acm.org/10.1145/1133255.1133993|}} @inproceedings{magnussen07ag-coll-attr , eprint = {papers/magnussen07ag-coll-attr.pdf} , title = {{Extending Attribute Grammars with Collection Attributes - Evaluation and Applications}} , author = {Magnusson, Eva and Ekman, Torbjorn and Hedin, Gorel} , booktitle = {Source Code Analysis and Manipulation} , year = {2007}} @inproceedings{dietz87orderedlist-maint , eprint = {papers/dietz87orderedlist-maint.pdf} , title = {{Two Algorithms for Maintaining Order in a List}} , author = {Dietz, Paul F. and Sleator, Daniel} , booktitle = {Theory of Computing} , pages = {365-372} , year = {1987 } , howpublished = {\verb|http://doi.acm.org/10.1145/28395.28434|}} @inproceedings{acar04dyn-static-history , eprint = {papers/acar04dyn-static-history.pdf} , title = {{Dynamizing Static Algorithms, with Applications to Dynamic Trees and History Independence}} , author = {Acar, Umut A. and Blelloch, Guy E. and Harper, Robert and Vittes, Jorge L. and Woo, Shan Leung Maverick} , booktitle = {Discrete Algorithms} , pages = {531-540} , year = {2004}} @inproceedings{carlsson02increm-monad , eprint = {papers/carlsson02increm-monad.pdf} , title = {{Monads for Incremental Computing}} , author = {Carlsson, Magnus} , booktitle = {International Conference on Functional Programming} , pages = {26-35} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581478.581482|}} @inproceedings{bender02two-orderedlist-maint , eprint = {papers/bender02two-orderedlist-maint.pdf} , title = {{Two Simplified Algorithms for Maintaining Order in a List}} , author = {Bender, Michael A. and Cole, Richard and Demaine, Erik D. and Farach-Colton, Martin and Zito, Jack} , booktitle = {European Symposium on Algorithms} , pages = {152-164} , number = {2461} , series = {LNCS} , year = {2002}} @phdthesis{acar05phd-selfadjust-comput , eprint = {papers/acar05phd-selfadjust-comput.pdf} , title = {{Self-Adjusting Computation}} , author = {Acar, Umut A.} , school = {Department of Computer Science, Carnegie Mellon University} , year = {2005}} @inproceedings{bohannon06rel-lens-upd-view , eprint = {papers/bohannon06rel-lens-upd-view.pdf} , title = {{Relational Lenses: A Language for Updateable Views}} , author = {Bohannon, Aaron and Vaughan, Jeffrey A. and Pierce, Benjamin C.} , booktitle = {Principles of Database Systems} , year = {2006}} @techreport{pemberton92views-env , eprint = {papers/pemberton92views-env.pdf} , title = {{The Views Application Environment}} , address = {Amsterdam} , author = {Pemberton, S.} , institution = {CWI} , school = {CWI} , number = {CS-R9247} , year = {1992}} @techreport{schrage02comb-layer-arch , eprint = {papers/schrage02comb-layer-arch.pdf} , title = {{Combinators for layered software architectures}} , author = {Schrage, Martijn M. and Jeuring, Johan and Swierstra, S. Doaitse} , institution = {Faculty of Science, Information and Computing Sciences, Utrecht University} , school = {Faculty of Science, Information and Computing Sciences, Utrecht University} , number = {UU-CS-2002-030} , year = {2002}} @article{mitchell88polyty-infer-contain , eprint = {papers/mitchell88polyty-infer-contain.pdf} , title = {{Polymorphic Type Inference and Containment}} , author = {Mitchell, John C.} , booktitle = {Semantics of Data Types} , journal = {Information and Computation} , pages = {211-249} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {76} , year = {1988} , howpublished = {\verb|http://dx.doi.org/10.1016/0890-5401(88)90009-0|}} @article{leivant91stratif-poly , eprint = {papers/leivant91stratif-poly.pdf} , title = {{Finitely Stratified Polymorphism}} , author = {Leivant, Daniel} , journal = {Information and Computation} , pages = {93-113} , volume = {93} , year = {1991 } , howpublished = {\verb|http://dx.doi.org/10.1016/0890-5401(91)90053-5|}} @inproceedings{leijen07mlf-systemf , eprint = {papers/leijen07mlf-systemf.pdf} , title = {{A Type Directed Translation of MLF to System F}} , author = {Leijen, Daan} , booktitle = {ICFP} , year = {2007}} @inproceedings{leijen09flexty-infer-polym , eprint = {papers/leijen09flexty-infer-polym.pdf} , title = {{Flexible types, Robust type inference for first-class polymorphism}} , author = {Leijen, Daan} , booktitle = {Principles of Programming Languages} , year = {2009}} @article{peytonjones07pract-inf-rank , eprint = {papers/peytonjones07pract-inf-rank.pdf} , title = {{Practical type inference for arbitrary-rank types}} , author = {Peyton Jones, Simon and Vytiniotis, Dimitrios and Weirich, Stephanie and Shields, Mark} , journal = {Journal of Functional Programming} , month = {Jan} , pages = {1-82} , number = {1} , volume = {17} , year = {2007}} @misc{www09jhc , eprint = {papers/www09jhc.pdf} , title = {{Jhc Haskell Compiler}} , author = {Meacham, John} , year = {2009} , howpublished = {\verb|http://repetae.net/computer/jhc/|}} @misc{www09lhc , eprint = {papers/www09lhc.pdf} , title = {{LHC Haskell Compiler}} , author = {Himmelstrup, David and Bronson, Samuel and Seipp, Austin} , year = {2009} , howpublished = {\verb|http://lhc.seize.it/|}} @misc{www09nhc98 , eprint = {papers/www09nhc98.pdf} , title = {{NHC98 Haskell Compiler}} , author = {{York Functional Programming Group}} , year = {2007} , howpublished = {\verb|http://haskell.org/nhc98/|}} @misc{www09yhc , eprint = {papers/www09yhc.pdf} , title = {{YHC York Haskell Compiler}} , author = {Shackell, Tom and Mitchell, Neil and Wilkinson, Andrew and others} , year = {2009} , howpublished = {\verb|http://haskell.org/haskellwiki/Yhc|}} @misc{www08helium , eprint = {papers/www08helium.pdf} , title = {{Helium Haskell Compiler}} , author = {Hage, Jurriaan and Heeren, Bastiaan} , year = {2008} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Helium|}} @misc{www09haskell-prime , eprint = {papers/www09haskell-prime.pdf} , title = {{Haskell Prime}} , author = {{Haskell' Committee}} , year = {2009} , howpublished = {\verb|http://hackage.haskell.org/trac/haskell-prime/|}} @techreport{sulzmann06sysf-ty-eq-coerce , eprint = {papers/sulzmann06sysf-ty-eq-coerce.pdf} , title = {{System F with Type Equality Coercions}} , author = {Sulzmann, Martin and Chakravarty, Manuel M.T. and Peyton Jones, Simon and Donnelly, Kevin} , institution = {University of New South Wales} , school = {University of New South Wales} , number = {UNSW-CSE-TR-0624} , year = {2006}} @inproceedings{peytonjones97henk-ty-interm , eprint = {papers/peytonjones97henk-ty-interm.pdf} , title = {{Henk: A Typed Intermediate Language}} , author = {Peyton Jones, Simon and Meijer, Erik} , booktitle = {Workshop on Types in Compilation} , year = {1997} , howpublished = {\verb|http://www.research.microsoft.com/Users/simonpj/Papers/henk.ps.gz|}} @inproceedings{harper95poly-intensional-ty , eprint = {papers/harper95poly-intensional-ty.pdf} , title = {{Compiling Polymorphism Using Intensional Type Analysis}} , author = {Harper, Robert and Morriset, Greg} , booktitle = {Principles of Programming Languages} , pages = {130-141} , year = {1995} , howpublished = {\verb|http://www.cs.cornell.edu/home/jgm/papers/ip-popl.ps|}} @inproceedings{jay08scap-ty-app , eprint = {papers/jay08scap-ty-app.pdf} , title = {{Scrap your type applications}} , author = {Jay, Barry and Peyton Jones, Simon} , booktitle = {Mathematics of Program Construction} , year = {2008} , howpublished = {\verb|http://research.microsoft.com/en-us/um/people/simonpj/papers/variant-f/|}} @inproceedings{bolingbroke09type-call-conv , eprint = {papers/bolingbroke09type-call-conv.pdf} , title = {{Types are calling conventions (submitted to Haskell Symposium 2009)}} , author = {Bolingbroke, Max and Peyton Jones, Simon} , year = {2009}} @misc{www98hbc , eprint = {papers/www98hbc.pdf} , title = {{The HBC compiler}} , author = {Augustsson, Lennart} , year = {1998} , howpublished = {\verb|http://www.cs.chalmers.se/~augustss/hbc/hbc.html|}} @misc{www09uhc , eprint = {papers/www09uhc.pdf} , title = {{UHC Utrecht Haskell Compiler}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , year = {2009} , howpublished = {\verb|http://www.cs.uu.nl/wiki/UHC|}} @inproceedings{dijkstra09uhc-arch , eprint = {papers/dijkstra09uhc-arch.pdf} , title = {{The Architecture of the Utrecht Haskell Compiler}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Haskell Symposium} , year = {2009}} @inproceedings{fokker08abs-int-ag , eprint = {papers/fokker08abs-int-ag.pdf} , title = {{Abstract Interpretation of Functional Programs using an Attribute Grammar System}} , author = {Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Language Descriptions, Tools and Applications (LDTA)} , year = {2008}} @inproceedings{middelkoop08gadts , eprint = {papers/middelkoop08gadts.pdf} , title = {{A Leaner Specification for GADTs}} , author = {Middelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Trends in Functional Programming (TFP)} , year = {2008}} @inproceedings{ferreiro09exp-safe-haskell , eprint = {papers/ferreiro09exp-safe-haskell.pdf} , title = {{Experiences in developing a compiler for Safe using Haskell }} , author = {Ferreiro, Henrique and Castro, David and Gulias, Victor M. and Dijkstra, Atze} , booktitle = {Taller de Programacion Funcional TPF, PROLE 2009} , year = {2009} , howpublished = {\verb|http://www.mondragon.edu/prole2009/contribucionesaceptadasprole.shtml|}} @inproceedings{backhouse99intro-genprog , eprint = {papers/backhouse99intro-genprog.pdf} , title = {{Generic Programming --- An Introduction}} , author = {Backhouse, R. and Jansson, P. and Jeuring, J. and Meertens, L.} , booktitle = {Advanced Functional Programming} , pages = {28-115} , number = {1608} , series = {LNCS} , year = {1999}} @article{jansson02polytypic , eprint = {papers/jansson02polytypic.pdf} , title = {{Polytypic data conversion programs}} , author = {Jansson, Patrik and Jeuring, Johan} , journal = {Science of Computer Programming} , pages = {35-75} , number = {1} , volume = {43} , year = {2002}} @inproceedings{jansson97polyp , eprint = {papers/jansson97polyp.pdf} , title = {{PolyP --- a polytypic programming language extension}} , author = {Jansson, Patrik and Jeuring, Johan} , booktitle = {Principles of Programming Languages} , pages = {470--482} , year = {1997}} @inproceedings{hage08heap-recycle , eprint = {papers/hage08heap-recycle.pdf} , title = {{Heap recycling for lazy languages}} , author = {Hage, Jurriaan and Holdermans, Stefan} , booktitle = {Workshop on Partial Evaluation and Program Manipulation} , pages = {189-198} , year = {2008}} @inproceedings{hage06heur-type-err , eprint = {papers/hage06heur-type-err.pdf} , title = {{Heuristics for type error discovery and recovery}} , author = {Hage, Jurriaan and Heeren, Bastiaan} , booktitle = {Implementation of Functional Languages} , pages = {119-216} , number = {4449} , series = {LNCS} , year = {2007}} @inproceedings{coutts07stream-fusion , eprint = {papers/coutts07stream-fusion.pdf} , title = {{Stream fusion: from lists to streams to nothing at all}} , author = {Coutts, Duncan and Leshchinskiy , Roman and Stewart, Don} , booktitle = {International Conference on Functional Programming} , pages = {315-326} , year = {2007}} @techreport{hudson91lang-indep-gc-toolkit , eprint = {papers/hudson91lang-indep-gc-toolkit.pdf} , title = {{A Language-Independent Garbage Collector Toolkit}} , address = {Amherst, MA 01003} , author = {Hudson, Richard L. and Moss, J. Eliot B. and Diwan, Amer} , institution = {OO Systems Lab, Dept of CS, University of Massachusetts} , school = {OO Systems Lab, Dept of CS, University of Massachusetts} , number = {COIS TR 91-47} , year = {1991}} @misc{www09haskell-platf , eprint = {papers/www09haskell-platf.pdf} , title = {{Haskell Platform}} , author = {{GHC Team}} , year = {2007} , howpublished = {\verb|http://hackage.haskell.org/platform/|}} @misc{steele09invtalk-par-foldharm , eprint = {papers/steele09invtalk-par-foldharm.pdf} , title = {{Organizing Functional Code for Parallel Execution: or, foldl and foldr Considered Slightly Harmful}} , author = {Steele, Guy} , year = {2009} , howpublished = {\verb|http://www.cs.nott.ac.uk/~gmh/icfp09.html|}} @phdthesis{pennings94phd-ag-gen-incr , eprint = {papers/pennings94phd-ag-gen-incr.pdf} , title = {{Generating incremental attribute evaluators}} , author = {Pennings, Maarten C.} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {1994}} @inproceedings{jones08fundep-design , eprint = {papers/jones08fundep-design.pdf} , title = {{Language and Program Design for Functional Dependencies}} , author = {Jones, Mark P. and Diatchki, Iavor} , booktitle = {Haskell Symposium} , year = {2008}} @phdthesis{middelkoop11phd-underconstruction , eprint = {papers/middelkoop11phd-underconstruction.pdf} , title = {{PhD thesis under construction}} , author = {Middelkoop, Arie} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {2011} , howpublished = {\verb|https://subversion.cs.uu.nl/repos/project.ruler.papers/ariem-thesis/thesis.pdf|}} @book{iso95prolog-standard , eprint = {papers/iso95prolog-standard.pdf} , title = {{Prolog -- Part 1: General core}} , author = {ISO} , publisher = {International Organization for Standardization (ISO)} , year = {1995} , howpublished = {\verb|http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=21413|}} @book{sterling94prolog-art , eprint = {papers/sterling94prolog-art.pdf} , title = {{The Art of Prolog, Second Edition: Advanced Programming Techniques}} , author = {Sterling, Leon and Shapiro, Ehud} , publisher = {MIT Press} , year = {1994}} @book{nipkow02isabelle-hol , eprint = {papers/nipkow02isabelle-hol.pdf} , title = {{Isabelle/HOL --- A Proof Assistant for Higher-Order Logic}} , author = {Nipkow, Tobias and Paulson, Lawrence C. and Wenzel, Markus} , publisher = {Springer} , year = {2002}} @book{bertot04coq , eprint = {papers/bertot04coq.pdf} , title = {{Interactive Theorem Proving and Program Development}} , author = {Bertot, Yves and Casteran, Pierre} , publisher = {Springer-Verlag} , year = {2004}} @inproceedings{pfenning99twelf , eprint = {papers/pfenning99twelf.pdf} , title = {{System Description: Twelf --- A Meta-Logical Framework for Deductive Systems}} , author = {Pfenning, Frank and Schurmann, Carsten} , booktitle = {16th International Conference on Automated Deduction (CADE-16)} , year = {1999} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.4232|}} @misc{www07ott , eprint = {papers/www07ott.pdf} , title = {{Ott}} , author = {Sewell, Peter and Nardelli, Francesco Zappa} , year = {2007} , howpublished = {\verb|http://www.cl.cam.ac.uk/~pes20/ott/|}} @misc{www10latex , eprint = {papers/www10latex.pdf} , title = {{LaTeX -- A document preparation system}} , author = {latex} , year = {2010} , howpublished = {\verb|http://www.latex-project.org/|}} @inproceedings{klint09rascal , eprint = {papers/klint09rascal.pdf} , title = {{RASCAL: a Domain Specific Language for Source Code Analysis and Manipulation}} , author = {Klint, Paul and Storm, Tijs van der and Vinju, Jurgen} , booktitle = {Source Code Analysis and Manipulation} , year = {2009} , howpublished = {\verb|http://www.rascal-mpl.org/Rascal/Documentation|}} @misc{vytiniotis11outsidein , eprint = {papers/vytiniotis11outsidein.pdf} , title = {{OutsideIn(X) Modular type inference with local assumptions (to be published in JFP)}} , author = {Vytiniotis, Dimitrios and Peyton Jones, Simon and Schrijvers, Tom and Martin, Sulzmann} , journal = {Journal of Functional Programming} , year = {2011} , howpublished = {\verb|http://haskell.org/haskellwiki/Simonpj/Talk:OutsideIn|}} @inproceedings{viera09attr-gram-in-haskell , eprint = {papers/viera09attr-gram-in-haskell.pdf} , title = {{Attribute grammars fly first-class: how to do aspect oriented programming in Haskell}} , author = {Viera, Marcos and Swierstra, S. Doaitse and Swierstra, Wouter} , booktitle = {ICFP} , year = {2009} , howpublished = {\verb|http://doi.acm.org/10.1145/1596550.1596586|}} @article{viera11fst-class-synsem , eprint = {papers/viera11fst-class-synsem.pdf} , title = {{First Class Syntax, Semantics, and Their Composition (submitted to JFP)}} , author = {Viera, Marcos and Swierstra, S. Doaitse and Dijkstra, Atze and Baars, Arthur I.} , journal = {Journal of Functional Programming} , year = {2011}} @inproceedings{middelkoop10ag-iterative-ty-infer , eprint = {papers/middelkoop10ag-iterative-ty-infer.pdf} , title = {{Iterative type inference with attribute grammars}} , author = {MIddelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Generative Programming and Component Engineering} , pages = {43-52} , year = {2010} , howpublished = {\verb|http://dx.doi.org/10.1145/1868294.1868303|}} @inproceedings{middelkoop11ag-stepwise-eval , eprint = {papers/middelkoop11ag-stepwise-eval.pdf} , title = {{Stepwise Evaluation of Attribute Grammars}} , author = {Middelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Language Descriptions, Tools and Applications (LDTA)} , year = {2011}} @inbook{swierstra09combi-parse-tut , eprint = {papers/swierstra09combi-parse-tut.pdf} , title = {{Combinator Parsing: A Short Tutorial}} , author = {Swierstra, S. Doaitse} , booktitle = {Language Engineering and Rigorous Software Development} , publisher = {Springer-Verlag} , year = {2009} , howpublished = {\verb|http://dx.doi.org/10.1007/978-3-642-03153-3_6|}} @inproceedings{hughes03polish-parse , eprint = {papers/hughes03polish-parse.pdf} , title = {{Polish parsers, step by step}} , author = {Hughes, R. John M. and Swierstra, S. Doaitse} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://dx.doi.org/10.1145/944705.944727|}} @misc{www10haskellinjavascript , eprint = {papers/www10haskellinjavascript.pdf} , title = {{A haskell interpreter in javascript}} , year = {2010} , howpublished = {\verb|https://github.com/johang88/haskellinjavascript|}} @misc{www07yhc-javascript , eprint = {papers/www07yhc-javascript.pdf} , title = {{Yhc/Javascript}} , year = {2007} , howpublished = {\verb|http://www.haskell.org/haskellwiki/Yhc/Javascript|}} @misc{www07haskell-in-browser , eprint = {papers/www07haskell-in-browser.pdf} , title = {{Haskell in web browser}} , year = {2007} , howpublished = {\verb|http://www.haskell.org/haskellwiki/Haskell_in_web_browser|}} @misc{www07functional-javascript , eprint = {papers/www07functional-javascript.pdf} , title = {{Functional Javascript}} , author = {Steele, Oliver} , year = {2007} , howpublished = {\verb|http://osteele.com/sources/javascript/functional/|}} @misc{www11ghcjs-git , eprint = {papers/www11ghcjs-git.pdf} , title = {{ghcjs: Haskell to Javascript compiler (via GHC)}} , author = {Nazarov , Victor} , year = {2011} , howpublished = {\verb|https://github.com/sviperll/ghcjs|}} @inproceedings{shields01haskell-oo-overloading , eprint = {papers/shields01haskell-oo-overloading.pdf} , title = {{Object-Oriented Style Overloading for Haskell}} , author = {Shields, Mark and Peyton Jones, Simon} , booktitle = {Workshop on Multi-Language Infrastructure and Interoperability} , year = {2001}} @misc{kiselyov05haskell-oo , eprint = {papers/kiselyov05haskell-oo.pdf} , title = {{HaskellŐs overlooked object system}} , author = {Kiselyov, Oleg and L\"ammel, Ralf} , year = {2005}} @phdthesis{jansen10phd-itasks-sapl-funcweb , eprint = {papers/jansen10phd-itasks-sapl-funcweb.pdf} , title = {{Functional Web Applications, Implementation and Use of Client-Side Interpreters}} , author = {Jansen, Jan Martin} , school = {Radboud University Nijmegen} , year = {2010} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{bruel10sapl-javascript , eprint = {papers/bruel10sapl-javascript.pdf} , title = {{Implementing a non-strict purely Functional Language in JavaScript}} , author = {Bru\"el, Eddy and Jansen, Jan Martin} , booktitle = {Implementation of Functional Languages} , year = {2010} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{plasmeijer08clientside-itasks-ajax , eprint = {papers/plasmeijer08clientside-itasks-ajax.pdf} , title = {{Declarative Ajax and Client Side Evaluation of Workflows using iTasks}} , author = {Plasmeijer, Rinus and Jansen, Jan Martin and Koopman, Pieter} , booktitle = {Principles and Practice of Declarative Programming} , year = {2008} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{oconnor11lens , eprint = {papers/oconnor11lens.pdf} , title = {{Functor is to Lens as Applicative is to Biplate: Introducing Multiplate}} , author = {O'Connor, Russel} , booktitle = {Workshop for Generic Programming} , institution = {arXiv} , school = {arXiv} , year = {2011} , howpublished = {\verb|http://arxiv.org/abs/1103.2841v2|}} @techreport{swierstra11jcu , eprint = {papers/swierstra11jcu.pdf} , title = {{Logisch en Functioneel Programmeren voor Wiskunde D}} , author = {Swierstra, Wouter and Stutterheim, Jurri\"en and Swierstra, S. Doaitse} , institution = {Department of Information and Computing Sciences, Utrecht University} , school = {Department of Information and Computing Sciences, Utrecht University} , number = {UU-CS-2011-033} , year = {2011}} @misc{www11snap-framework , eprint = {papers/www11snap-framework.pdf} , title = {{Snap Framework}} , year = {2011} , howpublished = {\verb|http://snapframework.com/|}} @misc{www11brunch , eprint = {papers/www11brunch.pdf} , title = {{Brunch}} , year = {2011} , howpublished = {\verb|http://brunch.io/|}} @misc{www11coffeescript , eprint = {papers/www11coffeescript.pdf} , title = {{CoffeeScript}} , year = {2011} , howpublished = {\verb|http://coffeescript.org/|}} @misc{www11jquery , eprint = {papers/www11jquery.pdf} , title = {{jQuery}} , year = {2011} , howpublished = {\verb|http://jquery.com/|}} @misc{www11clean-system , eprint = {papers/www11clean-system.pdf} , title = {{Clean}} , year = {2011} , howpublished = {\verb|http://wiki.clean.cs.ru.nl/Clean|}} @inproceedings{marlow06extensible-exception , eprint = {papers/marlow06extensible-exception.pdf} , author = {Marlow, Simon} , booktitle = {Haskell Symposium} , year = {2006}} @inproceedings{wakeling98haskell-to-java , eprint = {papers/wakeling98haskell-to-java.pdf} , title = {{Mobile Haskell: Compiling Lazy Functional Programs for the Java Virtual Machine}} , author = {Wakeling, David} , booktitle = {Programming Languages, Implementations, Logics and Programs} , year = {1998} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.7864|}} @mastersthesis{stewart02mthesis-multiparadigm-jit , eprint = {papers/stewart02mthesis-multiparadigm-jit.pdf} , title = {{Multi-paradigm Just-In-Time Compilation}} , author = {Stewart, Don} , school = {The University of New South Wales, School of Computer Science and Engineering} , year = {2002}} @techreport{tullsen96haskell-to-java , eprint = {papers/tullsen96haskell-to-java.pdf} , title = {{Compiling Haskell to Java}} , author = {Tullsen, Mark} , institution = {Yale University, Department of Computer Science} , school = {Yale University, Department of Computer Science} , year = {1996}} @techreport{asai08haskell-printf , eprint = {papers/asai08haskell-printf.pdf} , title = {{On Typing Delimited Continuations: Three New Solutions to the Printf Problem}} , author = {Asai, Kenichi} , institution = {Ochanomizu University, 2-1-1 Otsuka, Bunkyo-ku, Tokyo 112-8610, Japan} , school = {Ochanomizu University, 2-1-1 Otsuka, Bunkyo-ku, Tokyo 112-8610, Japan} , number = {OCHA-IS 08-2} , year = {2008}} @misc{kiselyov10functional-format-io , eprint = {papers/kiselyov10functional-format-io.pdf} , title = {{Type-safe functional formatted IO}} , author = {Kiselyov, Oleg} , year = {2010} , howpublished = {\verb|http://okmij.org/ftp/typed-formatting/FPrintScan.html|}} @misc{www12ghc-faq , eprint = {papers/www12ghc-faq.pdf} , title = {{GHC FAQ}} , year = {2012} , howpublished = {\verb|http://www.haskell.org/haskellwiki/GHC:FAQ|}} @inproceedings{meijer07mondrian , eprint = {papers/meijer07mondrian.pdf} , title = {{The Design and Implementation of Mondrian}} , author = {Meijer, Erik and Claessen, Koen} , booktitle = {Haskell Workshop} , year = {1997} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.9509|}} @inproceedings{meijer01dotnet-scripting-mondrian , eprint = {papers/meijer01dotnet-scripting-mondrian.pdf} , title = {{Scripting .NET Using Mondrian}} , author = {Meijer, Erik and Perry, Nigel and Yzendoorn, Arjan van} , booktitle = {ECOOP} , year = {2001}} @misc{www04haskell-dotnet , eprint = {papers/www04haskell-dotnet.pdf} , title = {{The Haskell.net Project}} , year = {2004} , howpublished = {\verb|http://www.cin.ufpe.br/~haskell/haskelldotnet/|}} @article{monteiro05functional-to-dotnet , eprint = {papers/monteiro05functional-to-dotnet.pdf} , title = {{Compiling Non-strict Functional Languages for the .NET Platform}} , author = {Monteiro, Monique and Ara\'ujo, Mauro and Borges, Rafael and Santos, Andr\'e} , journal = {Journal of Universal Computer Science} , pages = {1255-1274} , number = {7} , volume = {11} , year = {2005}} @misc{www12uhc-js-backend , eprint = {papers/www12uhc-js-backend.pdf} , title = {{The Utrecht Haskell Compiler JavaScript Backend Page}} , year = {2012} , howpublished = {\verb|http://uu-computerscience.github.com/uhc-js/|}} %% Created using Papers on Fri, 25 Sep 2015. %% http://papersapp.com/papers/ @incollection{Winant2014part-tysig, author = {Winant, Thomas and Devriese, Dominique and Piessens, Frank and Schrijvers, Tom}, title = {{Partial Type Signatures for Haskell}}, booktitle = {Practical Aspects of Declarative Languages}, year = {2014}, editor = {Flatt, Matthew and Guo, Hai-Feng}, pages = {17--32}, publisher = {Springer International Publishing}, keywords = {UHC cited, haskell, Hindley-Milner type inference, (partial) type signatures, wildcards}, doi = {10.1007/978-3-319-04132-2_2}, isbn = {978-3-319-04131-5}, language = {English}, rating = {0}, date-added = {2015-09-25T22:00:27GMT}, date-modified = {2015-09-25T22:01:06GMT}, url = {http://dx.doi.org/10.1007/978-3-319-04132-2_2}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Winant-2014-Partial_Type_Signatures_for_Haskell.pdf}, file = {{Winant-2014-Partial_Type_Signatures_for_Haskell.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Winant-2014-Partial_Type_Signatures_for_Haskell.pdf:application/pdf}}, uri = {\url{papers2://publication/doi/10.1007/978-3-319-04132-2_2}} } @techreport{www09uhc, author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S Doaitse}, title = {{UHC Utrecht Haskell Compiler}}, year = {2009}, publisher = {\verb|http://www.cs.uu.nl/wiki/UHC|}, keywords = {UHC cited}, rating = {0}, date-added = {2014-03-23T12:06:43GMT}, date-modified = {2015-09-25T15:00:59GMT}, url = {http://www.cs.uu.nl/wiki/UHC}, uri = {\url{papers2://publication/uuid/4E1F80F3-4E9E-44EB-B890-2263279A8232}} } @article{Vytiniotis:2011cs, author = {Vytiniotis, Dimitrios and Peyton Jones, Simon and Schrijvers, Tom and Sulzmann, Martin}, title = {{OUTSIDEIN(X) Modular type inference with local assumptions}}, journal = {Journal of Functional Programming}, year = {2011}, volume = {21}, pages = {333--412}, affiliation = {Univ Ghent, Ghent, Belgium}, keywords = {UHC cited}, doi = {10.1017/S0956796811000098}, language = {English}, rating = {0}, date-added = {2012-03-27T10:05:34GMT}, date-modified = {2015-09-25T21:15:13GMT}, abstract = {Advanced type system features, such as GADTs, type classes and type families, have proven to be invaluable language extensions for ensuring data invariants and program correctness. Unfortunately, they pose a tough problem for type inference when they are used as local type assumptions. Local type assumptions often result in the lack of principal types and cast the generalisation of local let-bindings prohibitively difficult to implement and specify. User-declared axioms only make this situation worse. In this paper, we explain the problems and - perhaps controversially - argue for abandoning local let-binding generalisation. We give empirical results that local let generalisation is only sporadically used by Haskell programmers. Moving on, we present a novel constraint-based type inference approach for local type assumptions. Our system, called OUTSIDEIN(X), is parameterised over the particular underlying constraint domain X, in the same way as HM(X). This stratification allows us to use a common metatheory and inference algorithm. OUTSIDEIN(X) extends the constraints of X by introducing implication constraints on top. We describe the strategy for solving these implication constraints, which, in turn, relies on a constraint solver for X. We characterise the properties of the constraint solver for X so that the resulting algorithm only accepts programs with principal types, even when the type system specification accepts programs that do not enjoy principal types. Going beyond the general framework, we give a particular constraint solver for X = type classes + GADTs + type families, a non-trivial challenge in its own right. This constraint solver has been implemented and distributed as part of GHC 7.}, url = {http://journals.cambridge.org/abstract_S0956796811000098}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf}, file = {{Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:application/pdf;Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:application/pdf}}, uri = {\url{papers2://publication/doi/10.1017/S0956796811000098}} } @mastersthesis{geest07cnstr-tycls-ext, author = {Geest, Gerrit van den}, title = {{Constraints for Type Class Extensions}}, school = {Universiteit Utrecht, Department of Information and Computing Sciences}, year = {2007}, publisher = {Universiteit Utrecht, Department of Information and Computing Sciences}, keywords = {UHC cited}, read = {Yes}, rating = {0}, date-added = {2012-03-27T10:00:03GMT}, date-modified = {2015-09-25T15:00:39GMT}, url = {http://www.open.ou.nl/bhr/vandengeest07thesis.pdf}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Geest-2007-Constraints_for_Type_Class_Extensions.pdf}, file = {{Geest-2007-Constraints_for_Type_Class_Extensions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Geest-2007-Constraints_for_Type_Class_Extensions.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/4BB9556E-DA44-45A3-9329-BFF57A10FB11}} } @phdthesis{dijkstra05phd, author = {Dijkstra, Atze}, title = {{Stepping through Haskell}}, school = {Utrecht University, Department of Information and Computing Sciences}, year = {2005}, publisher = {Utrecht University, Department of Information and Computing Sciences}, keywords = {UHC cited}, rating = {0}, date-added = {2012-03-27T09:59:59GMT}, date-modified = {2015-09-25T22:05:50GMT}, url = {http://www.cs.uu.nl/groups/ST/Ehc/WebHome}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Dijkstra-2005-Stepping_through_Haskell.pdf}, file = {{Dijkstra-2005-Stepping_through_Haskell.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Dijkstra-2005-Stepping_through_Haskell.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/916E8D08-15AC-420C-A300-0982A18AEA40}} } @inproceedings{peytonjones03lex-scope-tvs, author = {Peyton Jones, Simon and Shields, Mark B.}, title = {{Lexically-scoped type variables}}, booktitle = {Submitted to ICFP'04}, publisher = {\verb|http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars/|}, keywords = {UHC cited}, rating = {0}, date-added = {2012-03-27T09:59:59GMT}, date-modified = {2015-09-25T20:49:07GMT}, url = {http://research.microsoft.com/en-us/um/people/simonpj/papers/scoped-tyvars/scoped.pdf}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf}, file = {{Peyton_Jones--Lexically-scoped_type_variables-2.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf:application/pdf;Peyton_Jones--Lexically-scoped_type_variables-2.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/55E48001-E8FC-42BD-98A4-486903C14594}} } @inproceedings{dijkstra09uhc-arch, author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S Doaitse}, title = {{The architecture of the Utrecht Haskell compiler}}, booktitle = {Haskell Symposium 2009 }, year = {2009}, publisher = { ACM Request Permissions}, month = sep, doi = {10.1145/1596638.1596650}, read = {Yes}, rating = {0}, date-added = {2012-03-26T21:14:59GMT}, date-modified = {2015-09-11T12:16:58GMT}, abstract = {In this paper we describe the architecture of the Utrecht Haskell Compiler (UHC). UHC is a new Haskell compiler, that supports most (but not all) Haskell 98 features, plus some experimental extensions. It targets multiple backends, including a bytecode}, url = {http://portal.acm.org/citation.cfm?id=1596638.1596650&coll=DL&dl=GUIDE&CFID=74202122&CFTOKEN=33843140}, uri = {\url{papers2://publication/doi/10.1145/1596638.1596650}} } \ No newline at end of file +@inproceedings{borras88centaur-sys , eprint = {papers/borras88centaur-sys.pdf} , title = {{CENTAUR: the system}} , author = {Borras, P. and Cl\'ement, D. and Despeyroux, Th. and Incerpi, J. and Kahn, G.} , booktitle = {Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, SIGPLAN 24(2)} , editor = {Peter Henderson} , month = {November} , organization = {ACM} , pages = {14-24} , year = {1988}} @book{fp:type-theory:func-prog , eprint = {papers/fp:type-theory:func-prog.pdf} , title = {{Type Theory and Functional Programming}} , author = {Thompson, Simon} , publisher = {Addison-Wesley} , year = {1991}} @inproceedings{ipt:type-infer-milner , eprint = {papers/ipt:type-infer-milner.pdf} , title = {{Principal type-schemes for functional programs}} , author = {Damas, Luis and Milner, Robin} , booktitle = {Proceedings of Principles of Programming Languages (POPL)} , organization = {ACM} , pages = {207-212} , publisher = {ACM} , year = {1982}} @book{ipt:impl-func-prog-lang , eprint = {papers/ipt:impl-func-prog-lang.pdf} , title = {{The Implementation of Functional Programming Languages}} , author = {Peyton Jones, Simon L.} , publisher = {Prentice Hall} , year = {1987}} @book{ipt:theory-of-objects , eprint = {papers/ipt:theory-of-objects.pdf} , title = {{A Theory of Objects}} , author = {Abadi, Martin and Cardelli, Luca} , publisher = {Springer} , year = {1996}} @inproceedings{ipt:typeful-progr , eprint = {papers/ipt:typeful-progr.pdf} , title = {{Typeful programming}} , author = {Cardelli, Luca} , booktitle = {Formal Description of Programming Concepts} , publisher = {Springer-Verlag} , series = {IFIP State of the Art Reports Series} , year = {1989} , howpublished = {\verb|http://gatekeeper.dec.com/pub/DEC/SRC/research-reports/abstracts/src-rr-045.html|}} @inproceedings{pcjava:haskell-java-vm-compiler , eprint = {papers/pcjava:haskell-java-vm-compiler.pdf} , title = {{A Haskell to Java Virtual Machine Code Compiler}} , author = {Wakeling, D.} , booktitle = {Proceedings of the 9th International Workshop on the Implementation of Functional Languages} , month = {September} , pages = {39-52} , number = {1467} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1997} , howpublished = {\verb|http://www.dcs.ex.ac.uk/~david/en/research/previous/java/index.htm|}} @inproceedings{func:lazy:java:parser-combinator , eprint = {papers/func:lazy:java:parser-combinator.pdf} , title = {{Lazy Functional Parser Combinators in Java}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Proceedings of 1st Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL)} , pages = {11-42} , publisher = {John von Neumann Institute for Computing} , year = {2001}} @article{moor00first-class-ag , eprint = {papers/moor00first-class-ag.pdf} , title = {{First Class Attribute Grammars}} , author = {Moor, Oege de and Backhouse, Kevin and Swierstra, S. Doaitse} , journal = {Informatica: An International Journal of Computing and Informatics} , month = {June} , pages = {329-341} , number = {2} , volume = {24} , year = {2000}} @book{typing:types-prog-lang:pierce , eprint = {papers/typing:types-prog-lang:pierce.pdf} , title = {{Types and Programming Languages}} , author = {Pierce, Benjamin C.} , publisher = {MIT Press} , year = {2002} , howpublished = {\verb|http://www.cis.upenn.edu/~bcpierce/tapl/|}} @inproceedings{swierstra99comb-lang , eprint = {papers/swierstra99comb-lang.pdf} , title = {{Designing and Implementing Combinator Languages}} , author = {Swierstra, S. Doaitse and Azero Alocer, P.R. and Saraiava, J.} , booktitle = {Advanced Functional Programming, Third International School, AFP'98} , editor = {Doaitse Swierstra and Pedro Henriques and Jos\'{e} Oliveira} , pages = {150-206} , number = {1608} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.cs.uu.nl/people/arthurb/ag.html|}} @article{duggan02check-multipclass , eprint = {papers/duggan02check-multipclass.pdf} , title = {{Type-Checking Multi-Parameter Type Classes}} , author = {Duggan, Dominic and Ophel, John} , journal = {Journal of Functional Programming} , year = {2002} , howpublished = {\verb|http://guinness.cs.stevens-tech.edu/~dduggan/Public/Papers/multi.pdf|}} @inproceedings{neubauer02more-high-poly , eprint = {papers/neubauer02more-high-poly.pdf} , title = {{Type Classes With More Higher-Order Polymorphism}} , author = {Neubauer, Matthias and Thiemann, Peter} , booktitle = {Proceedings of the seventh ACM SIGPLAN international conference on Functional programming} , year = {2002} , howpublished = {\verb|http://citeseer.nj.nec.com/neubauer02type.html|}} @article{faxen02semantics-haskell , eprint = {papers/faxen02semantics-haskell.pdf} , title = {{A Static Semantics for Haskell}} , author = {Fax\'en, Karl-Filip} , journal = {Journal of Functional Programming} , pages = {295} , number = {4} , volume = {12} , year = {2002} , howpublished = {\verb|http://www.it.kth.se/~kff/semantics.ps.gz|}} @inproceedings{peytonjones97typecl-explore , eprint = {papers/peytonjones97typecl-explore.pdf} , title = {{Type classes: an exploration of the design space}} , author = {Peyton Jones, Simon and Jones, Mark and Meijer, Erik} , booktitle = {Haskell Workshop} , year = {1997} , howpublished = {\verb|http://citeseer.nj.nec.com/peytonjones97type.html|}} @inproceedings{wadler88how-ad-hoc-poly , eprint = {papers/wadler88how-ad-hoc-poly.pdf} , title = {{How to make ad-hoc polymorphism less ad-hoc}} , author = {Wadler, Phil and Blott, Stephen} , booktitle = {Conference Record of the 16th Annual {ACM} Symposium on Principles of Programming Languages} , pages = {60--76} , year = {1988} , howpublished = {\verb|http://citeseer.nj.nec.com/wadler88how.html|}} @inproceedings{peterson93impl-type-class , eprint = {papers/peterson93impl-type-class.pdf} , title = {{Implementing Type Classes}} , author = {Peterson, John and Jones, Mark} , booktitle = {{SIGPLAN} Conference on Programming Language Design and Implementation} , pages = {227-236 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/peterson93implementing.html|}} @inproceedings{augustsson93impl-hask-overl , eprint = {papers/augustsson93impl-hask-overl.pdf} , title = {{Implementing Haskell overloading}} , author = {Augustsson, Lennart} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {65-73 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/augustsson93implementing.html|}} @article{hall96type-class-haskell , eprint = {papers/hall96type-class-haskell.pdf} , title = {{Type Classes in Haskell}} , author = {Hall, Cordelia and Hammond, Kevin and Peyton Jones, Simon and Wadler, Philip} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {109-138} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {18} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/227699.227700|}} @inproceedings{kaes88parametric-overl , eprint = {papers/kaes88parametric-overl.pdf} , title = {{Parametric overloading in polymorphic programming languages }} , author = {Kaes, Stefan} , booktitle = {Proc. 2nd European Symposium on Programming} , year = {1988}} @article{damiani03rank2-localdefs , eprint = {papers/damiani03rank2-localdefs.pdf} , title = {{Rank 2 intersection types for local definitions and conditional expressions}} , author = {Damiani, Ferrucio} , journal = {ACM TOPLAS} , month = {July} , pages = {401-451} , number = {4} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/778559.778560|}} @article{rhiger03embedded-langs , eprint = {papers/rhiger03embedded-langs.pdf} , title = {{A Foundation for Embedded Languages}} , author = {Rhiger, Morten} , journal = {ACM TOPLAS} , month = {may} , pages = {291-315} , number = {3} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/641909.641910|}} @article{saha03analysis-quanttype , eprint = {papers/saha03analysis-quanttype.pdf} , title = {{Intentional Analysis of Quantified Types}} , author = {Saha, Bratin and Trifonov, Valery and Shao, Zhong} , journal = {ACM TOPLAS} , month = {March} , pages = {159-209} , number = {2} , volume = {25} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/641888.641889|}} @article{appel02rec-types-pcc , eprint = {papers/appel02rec-types-pcc.pdf} , title = {{An Indexed Model of Recursive Types for Foundational Proof-Carrying Code}} , author = {Appel, Andrew W. and McAllester, David} , journal = {ACM TOPLAS} , month = {September} , pages = {657-683} , number = {5} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/504709.504712|}} @article{igarashi01fwjava-core-calc , eprint = {papers/igarashi01fwjava-core-calc.pdf} , title = {{Featherweight Java: A Minimal Core Calculus for Java and GJ}} , author = {Igarishi, Atsushi and Pierce, Benjamin C. and Wadler, Philip} , journal = {ACM TOPLAS} , month = {may} , pages = {396 - 450 } , number = {3} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/503502.503505|}} @article{league02fwjava-typepreserve , eprint = {papers/league02fwjava-typepreserve.pdf} , title = {{Type-preserving compilation of Featherweight Java}} , author = {League, Christopher and Shao, Zhong and Trifonov, Valery} , journal = {ACM TOPLAS} , month = {March} , pages = {112-153} , number = {2} , volume = {24} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/514952.514954|}} @article{knoblock01java-subtype , eprint = {papers/knoblock01java-subtype.pdf} , title = {{Type Elaboration and Subtype Completion for Java Bytecode}} , author = {Knoblock, Todd B. and Rehof, Jakob} , journal = {ACM TOPLAS} , month = {March} , pages = {243 - 272 } , number = {2} , volume = {23} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/383043.383045|}} @article{grossman00synt-type-abstr , eprint = {papers/grossman00synt-type-abstr.pdf} , title = {{Syntactic type abstraction}} , author = {Grossman, Dan and Morrisett, Greg and Zdancewic, Steve} , journal = {ACM TOPLAS} , month = {November} , pages = {1037-1080} , number = {6} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/371880.371887|}} @article{leroy00typebased-anal-exc , eprint = {papers/leroy00typebased-anal-exc.pdf} , title = {{Type-based analysis of uncaught exceptions}} , author = {Leroy, Xavier and Pessaux, Francois} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {340-377} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/349214.349230|}} @article{pierce00local-type-inference , eprint = {papers/pierce00local-type-inference.pdf} , title = {{Local Type Inference}} , author = {Pierce, Benjamin C. and Turner, David N.} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {January} , pages = {1-44} , number = {1} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {22} , year = {2000} , howpublished = {\verb|http://doi.acm.org/10.1145/345099.345100|}} @article{lamport99speclang-typed , eprint = {papers/lamport99speclang-typed.pdf} , title = {{Should your specification language be typed}} , author = {Lamport, Leslie and Paulson, Lawrence C.} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {may} , pages = {502-526} , number = {3} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://doi.acm.org/10.1145/319301.319317|}} @article{morrisett99systemF-TAL , eprint = {papers/morrisett99systemF-TAL.pdf} , title = {{From System F to Typed Assembly Language}} , author = {Morrisett, Greg and Walker, David and Crary, Karl and Glew, Neil} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {may} , pages = {527-568} , number = {3} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://citeseer.nj.nec.com/86027.html|}} @article{duggan99dyntype-distr-polym , eprint = {papers/duggan99dyntype-distr-polym.pdf} , title = {{Dynamic Typing for Distributed Programming in Polymorphic Languages}} , author = {Duggan, Dominic} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {January} , pages = {11-45} , number = {1} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {21} , year = {1999} , howpublished = {\verb|http://doi.acm.org/10.1145/314602.314604|}} @article{lee98hindley-top-bottom , eprint = {papers/lee98hindley-top-bottom.pdf} , title = {{Proofs about a folklore let-polymorphic type inference algorithm }} , author = {Lee, Oukseh and Yi, Kwangkeun} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {July} , pages = {707-723} , number = {4} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {20} , year = {1998} , howpublished = {\verb|http://citeseer.nj.nec.com/151436.html|}} @article{douence98func-lang-impl , eprint = {papers/douence98func-lang-impl.pdf} , title = {{A systematic study of functional language implementations }} , author = {Douence, Remi and Fradet, Pascal} , booktitle = {European Symposium On Programming} , institution = {University of Glasgow} , school = {University of Glasgow} , journal = {ACM TOPLAS} , month = {March} , pages = {344-387} , number = {2} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {20} , year = {1998} , howpublished = {\verb|http://doi.acm.org/10.1145/276393.276397|}} @article{remy98objective-ml , eprint = {papers/remy98objective-ml.pdf} , title = {{Objective ML: An Effective Object-Oriented Extension to ML}} , author = {R\'emy, Didier and Vouillon, Jerome} , journal = {Theory and Practice of Object Systems} , pages = {27-50} , number = {1} , volume = {4} , year = {1998} , howpublished = {\verb|http://citeseer.nj.nec.com/remy98objective.html|}} @inproceedings{chen92param-type-class , eprint = {papers/chen92param-type-class.pdf} , title = {{Parametric type classes}} , author = {Chen, Kung and Hudak, Paul and Odersky, Martin} , booktitle = {ACM Symposium on Lisp and Functional Programming} , year = {1992} , howpublished = {\verb|http://www.ubka.uni-karlsruhe.de/cgi-bin/psview?document=/1992/informatik/18|}} @techreport{stuckey02theory-overloading , eprint = {papers/stuckey02theory-overloading.pdf} , title = {{A Theory of Overloading}} , address = {Parkville 3052, Australia} , author = {Stuckey, Peter J. and Sulzmann, Martin} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , month = {June} , number = {TR2002/2} , year = {2002}} @techreport{rossberg02theory-overload2 , eprint = {papers/rossberg02theory-overload2.pdf} , title = {{A Theory of Overloading Part II: Semantics and Coherence}} , address = {Parkville 3052, Australia} , author = {Rossberg, Andreas and Sulzmann, Martin} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , month = {March} , number = {TR2002/2} , year = {2002}} @inproceedings{neubauer01funct-logic-overl , eprint = {papers/neubauer01funct-logic-overl.pdf} , title = {{Functional Logic Overloading}} , author = {Neubauer, Matthias and Thiemann, Peter and Gasbichler, Martin and Sperber, Michael} , booktitle = {Symposium on Principles of Programming Languages} , pages = {233-244} , year = {2001} , howpublished = {\verb|http://citeseer.nj.nec.com/neubauer01functional.html|}} @inproceedings{nipkow93check-typeclass , eprint = {papers/nipkow93check-typeclass.pdf} , title = {{Type Checking Type Classes}} , author = {Nipkow, Tobias and Prehofer, Christian} , booktitle = {Symposium on Principles of Programming Languages} , pages = {409--418 } , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/nipkow93type.html|}} @book{jones94phd-qual-types , eprint = {papers/jones94phd-qual-types.pdf} , title = {{Qualified Types, Theory and Practice}} , author = {Jones, Mark P.} , publisher = {Cambridge Univ. Press} , year = {1994} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/thesis.html|}} @inproceedings{jones99thih , eprint = {papers/jones99thih.pdf} , title = {{Typing Haskell in Haskell}} , author = {Jones, Mark P.} , booktitle = {Haskell Workshop} , year = {1999} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/thih/thih-sep1-1999/|}} @misc{jones00thih , eprint = {papers/jones00thih.pdf} , title = {{Typing Haskell in Haskell}} , author = {Jones, Mark P.} , booktitle = {Haskell Workshop} , year = {2000} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/thih/|}} @inproceedings{jones99lightweight-ext-rec , eprint = {papers/jones99lightweight-ext-rec.pdf} , title = {{Lightweight Extensible Records for Haskell}} , author = {Jones, Mark P. and Peyton Jones, Simon} , booktitle = {Haskell Workshop} , publisher = {Utrecht University, Institute of Information and Computing Sciences} , year = {1999} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/lightrec.html|}} @inproceedings{jones95simplify-qualtype , eprint = {papers/jones95simplify-qualtype.pdf} , title = {{Simplifying and improving qualified types}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the seventh international conference on Functional programming languages and computer architecture} , pages = {160 - 169 } , year = {1995} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/fpca95.pdf|}} @inproceedings{wadler02girard-reynolds-iso , eprint = {papers/wadler02girard-reynolds-iso.pdf} , title = {{The Girard-Reynolds isomorphism }} , author = {Wadler, Phil} , booktitle = {Theoretical Aspects of Computer Software} , month = {October} , year = {2001} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/topics/parametricity.html|}} @inproceedings{wadler89theorems-for-free , eprint = {papers/wadler89theorems-for-free.pdf} , title = {{Theorems for free!}} , author = {Wadler, Phil} , booktitle = {4'th International Conference on Functional Programming and Computer Architecture} , month = {September} , year = {1989} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/topics/parametricity.html|}} @misc{wadler00proofs-are-programs , eprint = {papers/wadler00proofs-are-programs.pdf} , title = {{Proofs are Programs: 19th Century Logic and 21st Century Computing}} , author = {Wadler, Phil} , month = {November} , year = {2000} , howpublished = {\verb|http://www.research.avayalabs.com/user/wadler/papers/frege/frege.pdf|}} @inproceedings{peytonjones03lex-scope-tvs , eprint = {papers/peytonjones03lex-scope-tvs.pdf} , title = {{Lexically-scoped type variables}} , author = {Peyton Jones, Simon and Shields, Mark} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars/|}} @inproceedings{jones00class-fundep , eprint = {papers/jones00class-fundep.pdf} , title = {{Type Classes with Functional Dependencies}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the 9th European Symposium on Programming, ESOP 2000,} , month = {March} , year = {2000} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/fundeps-esop2000.pdf|}} @inproceedings{jones93constr-class , eprint = {papers/jones93constr-class.pdf} , title = {{A system of constructor classes: overloading and implicit higher-order polymorphism}} , author = {Jones, Mark P.} , booktitle = {FPCA '93: Conference on Functional Programming and Computer Architecture, Copenhagen, Denmark } , pages = {52--61} , year = {1993 } , howpublished = {\verb|http://citeseer.nj.nec.com/jones95system.html|}} @techreport{jones94simpl-qualtype , eprint = {papers/jones94simpl-qualtype.pdf} , title = {{Simplifying and improving qualified types}} , address = {P.O. Box 208285, New Haven, CT 06520-8285} , author = {Jones, Mark P.} , booktitle = {Proceedings of the seventh international conference on Functional programming languages and computer architecture} , institution = {Yale University, Department of Computer Science} , school = {Yale University, Department of Computer Science} , month = {June} , number = {YALEU/DCS/RR-1040} , year = {1994} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/RR-1040.pdf|}} @inproceedings{jones95overl-highpoly , eprint = {papers/jones95overl-highpoly.pdf} , title = {{Functional Programming with Overloading and Higher-Order Polymorphism}} , author = {Jones, Mark P.} , booktitle = {First International Spring School on Advanced Functional Programming Techniques, B{\aa}stad, Sweden} , month = {may} , number = {925} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1995} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/springschool.html|}} @techreport{jones93coherence-qual , eprint = {papers/jones93coherence-qual.pdf} , title = {{Coherence for qualified types}} , address = {New Haven, Connecticut, USA } , author = {Jones, Mark P.} , institution = {Yale University} , school = {Yale University} , number = {YALEU/DCS/RR-989 } , year = {1993 } , howpublished = {\verb|citeseer.nj.nec.com/jones93coherence.html |}} @techreport{duponcheel94constr-class , eprint = {papers/duponcheel94constr-class.pdf} , title = {{On the expressive power of Constructor Classes }} , address = {Padualaan 14, 3584 CH Utrecht, The Netherlands } , author = {Duponcheel, Luc and Meijer, Erik} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , year = {1995} , howpublished = {\verb|citeseer.nj.nec.com/duponcheel94expressive.html |}} @inproceedings{jones92qual-types , eprint = {papers/jones92qual-types.pdf} , title = {{A Theory of Qualified Types}} , author = {Jones, Mark P.} , booktitle = {ESOP '92, Proceedings of the 4th European Symposium on Programming, Rennes, France} , editor = {Krieg-Bruckner, Bernd} , month = {February} , pages = {287-306 } , number = {582 } , publisher = {Springer-Verlag} , series = {LNCS} , year = {1992} , howpublished = {\verb|http://citeseer.nj.nec.com/jones92theory.html|}} @article{jones95constr-class-jfp , eprint = {papers/jones95constr-class-jfp.pdf} , title = {{A system of constructor classes: overloading and implicit higher-order polymorphism}} , author = {Jones, Mark P.} , booktitle = {FPCA '93: Conference on Functional Programming and Computer Architecture, Copenhagen, Denmark } , journal = {Journal of Functional Programming} , month = {January} , pages = {1--35} , number = {1} , volume = {5} , year = {1995}} @inproceedings{lewis00implicit-param , eprint = {papers/lewis00implicit-param.pdf} , title = {{Implicit Parameters: Dynamic Scoping with Static Types}} , author = {Lewis, Jeffrey R. and Shields, Mark B. and Meijer, Erik and Launchbury, John} , booktitle = {Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts} , month = {January} , pages = {108-118} , year = {2000}} @inproceedings{faxen03hask-princ-types , eprint = {papers/faxen03hask-princ-types.pdf} , title = {{Haskell and Principal Types}} , author = {Fax\'en, Karl-Filip} , booktitle = {Haskell Workshop} , pages = {88-97} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/871895.871905|}} @inproceedings{kennedy94dimension-type , eprint = {papers/kennedy94dimension-type.pdf} , title = {{Dimension Types}} , author = {Kennedy, Andrew} , booktitle = {Programming Languages and Systems---{ESOP}'94, 5th European Symposium on Programming } , pages = {348--362} , number = {788} , publisher = {Springer} , series = {LNCS} , year = {1994} , howpublished = {\verb|http://citeseer.nj.nec.com/kennedy94dimension.html|}} @inproceedings{neubauer02fun-logic-overl , eprint = {papers/neubauer02fun-logic-overl.pdf} , title = {{Functional Logic Overloading}} , author = {Neubaurer, Matthias and Thiemann, Peter and Gasbichler, Martin and Sperber, Michael} , booktitle = {Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages} , pages = {233 - 244} , year = {2002} , howpublished = {\verb|http://portal.acm.org/citation.cfm?doid=503272.503294|}} @inproceedings{sulzmann97constrained-type , eprint = {papers/sulzmann97constrained-type.pdf} , title = {{Type Inference with Constrained Types}} , author = {Odersky, Martin and Sulzmann, Martin and Wehr, Martin} , booktitle = {Fourth International Workshop on Foundations of Object-Oriented Programming ({FOOL} 4)} , year = {1997} , howpublished = {\verb|citeseer.nj.nec.com/article/sulzmann97type.html|}} @misc{sulzmann03chameleon , eprint = {papers/sulzmann03chameleon.pdf} , title = {{An Overview of the Chameleon System}} , author = {Sulzmann, Martin} , year = {2003}} @inproceedings{damas82principal-type , eprint = {papers/damas82principal-type.pdf} , title = {{Principal type-schemes for functional programs}} , author = {Damas, Luis and Milner, Robin} , booktitle = {9th symposium Principles of Programming Languages} , pages = {207-212} , publisher = {ACM Press} , year = {1982}} @article{aiken99intro-set-constr-anal , eprint = {papers/aiken99intro-set-constr-anal.pdf} , title = {{Introduction to Set Constraint-Based Program Analysis}} , author = {Aiken, Alexander} , journal = {Science of Computer Programming} , pages = {79-111} , number = {1} , volume = {35} , year = {1999} , howpublished = {\verb|http://www.cs.berkeley.edu/~aiken/publications/papers/scp99.ps|}} @inproceedings{diatchki02hask-module , eprint = {papers/diatchki02hask-module.pdf} , title = {{A Formal Specification of the Haskell 98 Module System}} , author = {Diatchki, Iavor S. and Jones, Mark P. and Hallgren, Thomas} , booktitle = {Haskell Workshop} , pages = {17-29} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581690.581692|}} @article{martelli82eff-unif-alg , eprint = {papers/martelli82eff-unif-alg.pdf} , title = {{An Efficient Unification Algorithm}} , author = {Martelli, Alberto and Montanari, Ugo} , journal = {ACM TOPLAS} , month = {April} , pages = {258 - 282} , number = {2} , volume = {4} , year = {1982} , howpublished = {\verb|http://doi.acm.org/10.1145/357162.357169|}} @inproceedings{kanellakis91unification , eprint = {papers/kanellakis91unification.pdf} , title = {{Unification and {ML}-Type Reconstruction}} , author = {Kanellakis, Paris C. and Mairson, Harry G.} , booktitle = {Computational Logic - Essays in Honor of Alan Robinson} , year = {1991 } , howpublished = {\verb|http://citeseer.nj.nec.com/kanellakis91unification.html|}} @inproceedings{botlan03ml-power-f , eprint = {papers/botlan03ml-power-f.pdf} , title = {{ML-F, Raising ML to the Power of System F}} , author = {Botlan, Le, Didier and R\'emy, Didier} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://citeseer.nj.nec.com/564799.html|}} @misc{peytonjones04pract-inf-rank , eprint = {papers/peytonjones04pract-inf-rank.pdf} , title = {{Practical type inference for arbitrary-rank types}} , author = {Peyton Jones, Simon and Shields, Mark} , year = {2004}} @techreport{gaster96poly-ext-rec-var , eprint = {papers/gaster96poly-ext-rec-var.pdf} , title = {{A Polymorphic Type System for Extensible Records and Variants}} , author = {Gaster, Benedict R. and Jones, Mark P.} , institution = {Languages and Programming Group, Department of Computer Science, Nottingham} , school = {Languages and Programming Group, Department of Computer Science, Nottingham} , month = {November} , number = {NOTTCS-TR-96-3} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/gaster96polymorphic.html|}} @inproceedings{shields01first-class-mod , eprint = {papers/shields01first-class-mod.pdf} , title = {{First-class Modules for Haskell}} , author = {Shields, Mark and Peyton Jones, Simon} , booktitle = {Ninth International Conference on Foundations of Object-Oriented Languages (FOOL 9), Portland, Oregon} , month = {December} , year = {2001}} @book{plasmeijer01clean-rep-2 , eprint = {papers/plasmeijer01clean-rep-2.pdf} , title = {{The Concurrent Clean Language Report (draft)}} , author = {Plasmeijer, Rinus and Eekelen, Marko van} , publisher = {Department of Software Technology, University of Nijmegen} , year = {2001} , howpublished = {\verb|http://www.cs.kun.nl/~clean/contents/body_contents.html|}} @inproceedings{hinze00derive-type-class , eprint = {papers/hinze00derive-type-class.pdf} , title = {{Derivable Type Classes}} , author = {Hinze, Ralf and Peyton Jones, Simon} , booktitle = {Haskell Workshop} , year = {2000} , howpublished = {\verb|http://www.informatik.uni-bonn.de/~ralf/publications/Derive.ps.gz|}} @misc{barendsen94uniq-theor-pract , eprint = {papers/barendsen94uniq-theor-pract.pdf} , title = {{Uniqueness Typing in Theory and Practice}} , author = {Barendsen, E. and Smetsers, J.} , year = {1994} , howpublished = {\verb|http://citeseer.nj.nec.com/barendsen94uniqueness.html|}} @article{barendsen96uniq-graph-sem , eprint = {papers/barendsen96uniq-graph-sem.pdf} , title = {{Uniqueness Typing for Functional Languages with Graph Rewriting Semantics}} , author = {Barendsen, Erik and Smetsers, Sjaak} , journal = {Mathematical Structures in Computer Science} , pages = {579-612} , number = {6} , volume = {6} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/barendsen96uniquenes.html|}} @inproceedings{kahl01named-instance , eprint = {papers/kahl01named-instance.pdf} , title = {{Named Instances for Haskell Type Classes}} , author = {Kahl, Wolfram and Scheffczyk, Jan} , booktitle = {Haskell Workshop} , year = {2001} , howpublished = {\verb|http://www.informatik.uni-bonn.de/~ralf/hw2001/4.html|}} @inproceedings{pfeifer99polytypic , eprint = {papers/pfeifer99polytypic.pdf} , title = {{Polytypic proof construction}} , author = {Pfeifer, Holger and Rue{\ss}, Harals} , booktitle = {Proceedings 12th Int. Conf. on Theorem Proving in Higher Order Logics, TPHOLs'99} , pages = {55-72} , number = {1690} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999} , howpublished = {\verb|citeseer.nj.nec.com/pfeifer99polytypic.html|}} @inproceedings{dybjer99finite-axiomitiz , eprint = {papers/dybjer99finite-axiomitiz.pdf} , title = {{A Finite Axiomatization of Inductive-Recursive Definitions}} , author = {Dybjer, Peter and Setzer, Anton} , booktitle = {Typed Lambda Calculus and Applications} , pages = {129-146} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.math.uu.se/~setzer/articles/index.html|}} @misc{coquand94typeth-progr , eprint = {papers/coquand94typeth-progr.pdf} , title = {{Type Theory and Programming}} , author = {Coquand, Thierry and Nordstrom, Bengt and Smith, Jan M. and Sydow, Bjorn} , year = {1994} , howpublished = {\verb|ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/typetheoryandprogramming.ps.Z|}} @misc{altenkirch00taste-intuit-type , eprint = {papers/altenkirch00taste-intuit-type.pdf} , title = {{A Taste of Intuitionistic Type Theory}} , author = {Altenkirch, Thorsten} , year = {2000} , howpublished = {\verb|http://www.cs.nott.ac.uk/~txa/itt/|}} @misc{miguel03typeth-impred , eprint = {papers/miguel03typeth-impred.pdf} , title = {{Type Theory: Impredicative Part}} , author = {Miguel, Alexandre} , year = {2003} , howpublished = {\verb|http://www.math.chalmers.se/~miquel/|}} @phdthesis{magnusson95alf-impl , eprint = {papers/magnusson95alf-impl.pdf} , title = {{The Implementation of ALF - a Proof Editor based on Martin-L\"of's Monomorphic Type Theory with Explicit Substitution}} , author = {Magnusson, Lena} , year = {1995} , howpublished = {\verb|citeseer.nj.nec.com/magnusson95implementation.html|}} @article{dybjer00inductrec-inialg , eprint = {papers/dybjer00inductrec-inialg.pdf} , title = {{Induction-Recursion and Initial Algebras}} , author = {Dybjer, Peter and Setzer, Anton} , year = {2000} , howpublished = {\verb|http://www.cs.chalmers.se/~peterd/|}} @inproceedings{fokkinga94intro-categ , eprint = {papers/fokkinga94intro-categ.pdf} , title = {{A Gentle Introduction to Category Theory --- the calculational approach}} , author = {Fokkinga, Maarten} , booktitle = {Lecture Notes of the {STOP} 1992 Summerschool on Constructive Algorithmics} , month = {September} , pages = {1-72} , publisher = {Utrecht University, Institute of Information and Computing Sciences} , year = {1994} , howpublished = {\verb|http://wwwhome.cs.utwente.nl/~fokkinga/mmf92b.html|}} @inproceedings{cheney02lightweight , eprint = {papers/cheney02lightweight.pdf} , title = {{A Lightweight Implementation of Generics and Dynamics}} , author = {Cheney, James and Hinze, Ralf} , booktitle = {Haskell Workshop} , year = {2002} , howpublished = {\verb|http://citeseer.nj.nec.com/cheney02lightweight.html|}} @inproceedings{johnsson87attr-as-fun , eprint = {papers/johnsson87attr-as-fun.pdf} , title = {{Attribute grammars as a functional programming paradigm}} , author = {Johnsson, Thomas} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {154-173} , year = {1987} , howpublished = {\verb|http://citeseer.csail.mit.edu/johnsson87attribute.html|}} @inproceedings{odersky95overload-2nd , eprint = {papers/odersky95overload-2nd.pdf} , title = {{A Second Look at Overloading}} , author = {Odersky, Martin and Wadler, Philip and Wehr, Martin} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {135-146} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/172417.html|}} @article{laufer96class-existential , eprint = {papers/laufer96class-existential.pdf} , title = {{Type Classes with Existential Types}} , author = {Laufer, Konstantin} , journal = {Journal of Functional Programming} , month = {May} , pages = {485-517} , number = {3} , volume = {6} , year = {1996} , howpublished = {\verb|citeseer.ist.psu.edu/laeufer95type.html|}} @inproceedings{wadler87views , eprint = {papers/wadler87views.pdf} , title = {{Views: A Way for Pattern Matching to Cohabit with Data Abstraction}} , author = {Wadler, Philip} , booktitle = {Principles of Programming Languages} , editor = {Munchnik, Steve} , pages = {307-322} , year = {1987} , howpublished = {\verb|http://citeseer.ist.psu.edu/wadler87views.html|}} @book{peytonjones03has98-rev-rep , eprint = {papers/peytonjones03has98-rev-rep.pdf} , title = {{Haskell 98, Language and Libraries, The Revised Report}} , author = {Peyton Jones, Simon} , publisher = {Cambridge Univ. Press} , year = {2003}} @misc{www04ghc , eprint = {papers/www04ghc.pdf} , title = {{The Glasgow Haskell Compiler}} , author = {Marlow, Simon and Peyton Jones, Simon} , year = {2004} , howpublished = {\verb|http://www.haskell.org/ghc/|}} @misc{baars04ag-www , eprint = {papers/baars04ag-www.pdf} , title = {{Attribute Grammar System}} , author = {Baars, Arthur and Swierstra, S. Doaitse and L\"oh, Andres} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Center/AttributeGrammarSystem|}} @inproceedings{kfoury94direct , eprint = {papers/kfoury94direct.pdf} , title = {{A Direct Algorithm for Type Inference in the Rank-2 Fragment of Second-Order lambda-Calculus}} , author = {Kfoury, A.J. and Wells, J.B.} , booktitle = {Proceedings of the 1994 ACM conference on LISP and functional programming} , pages = {196-207} , year = {1994} , howpublished = {\verb|http://doi.acm.org/10.1145/182409.182456|}} @techreport{jim95rank , eprint = {papers/jim95rank.pdf} , title = {{Rank 2 type systems and recursive definitions}} , author = {Jim, Trevor} , institution = {MIT} , school = {MIT} , number = {MIT/LCS TM-531} , year = {1995} , howpublished = {\verb|http://www.research.att.com/~trevor/papers.html|}} @inproceedings{kfoury99rank2-decid , eprint = {papers/kfoury99rank2-decid.pdf} , title = {{Principality and Decidable Type Inference for Finite-Rank Intersection Types}} , author = {Kfoury, A.J. and Wells, J.B.} , booktitle = {Principles of Programming Languages} , journal = {Theoretical Computer Science} , pages = {161-174} , year = {1999} , howpublished = {\verb|http://www.church-project.org/reports/Kfo+Wel:POPL-1999.html|}} @article{kfoury03rank2-princ , eprint = {papers/kfoury03rank2-princ.pdf} , title = {{Principality and Type Inference for Intersection Types Using Expansion Variables}} , author = {Kfoury, A.J. and Wells, J.B.} , journal = {Theoretical Computer Science} , pages = {1-70} , number = {1-3} , volume = {311} , year = {2003} , howpublished = {\verb|http://www.church-project.org/reports/Kfo+Wel:TCSB-2004-v311n1-3.html|}} @article{kfoury93recursivetype , eprint = {papers/kfoury93recursivetype.pdf} , title = {{Type recursion in the presence of polymorphic recursion}} , author = {Kfoury, A.J. and Tiuryn, J. and Urzyczyn, P.} , journal = {ACM TOPLAS} , pages = {290-311} , number = {2} , volume = {15} , year = {1993} , howpublished = {\verb|http://www.cs.bu.edu/techreports/pdf/1993-019-recursivetype.pdf|}} @techreport{hallet04polyrec-ex , eprint = {papers/hallet04polyrec-ex.pdf} , title = {{Programming Examples needing Polymorphic Recursion}} , author = {Hallet, J.J. and Kfoury, A.J.} , institution = {Boston University} , school = {Boston University} , year = {2004} , howpublished = {\verb|http://www.church-project.org/reports/electronic/Hal+Kfo:BUCS-TR-2004-004.pdf|}} @techreport{vasconcellos03polyrec-impl , eprint = {papers/vasconcellos03polyrec-impl.pdf} , title = {{Practical Type Inference for Polymorphic Recursion: an Implementation in Haskell}} , author = {Vasconcellos, Cristiano and Figueiredo, Lucilia and Camarao, Carlos} , year = {2003} , howpublished = {\verb|http://www.dcc.ufmg.br/~camarao/sblp2003.pdf|}} @article{henglein91polyrec-infer , eprint = {papers/henglein91polyrec-infer.pdf} , title = {{Type inference with polymorphic recursion}} , author = {Henglein, Fritz} , journal = {ACM TOPLAS} , pages = {253-289} , number = {2} , volume = {15} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/169701.169692|}} @inproceedings{figueiredo01polyrec-princ , eprint = {papers/figueiredo01polyrec-princ.pdf} , title = {{Principal Typing and Mutual Recursion}} , author = {Figueiredo, Lucilia and Camarao, Carlos} , booktitle = {International Workshop on Functional and (Constraint) Logic Programming} , year = {2001} , howpublished = {\verb|http://www.informatik.uni-kiel.de/~wflp2001/proceedings/|}} @misc{dijkstra04ehc-web , eprint = {papers/dijkstra04ehc-web.pdf} , title = {{EHC Web}} , author = {Dijkstra, Atze} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Ehc/WebHome|}} @inproceedings{swierstra00parser-toytool , eprint = {papers/swierstra00parser-toytool.pdf} , title = {{Parser Combinators, from Toys to Tools}} , author = {Swierstra, S. Doaitse} , booktitle = {Haskell Workshop} , number = {41.1} , publisher = {Elsevier Science Publishers} , series = {Electronic Notes in Theoretical Computer Science} , year = {2000} , howpublished = {\verb|http://www.cs.uu.nl/~doaitse/#pubs|}} @inproceedings{swierstra99parser-tutor , eprint = {papers/swierstra99parser-tutor.pdf} , title = {{Fast, Error Correcting Parser Combinators: A Short Tutorial}} , author = {Swierstra, S. Doaitse and Azero Alcocer, Pablo R.} , booktitle = {SOFSEM'99 Theory and Practice of Informatics} , month = {November} , pages = {111-129} , number = {1725} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://www.cs.uu.nl/~doaitse/#pubs|}} @inproceedings{odersky97putting-ann , eprint = {papers/odersky97putting-ann.pdf} , title = {{Putting Type Annotations to Work}} , author = {Odersky, Martin and Laufer, Konstantin} , booktitle = {Principles of Programming Languages} , pages = {54-67} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/odersky96putting.html|}} @dissertation{perry91phd , eprint = {papers/perry91phd.pdf} , title = {{The Implementation of Practical Functional Programming Languages}} , author = {Perry, Nigel} , institution = {Department of Computing, Imperial College, London} , school = {Department of Computing, Imperial College, London} , year = {1991}} @techreport{laufer94poly-absdata , eprint = {papers/laufer94poly-absdata.pdf} , title = {{Polymorphic Type Inference and Abstract Data Types}} , author = {Laufer, Konstantin and Odersky, Martin} , institution = {Loyola University of Chicago} , school = {Loyola University of Chicago} , number = {LUC-001} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/lufer94polymorphic.html|}} @article{mitchell88absty-exist , eprint = {papers/mitchell88absty-exist.pdf} , title = {{Abstract Types Have Existential Type}} , author = {Mitchell, John C. and Plotkin, Gordon D.} , journal = {ACM TOPLAS} , month = {July} , pages = {470-502} , number = {3} , volume = {10} , year = {1988} , howpublished = {\verb|http://doi.acm.org/10.1145/44501.45065|}} @misc{uust04www , eprint = {papers/uust04www.pdf} , title = {{UUST library}} , author = {Software Technology Group, Utrecht University} , year = {2004} , howpublished = {\verb|http://cvs.cs.uu.nl/cgi-bin/cvsweb.cgi/uust/|}} @techreport{heeren02hm-constr , eprint = {papers/heeren02hm-constr.pdf} , title = {{Generalizing Hindley-Milner Type Inference Algorithms}} , address = {University Utrecht, Netherlands} , author = {Heeren, Bastiaan and Hage, Jurriaan and Swierstra, S. Doaitse} , institution = {Institute of Information and Computing Science} , school = {Institute of Information and Computing Science} , number = {UU-CS-2002-031} , year = {2002} , howpublished = {\verb|http://www.cs.uu.nl/pub/RUU/CS/techreps/CS-2002/2002-031.pdf|}} @misc{schrage04www-proxima , eprint = {papers/schrage04www-proxima.pdf} , title = {{Proxima. A generic presentation-oriented XML editor}} , author = {Schrage, Martijn} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Center/Proxima|}} @article{milner78type-poly , eprint = {papers/milner78type-poly.pdf} , title = {{A theory of type polymorphism in programming}} , author = {Milner, R.} , journal = {Journal of Computer and System Sciences} , number = {3} , volume = {17} , year = {1978}} @article{hindley69princ-type , eprint = {papers/hindley69princ-type.pdf} , title = {{The principal type-scheme of an object in combinatory logic}} , author = {Hindley, J.R.} , journal = {Transactions of the American Mathematical Society} , month = {December} , pages = {29-60} , volume = {146} , year = {1969}} @inproceedings{reynolds74type-struct-sysF , eprint = {papers/reynolds74type-struct-sysF.pdf} , title = {{Towards a theory of type structure}} , author = {Reynolds, J.C.} , booktitle = {Proceedings Colloque sur la Programmation} , pages = {408-425} , number = {19} , series = {LNCS} , year = {1974 }} @inproceedings{boquist96grin-optim , eprint = {papers/boquist96grin-optim.pdf} , title = {{The GRIN Project: A Highly Optimising Back End For Lazy Functional Languages}} , author = {Boquist, Urban and Johnsson, Thomas} , booktitle = {Selected papers from the 8th International Workshop on Implementation of Functional Languages} , year = {1996} , howpublished = {\verb|http://www.cs.chalmers.se/~boquist/ifl96-abstract.html|}} @book{boquist99phd-optim-lazy , eprint = {papers/boquist99phd-optim-lazy.pdf} , title = {{Code Optimisation Techniques for Lazy Functional Languages, PhD Thesis}} , author = {Boquist, Urban} , publisher = {Chalmers University of Technology} , year = {1999} , howpublished = {\verb|http://www.cs.chalmers.se/~boquist/phd/index.html|}} @inproceedings{peytonjones92ghc-overview , eprint = {papers/peytonjones92ghc-overview.pdf} , title = {{The Glasgow Haskell compiler: a technical overview}} , author = {Peyton Jones, Simon and Hall, Cordy and Hammond, Kevin and Partain, Will and Wadler, Phil} , booktitle = {Proc. UK Joint Framework for Information Technology (JFIT) Technical Conference} , year = {1992} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones92glasgow.html|}} @book{plasmeijer93func-graph , eprint = {papers/plasmeijer93func-graph.pdf} , title = {{Functional Programming and Parallel Graph Rewriting}} , author = {Plasmeijer, Rinus and Eekelen, M.J. van} , publisher = {Addison-Wesley} , year = {1993} , howpublished = {\verb|http://www.cs.kun.nl/~clean/contents/Addison__Wesley_book/addison__wesley_book.html|}} @misc{marlow98new-ghc-run , eprint = {papers/marlow98new-ghc-run.pdf} , title = {{The New GHC/Hugs Runtime System}} , author = {{GHC Team}} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/marlow98new.html|}} @inproceedings{peytonjones96hs-transf , eprint = {papers/peytonjones96hs-transf.pdf} , title = {{Compiling Haskell by program transformation: a report from the trenches}} , author = {Peyton Jones, Simon} , booktitle = {European Symposium On Programming} , pages = {18-44} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones96compiling.html|}} @article{peytonjones98trans-optim , eprint = {papers/peytonjones98trans-optim.pdf} , title = {{A transformation-based optimiser for Haskell}} , author = {Peyton Jones, Simon and Santos, Andre} , journal = {Science of Computer Programming} , month = {3-47} , number = {1-3} , volume = {32} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones98transformationbased.html|}} @techreport{dijkstra04thag-part1 , eprint = {papers/dijkstra04thag-part1.pdf} , title = {{Typing Haskell with an Attribute Grammar (Part I)}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {UU-CS-2004-037} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2004-037.html|}} @article{peytonjones02hs-inline , eprint = {papers/peytonjones02hs-inline.pdf} , title = {{Secrets of the Glasgow Haskell Compiler inliner}} , author = {Peyton Jones, Simon and Marlow, Simon} , journal = {Journal of Functional Programming} , pages = {393-434} , year = {2002}} @techreport{leroy90zinc-ml-impl , eprint = {papers/leroy90zinc-ml-impl.pdf} , title = {{The ZINC experiment: an economical implementation of the ML language}} , author = {Leroy, Xavier} , institution = {INRIA-Rocquencourt} , school = {INRIA-Rocquencourt} , number = {RT-0117} , year = {1990 } , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy90zinc.html|}} @misc{tolmach01ghc-core , eprint = {papers/tolmach01ghc-core.pdf} , title = {{An External Representation for the GHC Core Language (Draft for GHC5.02)}} , author = {Tolmach, Andrew} , year = {2001} , howpublished = {\verb|http://www.haskell.org/ghc/documentation.html|}} @phdthesis{santos95phd-comp-trafo , eprint = {papers/santos95phd-comp-trafo.pdf} , title = {{Compilation by Transformation in Non-Strict Functional Languages}} , author = {Santos, Andre} , institution = {University of Glasgow} , school = {University of Glasgow} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/santos95compilation.html|}} @misc{peytonjones94trafo-ghc , eprint = {papers/peytonjones94trafo-ghc.pdf} , title = {{Compilation by Transformation in the Glasgow Haskell Compiler}} , author = {Peyton Jones, Simon and Santos, Andre} , booktitle = {Functional Programming} , editor = {K Hammond e.a} , pages = {184-204} , publisher = {Springer-Verlag} , series = {Workshops in Computing} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones94compilation.html|}} @inproceedings{leroy95appl-func-mod , eprint = {papers/leroy95appl-func-mod.pdf} , title = {{Applicative Functors and Fully Transparent Higher-Order Modules}} , author = {Leroy, Xavier} , booktitle = {Principles of Programming Languages} , pages = {142-153} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy95applicative.html|}} @inproceedings{leroy94manif-ty-mod , eprint = {papers/leroy94manif-ty-mod.pdf} , title = {{Manifest types, modules, and separate compilation}} , author = {Leroy, Xavier} , booktitle = {Principles of Programming Languages} , pages = {109-122} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/leroy94manifest.html|}} @article{cardelli85ty-abstr-poly , eprint = {papers/cardelli85ty-abstr-poly.pdf} , title = {{On Understanding Types, Data Abstraction, and Polymorphism}} , author = {Cardelli, Luca and Wegner, Peter} , journal = {ACM Computing Surveys} , pages = {471-522} , number = {4} , volume = {17} , year = {1985} , howpublished = {\verb|http://citeseer.ist.psu.edu/cardelli85understanding.html|}} @techreport{jones99impl-param , eprint = {papers/jones99impl-param.pdf} , title = {{Exploring the design space for typebased implicit parameterization}} , author = {Jones, Mark} , institution = {Oregon Graduate Institute} , school = {Oregon Graduate Institute} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones99exploring.html|}} @mastersthesis{scheffczyk01mth-namedinst , eprint = {papers/scheffczyk01mth-namedinst.pdf} , title = {{Named Instances for Haskell Type Classes}} , author = {Scheffzcyk, Jan} , institution = {Universitat der Bundeswehr M\"unchen} , school = {Universitat der Bundeswehr M\"unchen} , year = {2001} , howpublished = {\verb|http://www.rz.unibw-muenchen.de/~j8sj0499/|}} @inproceedings{dijkstra04thag , eprint = {papers/dijkstra04thag.pdf} , title = {{Typing Haskell with an Attribute Grammar}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Advanced Functional Programming Summerschool} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {3622} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2004}} @misc{chakravarty03hask-ffi , eprint = {papers/chakravarty03hask-ffi.pdf} , title = {{The Haskell 98 Foreign Function Interface 1.0: An Addendum to the Haskell 98 Report}} , author = {Chakravarty, Manuel} , year = {2003} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/haskell/ffi/|}} @misc{www03hugs , eprint = {papers/www03hugs.pdf} , title = {{Hugs 98}} , author = {Jones, Mark P.} , year = {2003} , howpublished = {\verb|http://www.haskell.org/hugs/|}} @techreport{gaster98phd-records , eprint = {papers/gaster98phd-records.pdf} , title = {{Records, variants and qualified types}} , author = {Gaster, Benedict R.} , institution = {University of Nottingham} , school = {University of Nottingham} , number = {NOTTCS-TR-98-3} , year = {1998} , howpublished = {\verb|http://www.cs.nott.ac.uk/Research/fop/gaster-thesis.pdf|}} @inproceedings{harper91records-symm , eprint = {papers/harper91records-symm.pdf} , title = {{A record calculus based on symmetric concatenation}} , author = {Harper, Robert and Pierce, Benjamin} , booktitle = {Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages} , pages = {131-142} , year = {1991} , howpublished = {\verb|http://doi.acm.org/10.1145/99583.99603|}} @inproceedings{jones96paramsig-mod , eprint = {papers/jones96paramsig-mod.pdf} , title = {{Using Parameterized Signatures to Express Modular Structure}} , author = {Jones, Mark P.} , booktitle = {Proceedings of the Twenty Third Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages} , year = {1996} , howpublished = {\verb|http://www.cse.ogi.edu/~mpj/pubs/paramsig.pdf|}} @inproceedings{sansom93gen-gc-hask , eprint = {papers/sansom93gen-gc-hask.pdf} , title = {{Generational Garbage Collection for Haskell}} , author = {Sansom, Patrick M. and Peyton Jones, Simon} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {106-116} , year = {1993 } , howpublished = {\verb|http://citeseer.ist.psu.edu/article/sansom93generational.html|}} @misc{dijkstra04expl-impl-param , eprint = {papers/dijkstra04expl-impl-param.pdf} , title = {{Explicit implicit parameters (submitted to ESOP2005)}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , year = {2004}} @techreport{dijkstra04expl-impl-param-tr , eprint = {papers/dijkstra04expl-impl-param-tr.pdf} , title = {{Explicit implicit parameters}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Institute of Information and Computing Science} , school = {Institute of Information and Computing Science} , number = {UU-CS-2004-059} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2004-059.html|}} @inproceedings{jeuring94gram-anal , eprint = {papers/jeuring94gram-anal.pdf} , title = {{Bottom-Up Grammar Analysis, A Functional Formulation}} , author = {Jeuring, Johan and Swierstra, S. Doaitse} , booktitle = {European Symposium On Programming} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/jeuring94bottomup.html|}} @inproceedings{jeuring95gram-anal-func , eprint = {papers/jeuring95gram-anal-func.pdf} , title = {{Constructing Functional Programs for Grammar Analysis Problems}} , author = {Jeuring, Johan and Swierstra, S. Doaitse} , booktitle = {Functional Programming Languages and Computer Architecture} , pages = {259-269} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/jeuring95constructing.html|}} @inproceedings{farrow92comp-ag , eprint = {papers/farrow92comp-ag.pdf} , title = {{Composable Attribute Grammars: Support for Modularity in Translator Design and Implementation}} , author = {Farrow, R. and Marlowe, T.J. and Yelling, D.M.} , booktitle = {Principles of Programming Languages} , pages = {223-234} , year = {1992} , howpublished = {\verb|http://doi.acm.org/10.1145/143165.143210|}} @article{dueck90mod-ag , eprint = {papers/dueck90mod-ag.pdf} , title = {{Modular Attribute Grammars}} , author = {Dueck, G.D.P. and Cormack, G.V.} , journal = {The Computer Journal} , pages = {164-172} , number = {2} , volume = {33} , year = {1990 }} @phdthesis{adams91mod-gram , eprint = {papers/adams91mod-gram.pdf} , title = {{Modular Grammars for Programming Language Prototyping}} , author = {Adams, Stephen Robert} , publisher = {University of Southampton, Faculty of Engineering, Dept of CS} , year = {1991 } , howpublished = {\verb|http://www.swiss.ai.mit.edu/users/adams/MAG/|}} @article{shan04sexy-types , eprint = {papers/shan04sexy-types.pdf} , title = {{Sexy types in action}} , author = {Shan, Chung-chieh} , journal = {ACM SIGPLAN Notices} , month = {May} , pages = {15-22} , number = {5} , volume = {39} , year = {2004} , howpublished = {\verb|http://doi.acm.org/10.1145/997140.997142|}} @inproceedings{kiselyov04impl-config , eprint = {papers/kiselyov04impl-config.pdf} , title = {{Implict configuration - or, type classes reflect the value of types}} , author = {Kiselyov, Oleg and Shan, Chung-chieh} , booktitle = {Haskell Workshop} , year = {2004} , howpublished = {\verb|http://www.eecs.harvard.edu/~ccshan/prepose/prepose.pdf|}} @inproceedings{odersky01col-loc-infer , eprint = {papers/odersky01col-loc-infer.pdf} , title = {{Colored Local Type Inference}} , author = {Odersky, Martin and Zenger, Christoph and Zenger, Matthias} , booktitle = {Principles of Programming Languages} , journal = {ACM SIGPLAN Notices} , month = {March} , pages = {41-53} , number = {3} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/373243.360207|}} @inproceedings{mohnen96ctxt-pat , eprint = {papers/mohnen96ctxt-pat.pdf} , title = {{Context Patterns in Haskell}} , author = {Mohnen, Markus} , booktitle = {Implementation of Functional Languages} , pages = {41-57} , number = {1268} , series = {LNCS} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/mohnen96context.html|}} @inproceedings{mohnen97ctxt-pat , eprint = {papers/mohnen97ctxt-pat.pdf} , title = {{Context Patterns, Part {II}}} , author = {Mohnen, Markus} , booktitle = {Implementation of Functional Languages} , pages = {338--357} , number = {1467} , series = {LNCS} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/mohnen97context.html|}} @mastersthesis{mazanek03highkind-subtype , eprint = {papers/mazanek03highkind-subtype.pdf} , title = {{Higher-Kinded Types in the Context of Subtyping}} , author = {Mazanek, Steffen} , school = {University of the German Federal Armed Forces} , year = {2003} , howpublished = {\verb|http://www.steffen-mazanek.de/mixed/projects/Diplomarbeit.pdf|}} @inproceedings{kuiper86ag-fp , eprint = {papers/kuiper86ag-fp.pdf} , title = {{Using Attribute Grammars to Derive Efficient Functional Programs}} , author = {Kuiper, M.F. and Swierstra, S. Doaitse} , booktitle = {Computing Science in the Netherlands CSN'87} , month = {November} , year = {1987} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/RUU-CS-86-16.html|}} @article{bird84circ-traverse , eprint = {papers/bird84circ-traverse.pdf} , title = {{Using Circular Programs to Eliminate Multiple Traversals of Data}} , author = {Bird, Richard S.} , journal = {Acta Informatica} , pages = {239-250} , volume = {21} , year = {1984} , howpublished = {\verb|http://www.springerlink.com/index/G74174VVL1861605.pdf|}} @inproceedings{laemmel03boilerplate , eprint = {papers/laemmel03boilerplate.pdf} , title = {{Scrap your boilerplate: a practical design pattern for generic programming}} , author = {L\"ammel, Ralf and Peyton Jones, Simon} , booktitle = {Types In Languages Design And Implementation} , pages = {26-37} , year = {2003} , howpublished = {\verb|http://doi.acm.org/10.1145/604174.604179|}} @inproceedings{wadler90deforest , eprint = {papers/wadler90deforest.pdf} , title = {{Deforestation: transforming programs to eliminate trees}} , author = {Wadler, Philip} , booktitle = {Theoretical Computer Science, (Special issue of selected papers from 2'nd European Symposium on Programming)} , pages = {231-248} , year = {1990} , howpublished = {\verb|http://homepages.inf.ed.ac.uk/wadler/topics/deforestation.html|}} @phdthesis{saraiva99phd-funcimpl-ag , eprint = {papers/saraiva99phd-funcimpl-ag.pdf} , title = {{Purely Functional Implementation of Attribute Grammars}} , author = {Saraiva, Joao} , institution = {Utrecht University} , school = {Utrecht University} , year = {1999}} @phdthesis{girard72system-f , eprint = {papers/girard72system-f.pdf} , title = {{Interpr\'etation fonctionelle et \'elimination des coupures de l'arithm\'etique d'ordre sup\'erieur}} , author = {Girard, Jean-Yves} , school = {Universit\'e Paris VII} , year = {1972}} @misc{baars02www-syn-macro , eprint = {papers/baars02www-syn-macro.pdf} , title = {{Syntax Macros (Unfinished draft)}} , author = {Baars, Arthur and Swierstra, S. Doaitse} , year = {2002} , howpublished = {\verb|http://www.cs.uu.nl/\-people/\-arthurb/macros.html|}} @inproceedings{heeren05class-direct , eprint = {papers/heeren05class-direct.pdf} , title = {{Type Class Directives}} , author = {Heeren, Bastiaan and Hage, Jurriaan} , booktitle = {Seventh International Symposium on Practical Aspects of Declarative Languages} , pages = {253 -- 267} , publisher = {Springer-Verlag} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/people/bastiaan/|}} @article{efremidis97attr-gram-ml , eprint = {papers/efremidis97attr-gram-ml.pdf} , title = {{AML: Attribute Grammars in ML}} , author = {Efremidis, Sofoklis G. and Mughal, Khalis A. and Reppy, John H. and Soraas, Lars} , journal = {Nordic Journal of Computing} , year = {1997}} @misc{hallgren03progica-demo , eprint = {papers/hallgren03progica-demo.pdf} , title = {{Haskell Tools from the Programmatica Project}} , author = {Hallgren, Thomas} , year = {2003}} @misc{launchbury96state-haskell , eprint = {papers/launchbury96state-haskell.pdf} , title = {{State in Haskell}} , author = {Launchbury, J. and Peyton Jones, SL.} , year = {1996} , howpublished = {\verb|http://citeseer.nj.nec.com/details/launchbury96state.html|}} @inproceedings{stuckey02th-overl-acm , eprint = {papers/stuckey02th-overl-acm.pdf} , title = {{A Theory of Overloading}} , author = {Stuckey, Peter J. and Sulzmann, Martin} , booktitle = {Proceedings of the seventh ACM SIGPLAN international conference on Functional programming} , institution = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , school = {Dept. of Computer Science and Software Engineering, The University of Melbourne } , pages = {167-178} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581478.581495|}} @phdthesis{pasalic04type-eq-phd , eprint = {papers/pasalic04type-eq-phd.pdf} , title = {{The Role of Type Equality in Meta-programming}} , author = {Pasalic, Emir} , school = {OGI School of Science & Engineering} , year = {2004} , howpublished = {\verb|http://www.cs.rice.edu/%7Epasalic/thesis/body.pdf|}} @inproceedings{pasalic04meta-ty-objrep , eprint = {papers/pasalic04meta-ty-objrep.pdf} , title = {{Meta-Programming with Typed Object-Language Representations}} , author = {Pasalic, Emir} , booktitle = {Generative Programming and Component Engineering} , school = {OGI School of Science & Engineering} , year = {2004} , howpublished = {\verb|http://www.cs.pdx.edu/%7Esheard/papers/MetaProgTypObjLangReps.ps|}} @techreport{simonet05constr-gadt , eprint = {papers/simonet05constr-gadt.pdf} , title = {{Constraint-Based Type Inference for Guarded Algebraic Data Types}} , author = {Simonet, Vincent and Pottier, Francois} , institution = {INRIA-Rocquencourt} , school = {INRIA-Rocquencourt} , number = {5462} , year = {2005} , howpublished = {\verb|http://cristal.inria.fr/%7Efpottier/publis/simonet-pottier-hmg.pdf|}} @article{simonet05constr-gadt-acm , eprint = {papers/simonet05constr-gadt-acm.pdf} , title = {{Constraint-Based Type Inference for Guarded Algebraic Data Types (submitted to TOPLAS)}} , author = {Simonet, Vincent and Pottier, Francois} , journal = {ACM TOPLAS} , year = {2005} , howpublished = {\verb|http://cristal.inria.fr/%7Efpottier/publis/simonet-pottier-hmg-toplas.pdf|}} @phdthesis{loh04gener-hs-phd , eprint = {papers/loh04gener-hs-phd.pdf} , title = {{Exploring Generic Haskell}} , author = {L\"oh, Andres} , school = {Utrecht University, Department of Information and Computing Sciences} , year = {2004}} @misc{vytiniotis05boxy-impred , eprint = {papers/vytiniotis05boxy-impred.pdf} , title = {{Boxy type inference for higher-rank types and impredicativity (submitted to ICFP2005)}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , year = {2005}} @phdthesis{dijkstra05phd , eprint = {papers/dijkstra05phd.pdf} , title = {{Stepping through Haskell}} , author = {Dijkstra, Atze} , school = {Utrecht University, Department of Information and Computing Sciences} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/groups/ST/Ehc/WebHome|}} @misc{loh04lhs2tex-www , eprint = {papers/loh04lhs2tex-www.pdf} , title = {{lhs2TeX}} , author = {L\"oh, Andres} , year = {2004} , howpublished = {\verb|http://www.cs.uu.nl/people/andres/lhs2tex/|}} @article{knuth68ag , eprint = {papers/knuth68ag.pdf} , title = {{Semantics of context-free languages}} , author = {Knuth, D.E.} , journal = {Mathematical Systems Theory} , pages = {127-145} , number = {2} , volume = {2} , year = {1968 }} @inproceedings{trifonov03sim-qucls-cnstr , eprint = {papers/trifonov03sim-qucls-cnstr.pdf} , title = {{Simulating quantified class constraints}} , author = {Trifonov, Valery} , booktitle = {Haskell Workshop} , pages = {98-102} , year = {2003} , howpublished = {\verb|http://flint.cs.yale.edu/trifonov/papers/sqcc.pdf|}} @techreport{dijkstra05explimpl , eprint = {papers/dijkstra05explimpl.pdf} , title = {{Making Implicit Parameters Explicit}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Utrecht University} , school = {Utrecht University} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2005-032.html|}} @misc{www05programmatica , eprint = {papers/www05programmatica.pdf} , title = {{Programmatica Project (WWW site)}} , year = {2005} , howpublished = {\verb|http://www.cse.ogi.edu/PacSoft/projects/\-programatica/default.htm|}} @inproceedings{aydemir95poplmark-chall , eprint = {papers/aydemir95poplmark-chall.pdf} , title = {{Mechanized metatheory for the masses: The POPLmark challenge}} , author = {Aydemir, Brian E. and Bohannon, Aaron and Fairbairn, Matthew and Foster, J. Nathan and Pierce, Benjamin C.} , booktitle = {The 18th International Conference on Theorem Proving in Higher Order Logics} , year = {2005} , howpublished = {\verb|http://www.cis.upenn.edu/group/proj/plclub/mmm/|}} @techreport{dijkstra05ruler , eprint = {papers/dijkstra05ruler.pdf} , title = {{Ruler: Programming Type Rules}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Utrecht University} , school = {Utrecht University} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2005-033.html|}} @misc{www05litprog , eprint = {papers/www05litprog.pdf} , title = {{Literate Programming}} , year = {2005} , howpublished = {\verb|http://www.literateprogramming.com/|}} @article{knuth92litprog , eprint = {papers/knuth92litprog.pdf} , title = {{Literate Programming}} , author = {Knuth, D.E.} , booktitle = {Literate Programming} , journal = {Journal of the ACM} , pages = {97-111} , number = {42} , series = {CSLI} , year = {1984 } , howpublished = {\verb|http://www.literateprogramming.com/knuthweb.pdf|}} @misc{dijkstra05ruler-www , eprint = {papers/dijkstra05ruler-www.pdf} , title = {{Ruler}} , author = {Dijkstra, Atze} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/Ruler|}} @book{davey02lattices-order , eprint = {papers/davey02lattices-order.pdf} , title = {{Introduction to Lattices and Order}} , author = {Davey, B.A. and Priestley, H.A.} , edition = {2nd edition} , publisher = {Cambridge Univ. Press} , year = {2002}} @phdthesis{bakel93phd-intersection , eprint = {papers/bakel93phd-intersection.pdf} , title = {{Intersection Type Disciplines in Lambda Calculus and Applicative Term Rewriting Systems}} , address = {Amsterdam} , author = {Bakel, Stef van} , school = {Mathematisch Centrum} , year = {1993}} @article{wells98undec-type-sysf , eprint = {papers/wells98undec-type-sysf.pdf} , title = {{Typability and Type Checking in System F Are Equivalent and Undecidable}} , author = {Wells, J.B.} , journal = {Annals of Pure and Applied Logic} , pages = {111-156} , number = {1-3} , volume = {98} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/wells98typability.html|}} @misc{kfoury03princ-intersect , eprint = {papers/kfoury03princ-intersect.pdf} , title = {{Principality and type inference for intersection types using expansion variables}} , author = {Kfoury, A. and Wells, J.} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/kfoury03principality.html|}} @misc{www03church-project , eprint = {papers/www03church-project.pdf} , title = {{The Church Project}} , author = {Kfoury, Assaf and Xi, Hongwei and Pericas, Santiago M.} , year = {2005} , howpublished = {\verb|http://www.church-project.org/|}} @inproceedings{leijen05qual-mlf , eprint = {papers/leijen05qual-mlf.pdf} , title = {{Qualified types for MLF}} , author = {Leijen, Daan and L\"oh, Andres} , booktitle = {ICFP} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/people/daan/pubs.html|}} @phdthesis{lillibridge97phd-translucent , eprint = {papers/lillibridge97phd-translucent.pdf} , title = {{Translucent Sums: A Foundation for Higher-Order Module Systems}} , author = {Lillibridge, Mark} , school = {School of Computer Science, Carnegie Mellon University} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/lillibridge97translucent.html|}} @techreport{srensen98curry-howard , eprint = {papers/srensen98curry-howard.pdf} , title = {{Lectures on the Curry-Howard isomorphism}} , author = {Srensen, M. and Urzyczyn, P.} , institution = {Univ. of Copenhagen} , school = {Univ. of Copenhagen} , number = {TOPPS D-368} , year = {1998} , howpublished = {\verb|http://citeseer.ist.psu.edu/519604.html|}} @book{knuth86tex-program , eprint = {papers/knuth86tex-program.pdf} , title = {{Computers and Typesetting, Volume B, TeX: The Program}} , author = {Knuth, Donald E.} , publisher = {Addison-Wesley} , year = {1986}} @misc{www04cminusminus , eprint = {papers/www04cminusminus.pdf} , title = {{C--}} , year = {2004} , howpublished = {\verb|http://www.cminusminus.org/|}} @inproceedings{macqueen86dep-ty-module , eprint = {papers/macqueen86dep-ty-module.pdf} , title = {{Using dependent types to express modular structure}} , author = {MacQueen, David B.} , booktitle = {Principles of Programming Languages} , pages = {277-286} , year = {1986} , howpublished = {\verb|http://doi.acm.org/10.1145/512644.512670|}} @phdthesis{steffen97polar-phd , eprint = {papers/steffen97polar-phd.pdf} , title = {{Polarized Higher-Order Subtyping}} , author = {Steffen, Martin} , school = {Der Technischen Fakult\"at der Universit\"at Erlangen-N\"urnberg} , year = {1997} , howpublished = {\verb|http://www.informatik.uni-kiel.de|}} @inproceedings{steffen97polar-abs , eprint = {papers/steffen97polar-abs.pdf} , title = {{Polarized Higher-Order Subtyping (Extended Abstract)}} , author = {Steffen, Martin} , booktitle = {Types working group Workshop on Subtyping, inheritance and modular development of proofs} , school = {Der Technischen Fakult\"at der Universit\"at Erlangen-N\"urnberg} , year = {1997} , howpublished = {\verb|http://www.informatik.uni-kiel.de|}} @phdthesis{boyland96phd-compile-comp , eprint = {papers/boyland96phd-compile-comp.pdf} , title = {{Descriptional Composition of Compiler Components}} , author = {Boyland, John Tang} , school = {Computer Science Division, University of California} , year = {1996} , howpublished = {\verb|www.cs.uwm.edu/~boyland/papers/tr.ps.Z|}} @inproceedings{malcolm89homo-cata , eprint = {papers/malcolm89homo-cata.pdf} , title = {{Homomorphisms and promotability}} , author = {Malcolm, G.} , booktitle = {Mathematics of Program Construction} , editor = {Snepscheut, J.L.A. van} , pages = {335-347} , number = {375} , series = {LNCS} , year = {1989 }} @inproceedings{fegaras96cata , eprint = {papers/fegaras96cata.pdf} , title = {{Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)}} , author = {Fegaras, Leonidas and Sheard, Tim} , booktitle = {Principles of Programming Languages} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/237721.237792|}} @inproceedings{remy05sysf-tycont , eprint = {papers/remy05sysf-tycont.pdf} , title = {{Simple, partial type-inference for System F based on type-containment}} , author = {R\'emy, Didier} , booktitle = {ICFP} , year = {2005} , howpublished = {\verb|http://pauillac.inria.fr/~remy/|}} @inproceedings{pottier05stratif-gadt , eprint = {papers/pottier05stratif-gadt.pdf} , title = {{Stratified type inference for generalized algebraic data types (submitted)}} , author = {Pottier, Francois and R\'egis-Gianas, Yann} , booktitle = {Principles of Programming Languages} , pages = {232-244} , year = {2005} , howpublished = {\verb|http://doi.acm.org/10.1145/1111037.1111058|}} @inproceedings{ekman04rewr-ref-ag , eprint = {papers/ekman04rewr-ref-ag.pdf} , title = {{Rewritable Reference Attributed Grammars}} , author = {Ekman, Torbj\"orn and Hedin, G\"odel} , booktitle = {ECOOP} , pages = {147-171} , number = {3086} , series = {LNCS} , year = {2004} , howpublished = {\verb|http://springerlink.metapress.com/link.asp?id=jel9au2pa1f766u7|}} @misc{ekman04lic-rewr-ref-ag , eprint = {papers/ekman04lic-rewr-ref-ag.pdf} , title = {{Rewritable Reference Attributed Grammars. Design, implementation and applications}} , author = {Ekman, Torbj\"orn} , year = {2004} , howpublished = {\verb|http://prog.vub.ac.be/~thomas/ERLS/Ekman.pdf|}} @misc{parigot98ag-www-home , eprint = {papers/parigot98ag-www-home.pdf} , title = {{Attribute Grammars Home Page}} , author = {Parigot, Didier} , year = {1998} , howpublished = {\verb|http://www-rocq.inria.fr/oscar/www/fnc2/attribute-grammar-people.html|}} @misc{parigot98ag-fnc2 , eprint = {papers/parigot98ag-fnc2.pdf} , title = {{The Fnc-2 Attribute Grammar System}} , author = {Parigot, Didier} , year = {1998} , howpublished = {\verb|http://www-rocq.inria.fr/oscar/www/fnc2/littlefnc2.html|}} @misc{visser05stratego-www , eprint = {papers/visser05stratego-www.pdf} , title = {{Stratego Home Page}} , author = {Visser, Eelco} , year = {2005} , howpublished = {\verb|http://www.program-transformation.org/Stratego/WebHome|}} @inproceedings{visser01stratego-system05 , eprint = {papers/visser01stratego-system05.pdf} , title = {{Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5}} , author = {Visser, Eelco} , booktitle = {Rewriting Techniques and Applications (RTA'01)} , editor = {Middeldorp, A.} , pages = {357--361} , number = {2051} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2001} , howpublished = {\verb|http://www.program-transformation.org/Stratego/StrategoALanguageForProgramTransformationBasedOnRewritingStrategies|}} @techreport{swierstra91hag , eprint = {papers/swierstra91hag.pdf} , title = {{Higher order attribute grammars, Lecture notes of the International Summer School on Attribute Grammars, applications and systems}} , author = {Swierstra, S. Doaitse and Vogt, H.H.} , institution = {Utrecht University} , school = {Utrecht University} , number = {RUU-CS-91-14} , year = {1991 } , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/RUU-CS-91-14.html|}} @misc{www05eli , eprint = {papers/www05eli.pdf} , title = {{Eli: An Integrated Toolset for Compiler Construction}} , year = {2005} , howpublished = {\verb|http://eli-project.sourceforge.net/|}} @article{gray92eli , eprint = {papers/gray92eli.pdf} , title = {{Eli: a complete, flexible compiler construction system}} , author = {Gray, Rober W. and Levi, Simon P. and Heuring, Vincent P. and Sloane, Anthony M. and Waite, William M.} , journal = {Communications of the ACM} , pages = {121-130} , number = {2} , volume = {35} , year = {1992 } , howpublished = {\verb|http://doi.acm.org/10.1145/129630.129637|}} @inbook{pottier05ml-essence , eprint = {papers/pottier05ml-essence.pdf} , title = {{The essence of ML type inference}} , author = {Pottier, Francois and R\'emy, Didier} , booktitle = {Advanced Topics in Types and Programming Languages} , chapter = {10} , pages = {389--489} , publisher = {MIT Press} , year = {2005}} @phdthesis{heeren05phd-errormsg , eprint = {papers/heeren05phd-errormsg.pdf} , title = {{Top Quality Type Error Messages}} , author = {Heeren, Bastiaan} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {2005}} @book{milner97sml-def-revise , eprint = {papers/milner97sml-def-revise.pdf} , title = {{The Definition of Standard ML (Revised)}} , author = {Milner, Robin and Tofte, Mads and Harper, Robert and MacQueen, David} , publisher = {MIT Press} , year = {1997}} @misc{peytonjones04wobbly-gadt , eprint = {papers/peytonjones04wobbly-gadt.pdf} , title = {{Wobbly types: type inference for generalised algebraic data types}} , author = {Peyton Jones, Simon and Washburn, Geoffrey and Weirich, Stephanie} , year = {2004}} @inproceedings{pfenning91anti-unif , eprint = {papers/pfenning91anti-unif.pdf} , title = {{Unification and Anti-Unification in the Calculus of Constructions}} , author = {Pfenning, Frank} , booktitle = {Sixth Annual IEEE Symposium on Logic in Computer Science} , pages = {74--85} , year = {1991 } , howpublished = {\verb|http://citeseer.ist.psu.edu/pfenning91unification.html|}} @misc{levin99tinkertype , eprint = {papers/levin99tinkertype.pdf} , title = {{TinkerType: A Language for Playing with Formal Systems}} , author = {Levin, Michael Y. and Pierce, Benjamin C.} , year = {1999} , howpublished = {\verb|http://www.cis.upenn.edu/~milevin/tt.html|}} @misc{www05twelf , eprint = {papers/www05twelf.pdf} , title = {{The Twelf Project}} , year = {2007} , howpublished = {\verb|http://twelf.plparty.org/wiki|}} @misc{harper05lect-mechlangdef , eprint = {papers/harper05lect-mechlangdef.pdf} , title = {{Mechanizing Language Definitions (invited lecture at ICFP05)}} , author = {Harper, Robert} , year = {2005} , howpublished = {\verb|http://www.cs.cmu.edu/~rwh/|}} @misc{www99croap , eprint = {papers/www99croap.pdf} , title = {{Projet CROAP. Design and Implementaiton of Programming Tools}} , year = {1999} , howpublished = {\verb|http://www-sop.inria.fr/croap/|}} @misc{www05asf-sdf , eprint = {papers/www05asf-sdf.pdf} , title = {{ASF+SDF}} , author = {{The Meta-Environment Team}} , year = {2005} , howpublished = {\verb|http://www.asfsdf.org/|}} @misc{www05synth-gen , eprint = {papers/www05synth-gen.pdf} , title = {{Synthesizer Generator}} , author = {GrammaTech} , year = {2005} , howpublished = {\verb|http://www.grammatech.com/products/sg/overview.html|}} @misc{sulzmann98hm-constr , eprint = {papers/sulzmann98hm-constr.pdf} , title = {{Polymorphism in Hindley/Milner Style Type Systems with Constraints}} , author = {Sulzmann, Martin} , year = {1998} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @phdthesis{sulzmann00phd-cnstr , eprint = {papers/sulzmann00phd-cnstr.pdf} , title = {{A General Framework for Hindley/Milner Type Systems with Constraints}} , author = {Sulzmann, Martin} , school = {Yale University, Department of Computer Science} , journal = {Journal of Functional Programming} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/sulzmann00general.html|}} @article{fruhwirth98theory-chr , eprint = {papers/fruhwirth98theory-chr.pdf} , title = {{Theory and Practice of Constraint Handling Rules}} , author = {Fr{\"u}hwirth, Thom} , journal = {Journal of Logic Programming, Special Issue on Constraint Logic Programming} , month = {October} , pages = {95-138} , number = {1-3} , volume = {37} , year = {1998} , howpublished = {\verb|http://www.informatik.uni-muenchen.de/~fruehwir/drafts/jlp-chr1.ps.Z|}} @phdthesis{abdennadher01phd-chr , eprint = {papers/abdennadher01phd-chr.pdf} , title = {{Rule-Based Constraint Programming: Theory and Practice. Habilitation}} , author = {Abdennadher, Slim} , school = {Ludwig-Maximilians-Universit\"at M\"unchen, Institut f\"ur Informatik} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/abdennadher01rulebased.html|}} @misc{stuckey04chameleon-sys , eprint = {papers/stuckey04chameleon-sys.pdf} , title = {{The Chameleon System}} , author = {Stuckey, Peter J. and Sulzmann, Martin and Wazny, Jeremy} , howpublished = {\verb|http://citeseer.ist.psu.edu/683340.html|}} @misc{simonetXXhmx-exist-forall , eprint = {papers/simonetXXhmx-exist-forall.pdf} , title = {{An extension of HM(X) with first class existential and universal data-types}} , author = {Simonet, Vincent} , howpublished = {\verb|http://citeseer.ist.psu.edu/573334.html|}} @misc{rossberg02tyclass-cham-chr , eprint = {papers/rossberg02tyclass-cham-chr.pdf} , title = {{Beyond Type Classes}} , author = {Rossbert, Andreas and Sulzmann, Martin} , year = {2002} , howpublished = {\verb|http://www.ps.uni-sb.de/Papers/abstracts/btclasses.ps|}} @techreport{cardelli97impl-sysf , eprint = {papers/cardelli97impl-sysf.pdf} , title = {{An Implementation of F\(_{<:}\)}} , author = {Cardelli, Luca} , institution = {Digital Systems Research Center} , school = {Digital Systems Research Center} , number = {97} , year = {1993} , howpublished = {\verb|http://gatekeeper.research.compaq.com/pub/DEC/SRC/research-reports/abstracts/src-rr-097.html|}} @article{duggan02open-closed-gener , eprint = {papers/duggan02open-closed-gener.pdf} , title = {{Open and closed scopes for constrained genericity}} , author = {Duggan, D. and Ophel, J.} , journal = {Theoretical Computer Science} , pages = {215--258} , volume = {275} , year = {2002} , howpublished = {\verb|http://guinness.cs.stevens-tech.edu/~dduggan/Public/Papers/index.html|}} @inproceedings{duck04tyinf-funct-dep , eprint = {papers/duck04tyinf-funct-dep.pdf} , title = {{Sound and Decidable Type Inference for Functional Dependencies}} , author = {Duck, Gregory J. and Peyton Jones, Simon and Stuckey, Peter J. and Sulzmann, Martin} , booktitle = {European Symposium On Programming} , year = {2004} , howpublished = {\verb|http://research.microsoft.com/Users/simonpj/Papers/fd-chr/|}} @misc{rossberg05www-alice , eprint = {papers/rossberg05www-alice.pdf} , title = {{The Alice Project}} , author = {Rossberg, Andreas} , year = {2005} , howpublished = {\verb|http://www.ps.uni-sb.de/alice/|}} @misc{heeren05www-helium , eprint = {papers/heeren05www-helium.pdf} , title = {{Helium, for learning Haskell}} , author = {Heeren, Bastiaan and IJzendoorn, Arjan van and Hage, Jurriaan} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/helium/|}} @article{paakki95ag-paradigms , eprint = {papers/paakki95ag-paradigms.pdf} , title = {{Attribute grammar paradigmsŃa high-level methodology in language implementation}} , author = {Paakki, Jukka} , journal = {ACM Computing Surveys} , month = {June} , pages = {196-255} , number = {2} , volume = {27} , year = {1995} , howpublished = {\verb|http://doi.acm.org/10.1145/210376.197409|}} @article{mernik00mult-ag , eprint = {papers/mernik00mult-ag.pdf} , title = {{Multiple Attribute Grammar Inheritance}} , author = {Mernik, Marjan and Lenic, Mitja and Avidcausevic, Enis and Zumer, Viljem} , journal = {Informatica} , pages = {319-328} , number = {3} , volume = {24} , year = {2000} , howpublished = {\verb|http://marcel.uni-mb.si/lisa/publications.html|}} @misc{dijkstra05ehc-plans , eprint = {papers/dijkstra05ehc-plans.pdf} , title = {{EHC Project Plans}} , author = {Dijkstra, Atze} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/ProjectPlans|}} @inproceedings{dijkstra06ruler , eprint = {papers/dijkstra06ruler.pdf} , title = {{Ruler: Programming Type Rules}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Functional and Logic Programming: 8th International Symposium, FLOPS 2006, Fuji-Susono, Japan, April 24-26, 2006} , institution = {Utrecht University} , school = {Utrecht University} , pages = {30-46} , number = {3945} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2006}} @inproceedings{vanwyk02forwarding-ag , eprint = {papers/vanwyk02forwarding-ag.pdf} , title = {{Forwarding in Attribute Grammars for Modular Language Design}} , author = {Van Wyk, Eric and de Moor, Oege and Backhouse, Kevin and Kwiatkowski, Paul} , booktitle = {Computational Complexity} , pages = {128-142} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/vanwyk02forwarding.html|}} @article{palsberg96cnstr-ty , eprint = {papers/palsberg96cnstr-ty.pdf} , title = {{Constrained types and their expressiveness}} , author = {Palsberg, Jens and Smith, Scott} , journal = {ACM TOPLAS} , pages = {519--527} , number = {5} , volume = {18} , year = {1996} , howpublished = {\verb|http://doi.acm.org/10.1145/232706.232715|}} @inproceedings{trifonov96sub-cnstr-ty , eprint = {papers/trifonov96sub-cnstr-ty.pdf} , title = {{Subtyping Constrained Types}} , author = {Trifonov, Valery and Smith, Scott} , booktitle = {Proceedings of the Third International Static Analysis Symposium} , pages = {349--365} , publisher = {Springer-Verlag} , year = {1996} , howpublished = {\verb|http://citeseer.ist.psu.edu/article/trifonov96subtyping.html|}} @inproceedings{eifrig95rec-cnstr-oo , eprint = {papers/eifrig95rec-cnstr-oo.pdf} , title = {{Type Inference for Recursively Constrained Types and its Application to OOP}} , author = {Eifrig, J. and Smith, S. and Trifonov, V.} , booktitle = {Mathematical Foundations of Programming Semantics} , number = {1} , publisher = {Elsevier} , series = {Electronic Notes in Theoretical Computer Science} , year = {1995} , howpublished = {\verb|http://www.cs.jhu.edu/~scott/pll/constraints.html|}} @inproceedings{eifrig95ty-infer-oo , eprint = {papers/eifrig95ty-infer-oo.pdf} , title = {{Sound Polymorphic Type Inference for Objects}} , author = {Eifrig, Jonathan and Smith, Scott and Trifonov, Valery} , booktitle = {OOPSLA} , pages = {169-184} , year = {1995} , howpublished = {\verb|http://citeseer.ist.psu.edu/eifrig95sound.html|}} @inproceedings{aiken94soft-cond-ty , eprint = {papers/aiken94soft-cond-ty.pdf} , title = {{Soft Typing with Conditional Types}} , author = {Aiken, Alexander and Wimmers, Edward L. and Lakshman, T.K.} , booktitle = {Principles of Programming Languages} , pages = {163--173} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/aiken94soft.html|}} @inproceedings{foster99ty-qual , eprint = {papers/foster99ty-qual.pdf} , title = {{A Theory of Type Qualifiers}} , author = {Foster, Jeffrey S. and F\"ahndrich, Manuel and Aiken, Alexander} , booktitle = {Programming Language Design and Implementation} , pages = {192--203} , year = {1999} , howpublished = {\verb|http://theory.stanford.edu/~aiken/publications/papers/pldi99.ps|}} @phdthesis{foster02ty-qual-phd , eprint = {papers/foster02ty-qual-phd.pdf} , title = {{Type Qualifiers: Lightweight Specifications to Improve Software Quality}} , author = {Foster, Jeffrey S.} , booktitle = {Programming Language Design and Implementation} , school = {University of California} , pages = {192--203} , year = {2002} , howpublished = {\verb|http://www.cs.umd.edu/~jfoster/papers/pldi02.pdf|}} @inproceedings{carlier04ty-infer-intersect , eprint = {papers/carlier04ty-infer-intersect.pdf} , title = {{Type inference with expansion variables and intersection types in System E and an exact correspondence with beta-reduction}} , author = {Carlier, S\'ebastien and Wells, J.B.} , booktitle = {Principles and Practice Declarative Programming} , year = {2004} , howpublished = {\verb|http://types.bu.edu/reports/Car+Wel:PPDP-2004.html|}} @inproceedings{vytiniotis06boxy-impred , eprint = {papers/vytiniotis06boxy-impred.pdf} , title = {{Boxy Types: Inference for Higher-Rank Types and Impredicativity}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , booktitle = {ICFP} , pages = {251-262} , year = {2006} , howpublished = {\verb|http://research.microsoft.com/users/simonpj/|}} @techreport{dijkstra06exploit-tyann-tr , eprint = {papers/dijkstra06exploit-tyann-tr.pdf} , title = {{Exploiting Type Annotations}} , author = {Dijkstra, Atze and Swierstra, S. Doaitse} , institution = {Department of Computer Science, Utrecht University} , school = {Department of Computer Science, Utrecht University} , number = {UU-CS-2006-051} , year = {2006} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2006-051.html|}} @article{paige82finite-diff , eprint = {papers/paige82finite-diff.pdf} , title = {{Finite Differencing of Computable Expressions}} , author = {Paige, Robert and Koenig, Shaye} , journal = {ACM TOPLAS} , pages = {402 - 454} , number = {3} , volume = {4} , year = {1982} , howpublished = {\verb|http://doi.acm.org/10.1145/357172.357177|}} @article{boehm88gc-c , eprint = {papers/boehm88gc-c.pdf} , title = {{Garbage Collection in an Uncooperative Environment}} , author = {Boehm, H. and Weiser, M.} , journal = {Software Practice and Experience} , month = {Sep} , pages = {807-820} , year = {1988} , howpublished = {\verb|http://www.hpl.hp.com/personal/Hans_Boehm/spe_gc_paper/|}} @misc{boehm06gc-www , eprint = {papers/boehm06gc-www.pdf} , title = {{A garbage collector for C and C++}} , author = {Boehm, H.} , year = {2006} , howpublished = {\verb|http://www.hpl.hp.com/personal/Hans_Boehm/gc/|}} @inproceedings{peytonjones99impr-exc , eprint = {papers/peytonjones99impr-exc.pdf} , title = {{A Semantics for Imprecise Exceptions}} , author = {Peyton Jones, Simon and Reid, Alasteir and Hoare, Tony and Marlow, Simon and Henderson, Fergus} , booktitle = {Programming Language Design and Implementation} , pages = {25-36} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones99semantics.html|}} @inproceedings{peytonjones02awkward-squad , eprint = {papers/peytonjones02awkward-squad.pdf} , title = {{Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell }} , author = {Peyton Jones, Simon} , booktitle = {Engineering theories of software construction, Marktoberdorf Summer School} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones02tackling.html|}} @inproceedings{peytonjones99weakptr-stablenm , eprint = {papers/peytonjones99weakptr-stablenm.pdf} , title = {{Stretching the storage manager: weak pointers and stable names in Haskell}} , author = {Peyton Jones, Simon and Marlow, Simon and Elliott, Conal} , booktitle = {Implementation of Functional Languages} , pages = {37-58} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/peytonjones99stretching.html|}} @inbook{baader01unif-th , eprint = {papers/baader01unif-th.pdf} , title = {{Unification Theory}} , author = {Baader, Franz and Snyder, Wayne} , booktitle = {Handbook of Automated Reasoning} , chapter = {8} , pages = {447-531} , publisher = {Elsevier Science Publishers} , year = {2001}} @mastersthesis{geest07cnstr-tycls-ext , eprint = {papers/geest07cnstr-tycls-ext.pdf} , title = {{Constraints for Type Class Extensions}} , author = {Geest, Gerrit van den} , school = {Universiteit Utrecht, Department of Information and Computing Sciences} , number = {INF/SCR-06-36} , year = {2007} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Ehc/GvdGeest|}} @article{sulzmann07fundep-chr , eprint = {papers/sulzmann07fundep-chr.pdf} , title = {{Understanding Functional Dependencies via Constraint Handling Rules}} , author = {Sulzmann, Martin and Duck, Gregory J. and Peyton-Jones, Simon and Stuckey, Peter J.} , journal = {Journal of Functional Programming} , month = {Jan} , pages = {83 - 129} , number = {1} , volume = {17} , year = {2007} , howpublished = {\verb|http://dx.doi.org/10.1017/S0956796806006137|}} @article{jaffar94clp-survey , eprint = {papers/jaffar94clp-survey.pdf} , title = {{Constraint Logic Programming: A Survey}} , author = {Jaffar, Joxan and Maher, Michael J.} , journal = {Journal of Logic Programming} , pages = {503 - 581} , volume = {19/20} , year = {1994} , howpublished = {\verb|http://citeseer.ist.psu.edu/334926.html|}} @inproceedings{chakravarty05assoc-ty-syn , eprint = {papers/chakravarty05assoc-ty-syn.pdf} , title = {{Associated Type Synonyms}} , author = {Chakravarty, Manuel M.T. and Keller, Gabriele and Peyton Jones, Simon} , booktitle = {International Conference on Functional Programming} , pages = {241 - 253} , year = {2005} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/papers/CKP05.html|}} @inproceedings{chakravarty04assoc-tp-class , eprint = {papers/chakravarty04assoc-tp-class.pdf} , title = {{Associated Types with Class}} , author = {Chakravarty, Manuel M.T. and Keller, Gabriele and Peyton Jones, Simon and Marlow, Simon} , booktitle = {Principles of Programming Languages} , pages = {1 - 13} , year = {2005} , howpublished = {\verb|http://www.cse.unsw.edu.au/~chak/papers/CKP05.html|}} @inproceedings{sulzmann06tycls-inf-multi-par , eprint = {papers/sulzmann06tycls-inf-multi-par.pdf} , title = {{Principal Type Inference for GHC-Style Multi-Parameter Type Classes}} , author = {Sulzmann, Martin and Schrijvers, Tom and Stuckey, Peter J.} , booktitle = {ASIAN Symposium on Programming Languages and Systems} , year = {2006} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @misc{sulzmann05assoc-fundep , eprint = {papers/sulzmann05assoc-fundep.pdf} , title = {{Associated Functional Dependencies}} , author = {Sulzmann, Martin and Lam, Edmund Soon Lee} , year = {2005} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann|}} @misc{stuckey04exist-tycls , eprint = {papers/stuckey04exist-tycls.pdf} , title = {{Existentially Quantified Type Classes}} , author = {Stuckey, Peter J. and Sulzmann, Martin and Wazny, Jeremy} , year = {2004} , howpublished = {\verb|http://www.comp.nus.edu.sg/~sulzmann/|}} @article{erwig01inductive-graph , eprint = {papers/erwig01inductive-graph.pdf} , title = {{Inductive Graphs and Functional Graph Algorithms}} , author = {Erwig, Martin} , journal = {Journal of Functional Programming} , pages = {467 - 492} , number = {5} , volume = {11} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/erwig01inductive.html|}} @book{fruhwirth03essence-constrprog , eprint = {papers/fruhwirth03essence-constrprog.pdf} , title = {{Essentials of Constraint Programming}} , author = {Fr{\"u}hwirth, Thom and Abdennadher, Slim} , publisher = {Springer} , year = {2003}} @misc{lattner07www-llvm , eprint = {papers/lattner07www-llvm.pdf} , title = {{The LLVM Compiler Infrastructure Project}} , author = {Lattner, Chris} , year = {2007} , howpublished = {\verb|http://llvm.org/|}} @inproceedings{dreyer07mod-tyclass , eprint = {papers/dreyer07mod-tyclass.pdf} , title = {{Modular Type Classes}} , author = {Dreyer, Derek and Harper, Robert and Chakravarty, Manuel M.T. and Keller, Gabriele} , booktitle = {Principles of Programming Languages} , pages = {63 - 70} , year = {2007}} @inproceedings{kennedy76ag-gen , eprint = {papers/kennedy76ag-gen.pdf} , title = {{Automatic generation of efficient evaluators for attribute grammars}} , author = {Kennedy, Ken and Warren, Scott K.} , booktitle = {Principles of Programming Languages} , pages = {32-49} , year = {1976 } , howpublished = {\verb|http://doi.acm.org/10.1145/800168.811538|}} @misc{www07ghc-dev-wiki , eprint = {papers/www07ghc-dev-wiki.pdf} , title = {{GHC Developer Wiki}} , author = {{GHC Team}} , year = {2007} , howpublished = {\verb|http://hackage.haskell.org/trac/ghc|}} @inproceedings{dijkstra07ehcstruct , eprint = {papers/dijkstra07ehcstruct.pdf} , title = {{The Structure of the Essential Haskell Compiler, or Coping with Compiler Complexity}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Haskell Workshop} , year = {2007} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Atze/WebHome/20070831-ifl07-ehcstruct.pdf|}} @article{kastens80order-attrgam , eprint = {papers/kastens80order-attrgam.pdf} , title = {{Ordered Attribute Grammars}} , author = {Kastens, Uwe} , journal = {Acta Informatica} , pages = {229-256} , volume = {13} , year = {1980}} @article{knuth68ag-first-intro , eprint = {papers/knuth68ag-first-intro.pdf} , title = {{Semantics of Context-Free Languages}} , author = {Knuth, Donald E.} , journal = {Theory of Computing Systems} , month = {June} , pages = {127-145} , number = {2} , volume = {2} , year = {1968 }} @article{reps84synth-gen , eprint = {papers/reps84synth-gen.pdf} , title = {{The Synthesizer Generator}} , author = {Reps, Thomas and Teitelbaum, Tim} , journal = {ACM SIGSOFT Software Engineering Notes} , pages = {42-48} , number = {3} , volume = {9} , year = {1984} , howpublished = {\verb|http://doi.acm.org/10.1145/390010.808247|}} @book{reps84gen-langbased-env , eprint = {papers/reps84gen-langbased-env.pdf} , title = {{Generating language-based environments}} , author = {Reps, Thomas} , publisher = {Massachusetts Institute of Technology} , year = {1984 }} @inproceedings{demers81incr-eval-ag , eprint = {papers/demers81incr-eval-ag.pdf} , title = {{Incremental evaluation for attribute grammars with application to syntax-directed editors}} , author = {Demers, Alan and Reps, Thomas and Teitelbaum, Tim} , booktitle = {Principles of Programming Languages} , pages = {105-116} , year = {1981} , howpublished = {\verb|http://doi.acm.org/10.1145/567532.567544|}} @techreport{teitelbaum80cornell-synth-gen , eprint = {papers/teitelbaum80cornell-synth-gen.pdf} , title = {{The Cornell Program Synthesizer: a syntax-directed programming environment}} , author = {Teitelbaum, Tim and Reps, Thomas} , institution = {Dept. Computer Science, Cornell University} , school = {Dept. Computer Science, Cornell University} , month = {May} , number = {TR80-421} , publisher = {Dept. Computer Science, Cornell University} , year = {1980}} @inproceedings{schrage05dazzle , eprint = {papers/schrage05dazzle.pdf} , title = {{Haskell ready to dazzle the real world}} , author = {Schrage, Martijn M. and IJzendoorn, Arjan van and Gaag, Linda C. van der} , booktitle = {Haskell Workshop} , pages = {17-26} , year = {2005} , howpublished = {\verb|http://doi.acm.org/10.1145/1088348.1088351|}} @misc{www07energy-doubled , eprint = {papers/www07energy-doubled.pdf} , title = {{Data centre energy consumption has doubled since 2000}} , author = {IT news} , year = {2007} , howpublished = {\verb|http://www.itnews.com.au|}} @misc{loper07datacenter-energy , eprint = {papers/loper07datacenter-energy.pdf} , title = {{Energy Efficiency in Data Centers: A New Policy Frontier}} , author = {Loper, Joe and Parr, Sarah} , year = {2007} , howpublished = {\verb|http://www.ase.org/content/news/detail/3591|}} @inproceedings{hoover86incr-ag-tuple , eprint = {papers/hoover86incr-ag-tuple.pdf} , title = {{Efficient incremental evaluation of aggregate values in attribute grammars}} , author = {Hoover, Roger and Teitelbaum, Tim} , booktitle = {Compiler Construction} , pages = {39-50} , year = {1986 } , howpublished = {\verb|http://doi.acm.org/10.1145/12276.13315|}} @phdthesis{maddox97incr-static-anal , eprint = {papers/maddox97incr-static-anal.pdf} , title = {{Incremental Static Semantic Analysis}} , author = {Maddox III, William Harry} , institution = {University of California, Berkeley} , school = {University of California, Berkeley} , number = {UCB/CSD--97--948} , year = {1997} , howpublished = {\verb|http://citeseer.comp.nus.edu.sg/maddox97incremental.html|}} @phdthesis{hedin92incr-sem-anal , eprint = {papers/hedin92incr-sem-anal.pdf} , title = {{Incremental Semantic Analysis}} , author = {Hedin, Gorel} , institution = {Lund Institute of Technology, Department of Computer Science, SDE Research} , school = {Lund Institute of Technology, Department of Computer Science, SDE Research} , year = {1992}} @techreport{hedin94door-ag-overv , eprint = {papers/hedin94door-ag-overv.pdf} , title = {{An Overview of Door Attribute Grammars}} , author = {Hedin, Gorel} , institution = {Department of Computer Science, Lund University} , school = {Department of Computer Science, Lund University} , number = {LU-CS-TR:94-123} , year = {1994} , howpublished = {\verb|http://www.cs.lth.se/Research/ProgEnv/OOAG.html|}} @techreport{barendregt94intro-lambda-calc , eprint = {papers/barendregt94intro-lambda-calc.pdf} , title = {{Introduction to Lambda Calculus}} , author = {Barendregt, H. and Barendsen, E.} , institution = {Department of Computer Science, University of Nijmegen} , school = {Department of Computer Science, University of Nijmegen} , year = {1994} , howpublished = {\verb|http://citeseer.comp.nus.edu.sg/barendregt94introduction.html|}} @book{barendregt84lambda-calc , eprint = {papers/barendregt84lambda-calc.pdf} , title = {{The lambda calculus, its syntax and semantics}} , author = {Barendregt, Henk} , publisher = {North-Holland} , year = {1984}} @misc{parigot99biblio-ag , eprint = {papers/parigot99biblio-ag.pdf} , title = {{Bibliography on Attribute Grammars}} , author = {Parigot, Didier} , year = {1999} , howpublished = {\verb|http://liinwww.ira.uka.de/bibliography/Compiler/AG.html|}} @misc{www93centaur , eprint = {papers/www93centaur.pdf} , title = {{CENTAUR}} , author = {Bertot, Janet and Thery, Laurent} , year = {1993} , howpublished = {\verb|http://www-sop.inria.fr/croap/centaur/centaur.html|}} @article{frost96memo-fun , eprint = {papers/frost96memo-fun.pdf} , title = {{Memoizing purely functional top-down backtracking language processors}} , author = {Frost, Richard A. and Szydlowski, Barbara} , journal = {Science of Computer Programming} , pages = {2630288} , volume = {27} , year = {1996} , howpublished = {\verb|http://dx.doi.org/10.1016/0167-6423(96)00014-7|}} @inproceedings{saraiva00func-incr-ag-eval , eprint = {papers/saraiva00func-incr-ag-eval.pdf} , title = {{Functional, incremental attribute rvaluation}} , author = {Saraiva, Joao and Swierstra, Doaitse S. and Kuiper, Matthijs} , booktitle = {Compiler Construction} , editor = {David Watt} , pages = {279--294} , number = {1781} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2000}} @techreport{pugh88incr-func , eprint = {papers/pugh88incr-func.pdf} , title = {{Incremental Computation and the Incremental Evaluation of Functional Programs}} , author = {Pugh, William W.} , institution = {Cornell University} , school = {Cornell University} , number = {TR88-936} , year = {1988} , howpublished = {\verb|http://hdl.handle.net/1813/6776|}} @misc{www05uuag , eprint = {papers/www05uuag.pdf} , title = {{Attribute Grammar System}} , author = {Swierstra, Doaitse S. and Baars, Arthur} , year = {2005} , howpublished = {\verb|http://www.cs.uu.nl/wiki/HUT/AttributeGrammarSystem|}} @misc{demoor02incr-anal-langfact , eprint = {papers/demoor02incr-anal-langfact.pdf} , title = {{Incremental Program Analysis via Language Factors}} , author = {de Moor, Oege and Drape, Stephen and Lacey, David and Sittampalam, Ganesh} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/demoor02incremental.html|}} @book{conway71reg-alg-fin-mach , eprint = {papers/conway71reg-alg-fin-mach.pdf} , title = {{Regular Algebra and Finite Machines}} , author = {Conway, John Horton} , publisher = {Chapman and Hall} , year = {1971}} @inproceedings{sittampalam04incr-trafo , eprint = {papers/sittampalam04incr-trafo.pdf} , title = {{Incremental Execution of Transformation Specifications}} , author = {Sittampalam, Ganesh and de Moor, Oege and Larsen, Ken Friis} , booktitle = {Principles of Programming Languages} , pages = {26-38} , year = {2004} , howpublished = {\verb|http://citeseer.ist.psu.edu/sittampalam04incremental.html|}} @article{ryder88incr-dataflow-anal , eprint = {papers/ryder88incr-dataflow-anal.pdf} , title = {{Incremental Data-Flow Analysis Algorithms}} , author = {Ryder, Barbara G. and Paull, Marvin C.} , journal = {ACM TOPLAS} , pages = {1-50} , number = {1} , volume = {10} , year = {1988 }} @inproceedings{liu05incr-object-abstr , eprint = {papers/liu05incr-object-abstr.pdf} , title = {{Incrementalization Across Object Abstraction}} , author = {Liu, Yanhong A. and Stoller, Scott D. and Gorbovitski, Michael and Rothamel, Tom and Liu, Yanni Ellen} , booktitle = {OOPSLA} , pages = {473-486} , year = {2005}} @inproceedings{yellin88inc-incr-comp-lang , eprint = {papers/yellin88inc-incr-comp-lang.pdf} , title = {{INC: a language for incremental computations}} , author = {Yellin, D. and Strom, R.} , booktitle = {Programming Language Design and Implementation} , pages = {115-124} , year = {1988 } , howpublished = {\verb|http://doi.acm.org/10.1145/53990.54002|}} @article{paige86prog-invariants , eprint = {papers/paige86prog-invariants.pdf} , title = {{Programming with Invariants}} , author = {Paige, Robert} , journal = {IEEE Software} , pages = {56-69} , number = {1} , volume = {3} , year = {1986}} @inproceedings{gupta93views-incr , eprint = {papers/gupta93views-incr.pdf} , title = {{Maintaining views incrementally}} , author = {Gupta, Ashish and Mumick, Inderpal Singh and Subrahmanian, V.S.} , booktitle = {ACM SIGMOD International conference on Management of data} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/170035.170066|}} @article{katz78prog-opt-invar , eprint = {papers/katz78prog-opt-invar.pdf} , title = {{Program optimization using invariants}} , author = {Katz, S.} , journal = {IEEE Transaction on Software Engineering} , pages = {378-389} , number = {5} , volume = {4} , year = {1978}} @inproceedings{nakamura01incr-obj-query , eprint = {papers/nakamura01incr-obj-query.pdf} , title = {{Incremental computation of complex object queries}} , author = {Nakamura, Hiroaki} , booktitle = {OOPSLA} , pages = {156-165} , year = {2001} , howpublished = {\verb|http://doi.acm.org/10.1145/504282.504294|}} @inproceedings{ramalingam93biblio-incr , eprint = {papers/ramalingam93biblio-incr.pdf} , title = {{A categorized bibliography on incremental computation}} , author = {Ramalingam, G. and Reps, Thomas} , booktitle = {Principles of Programming Languages} , pages = {502-510} , year = {1993 } , howpublished = {\verb|http://doi.acm.org/10.1145/158511.158710|}} @inproceedings{hage07gener-use-anal , eprint = {papers/hage07gener-use-anal.pdf} , title = {{A Generic Usage Analysis with Subeffect Qualifiers}} , author = {Hage, Jurriaan and Holdermans, Stefan and Middelkoop, Arie} , booktitle = {International Conference on Functional Programming} , year = {2007}} @inproceedings{kuiper98lrc , eprint = {papers/kuiper98lrc.pdf} , title = {{Lrc - A Generator for Incremental Language-Oriented Tools}} , author = {Kuiper, Matthijs and Saraiva, Joao} , booktitle = {Compiler Construction} , pages = {298-301} , year = {1998}} @inproceedings{saraiva97eff-fun-cache-mgt , eprint = {papers/saraiva97eff-fun-cache-mgt.pdf} , title = {{Effective Function Cache Management for Incremental Attribute Evaluation}} , author = {Saraiva, Joao and Kuiper, Matthijs and Swierstra, S. Doaitse} , booktitle = {International Workshop on Implementation of Functional Languages} , pages = {517-528} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/357470.html|}} @inproceedings{nissen07funsetl , eprint = {papers/nissen07funsetl.pdf} , title = {{FunSETL - Functional Reporting for ERP Systems}} , author = {Nissen, Michael and Larsen, Ken Friis} , booktitle = {Implementation of Functional Languages} , year = {2007}} @inproceedings{li07lw-conc , eprint = {papers/li07lw-conc.pdf} , title = {{Lightweight Concurrency Primitives for GHC}} , author = {Li, Peng and Marlow, Simon and Peyton Jones, Simon and Tolmach, Andrew} , booktitle = {Haskell Workshop} , pages = {107-118} , year = {2007}} @article{barendregt91gen-type-sys , eprint = {papers/barendregt91gen-type-sys.pdf} , title = {{Introduction to generalized type systems}} , author = {Barendregt, H.P.} , institution = {Radboud University} , school = {Radboud University} , journal = {Journal of Functional Programming} , month = {April} , pages = {125-154} , number = {2} , volume = {1} , year = {1991 } , howpublished = {\verb|http://hdl.handle.net/2066/17240|}} @book{schroer97gentle-comp-sys , eprint = {papers/schroer97gentle-comp-sys.pdf} , title = {{The GENTLE Compiler Construction System}} , author = {Schršer, Friedrich Wilhelm} , publisher = {R. Oldenbourg Verlag} , year = {1997}} @misc{www07gentle , eprint = {papers/www07gentle.pdf} , title = {{The GENTLE Compiler Construction System}} , year = {2007} , howpublished = {\verb|http://gentle.compilertools.net/|}} @misc{www07cocktail , eprint = {papers/www07cocktail.pdf} , title = {{Compiler Compiler Laboratory}} , author = {Grosch, Josef and Vollmer, Jurgen} , year = {2007} , howpublished = {\verb|http://www.cocolab.com/|}} @misc{www06catalog-comp-constr , eprint = {papers/www06catalog-comp-constr.pdf} , title = {{The Catalog of Compiler Construction Tools}} , year = {2006} , howpublished = {\verb|http://catalog.compilertools.net/|}} @inproceedings{grosch91cocolab-toolbox , eprint = {papers/grosch91cocolab-toolbox.pdf} , title = {{A Tool Box for Compiler Construction}} , author = {Grosch, Josef and Emmelmann, H.} , booktitle = {Proceedings of the third international workshop on Compiler compilers} , year = {1991 } , howpublished = {\verb|http://www.cocolab.com|}} @inbook{grosch92trafo-ag-patmach , eprint = {papers/grosch92trafo-ag-patmach.pdf} , title = {{Transformation of Attributed Trees Using Pattern Matching}} , author = {Grosch, Josef} , booktitle = {Compiler Construction} , number = {641} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1992 }} @inproceedings{augusteijn90elegant , eprint = {papers/augusteijn90elegant.pdf} , title = {{The Elegant compiler generator system}} , author = {Augusteijn, Lex} , booktitle = {Proceedings of the international conference on Attribute grammars and their applications} , pages = {238-254} , year = {1990 }} @misc{www08jastadd , eprint = {papers/www08jastadd.pdf} , title = {{JastAdd}} , year = {2008} , howpublished = {\verb|http://jastadd.org/|}} @article{ekman07jastadd-system , eprint = {papers/ekman07jastadd-system.pdf} , title = {{The JastAdd System - modular extensible compiler construction}} , author = {Ekman, T. and Hedin, G.} , booktitle = {Science of Computer Programming} , journal = {Science of Computer Programming} , month = {Dec} , pages = {14-26} , number = {1-3} , volume = {69} , year = {2007}} @misc{www08elegant , eprint = {papers/www08elegant.pdf} , title = {{The Elegant Homepage}} , author = {Augusteijn, Lex} , year = {2008} , howpublished = {\verb|http://www.research.philips.com/technologies/syst%5fsoftw/elegant/|}} @article{hedin03jastadd-aspects , eprint = {papers/hedin03jastadd-aspects.pdf} , title = {{JastAdd, an aspect-oriented compiler construction system}} , author = {Hedin, Gorel and Magnusson, Eva} , journal = {Science of Computer Programming} , month = {Apr} , pages = {37-58} , number = {1} , volume = {47} , year = {2003}} @inproceedings{ekman07jastadd-java , eprint = {papers/ekman07jastadd-java.pdf} , title = {{The JastAdd Extensible Java Compiler}} , author = {Ekman, T. and Hedin, G.} , booktitle = {OOPSLA} , pages = {1-18} , year = {2007} , howpublished = {\verb|http://doi.acm.org/10.1145/1297027.1297029|}} @misc{www08polyglot , eprint = {papers/www08polyglot.pdf} , title = {{Polyglot}} , year = {2008} , howpublished = {\verb|http://www.cs.cornell.edu/projects/polyglot/|}} @inproceedings{nystrom03polyglot-comp-framew , eprint = {papers/nystrom03polyglot-comp-framew.pdf} , title = {{Polyglot: An Extensible Compiler Framework for Java}} , author = {Nystrom, Nathaniel and Clarkson, Micheal R. and Myers, Andrew C.} , booktitle = {Compiler Construction} , month = {Apr} , pages = {138-152} , number = {2622} , series = {LNCS} , year = {2003} , howpublished = {\verb|http://www.cs.cornell.edu/projects/polyglot/|}} @inproceedings{sewell07ott-tool-semantic , eprint = {papers/sewell07ott-tool-semantic.pdf} , title = {{Ott: effective tool support for the working semanticist}} , author = {Sewell, Peter and Nardelli, Francesco Zappa and Owens, Scott and Peskine, Gilles and et.al.} , booktitle = {ICFP} , pages = {1-12} , year = {2007} , howpublished = {\verb|http://doi.acm.org/10.1145/1291220.1291155|}} @inproceedings{robinson76fast-unif , eprint = {papers/robinson76fast-unif.pdf} , title = {{Fast unification}} , author = {Robinson, J.A.} , booktitle = {Theorem Proving Workshop} , year = {1976 }} @inproceedings{hansen06anal-fast-unif , eprint = {papers/hansen06anal-fast-unif.pdf} , title = {{Analysis of Fast Unification: An Exercise in Applied Logic}} , author = {Hansen, Kaj Borge} , booktitle = {Modality Matters} , editor = {Lagerlund, H. and Lindstr\"om, S. and Sliwinski, R.} , year = {2006} , howpublished = {\verb|http://www.filosofi.uu.se/eng/personal/kajborgeha.htm|}} @inproceedings{robinson71unification , eprint = {papers/robinson71unification.pdf} , title = {{Computational logic: The unification computation}} , author = {Robinson, J.A.} , booktitle = {Machine Intelligence} , editor = {Meltzer, B. and Michie, D.} , pages = {63-72} , year = {1971}} @article{venkatesh05unif-sourcetrack , eprint = {papers/venkatesh05unif-sourcetrack.pdf} , title = {{Source-tracking unification}} , author = {Choppella, Venkatesh and Haynes, Christopher T.} , journal = {Information and Computation} , pages = {121-159} , number = {2} , volume = {201} , year = {2005}} @article{robinson65unif-resoution , eprint = {papers/robinson65unif-resoution.pdf} , title = {{A machine-oriented logic based on the resolution principle}} , author = {Robinson, J.A.} , booktitle = {Machine Intelligence} , editor = {Meltzer, B. and Michie, D.} , journal = {Journal of the ACM} , month = {Jan} , pages = {23-41} , number = {1} , volume = {12} , year = {1965}} @misc{logic06resolution , eprint = {papers/logic06resolution.pdf} , title = {{CS157: Computational Logic, Relational Resolution}} , booktitle = {Computational Logic} , year = {2006} , howpublished = {\verb|http://logic.stanford.edu/classes/cs157|}} @techreport{gallier91unif-survey , eprint = {papers/gallier91unif-survey.pdf} , title = {{Unification Procedures in Automated Deduction Methods Based on Matings: A Survey}} , author = {Gallier, Jean H.} , institution = {University of Pennsylvania, Department of Computer and Information Science} , school = {University of Pennsylvania, Department of Computer and Information Science} , number = {MS-CIS-91-76} , year = {1991 }} @article{knight89unif-survey , eprint = {papers/knight89unif-survey.pdf} , title = {{Unification: a multidisciplinary survey}} , author = {Knight, Kevin} , journal = {ACM Computing Surveys} , month = {Mar} , pages = {93-124} , number = {1} , volume = {21} , year = {1989} , howpublished = {\verb|http://doi.acm.org/10.1145/62029.62030|}} @inproceedings{comon91disunification , eprint = {papers/comon91disunification.pdf} , title = {{Disunification: a Survey}} , author = {Comon, Hubert} , booktitle = {Computational Logic - Essays in Honor of Alan Robinson} , year = {1991 } , howpublished = {\verb|http://citeseer.ist.psu.edu/173753.html|}} @article{paterson78unif-linear , eprint = {papers/paterson78unif-linear.pdf} , title = {{Linear unification}} , author = {Paterson, M.S. and Wegman, M.N.} , journal = {Journal of Computer and System Sciences} , month = {Apr} , pages = {158-167} , number = {2} , volume = {16} , year = {1978 }} @{lassez88unif-revisited , eprint = {papers/lassez88unif-revisited.pdf} , title = {{Unification revisited}} , author = {Lassez, J.-L. and Maher, M. and Marriot, K.} , year = {1988 }} @inproceedings{claessen99observable-share , eprint = {papers/claessen99observable-share.pdf} , title = {{Observable Sharing for Functional Circuit Description}} , author = {Claessen, Koen and Sands, David} , booktitle = {Asian Computing Science Conference} , pages = {62-73} , number = {1742} , series = {LNCS} , year = {1999} , howpublished = {\verb|http://citeseer.ist.psu.edu/370543.html|}} @inproceedings{attanasio01par-gc-compare , eprint = {papers/attanasio01par-gc-compare.pdf} , title = {{A Comparative Evaluation of Parallel Garbage Collectors}} , author = {Attanasio, C. and Bacon, D. and Cocchi, A. and Smith, S.} , booktitle = {Fourteenth Annual Workshop on Languages and Compilers for Parallel Computing} , pages = {177-192} , number = {2624} , publisher = {Springer-Verlag} , series = {LNCS} , year = {2001} , howpublished = {\verb|http://citeseer.ist.psu.edu/attanasio01comparative.html|}} @inproceedings{endo97gc-par-scalable , eprint = {papers/endo97gc-par-scalable.pdf} , title = {{A Scalable Mark-Sweep Garbage Collector on Large-Scale Shared-Memory Machines}} , author = {Endo, Toshio and Taura, Keniro and Yonezawa, Akinori} , booktitle = {High Performance Computing and Networking} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/83365.html|}} @inproceedings{henderson02gc-uncoop-accurate , eprint = {papers/henderson02gc-uncoop-accurate.pdf} , title = {{Accurate garbage collection in an uncooperative environment}} , author = {Henderson, F.} , booktitle = {International Symposium on Memory Management} , pages = {150-156} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/henderson02accurate.html|}} @inproceedings{marlow08par-gc-haskell , eprint = {papers/marlow08par-gc-haskell.pdf} , title = {{Parallel generational-copying garbage collection with a block-structured heap}} , author = {Marlow, Simon and Harris, Tim and James, Roshan P. and Peyton Jones, Simon} , booktitle = {International Symposium on Memory Management} , year = {2008} , howpublished = {\verb|http://research.microsoft.com/~simonpj/papers/parallel-gc/index.htm|}} @inproceedings{garrigue97ext-ml-rank2-poly , eprint = {papers/garrigue97ext-ml-rank2-poly.pdf} , title = {{Extending ML with Semi-Explicit Higher-Order Polymorphism }} , author = {Garrigue, Jacques and Remy, Didier} , booktitle = {Theoretical Aspects of Computer Software} , pages = {20-46} , year = {1997} , howpublished = {\verb|http://citeseer.ist.psu.edu/115759.html|}} @inproceedings{pfenning88part-poly-inf , eprint = {papers/pfenning88part-poly-inf.pdf} , title = {{Partial polymorphic type inference and higher-order unification}} , author = {Pfenning, Frank} , booktitle = {LISP and functional programming} , pages = {153-163} , year = {1988} , howpublished = {\verb|http://doi.acm.org/10.1145/62678.62697|}} @techreport{hosoya99howgood-locty-infer , eprint = {papers/hosoya99howgood-locty-infer.pdf} , title = {{How Good is Local Type Inference?}} , author = {Hosoya, Haruo and Pierce, Benjamin C.} , year = {1999}} @misc{jones03gc-bibl , eprint = {papers/jones03gc-bibl.pdf} , title = {{The Garbage Collection Bibliography}} , author = {Jones, Richard} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/jones03garbage.html|}} @misc{boehm00gc-par-multiproc , eprint = {papers/boehm00gc-par-multiproc.pdf} , title = {{Fast Multiprocessor Memory Allocation and Garbage Collection}} , author = {Boehm, Hans-J.} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm00fast.html|}} @inproceedings{boehm03finalizer-destr-synch , eprint = {papers/boehm03finalizer-destr-synch.pdf} , title = {{Destructors, Finalizers, and Synchronization}} , author = {Boehm, Hans-J.} , booktitle = {Principles of Programming Languages} , year = {2003} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm03destructors.html|}} @inproceedings{boehm00gc-cachemiss-reduce , eprint = {papers/boehm00gc-cachemiss-reduce.pdf} , title = {{Reducing Garbage Collector Cache Misses}} , author = {Boehm, Hans-J.} , booktitle = {International Symposium on Memory Management} , year = {2000} , howpublished = {\verb|http://citeseer.ist.psu.edu/boehm00reducing.html|}} @misc{vytiniotis08higher-rank , eprint = {papers/vytiniotis08higher-rank.pdf} , title = {{FPH : First-class Polymorphism for Haskell, Dimitrios Vytiniotis, Stephanie Weirich, and Simon Peyton Jones, submitted to ICFP 2008}} , author = {Vytiniotis, Dimitrios and Weirich, Stephanie and Peyton Jones, Simon} , year = {2008}} @inbook{mitchell84ty-infer-contain , eprint = {papers/mitchell84ty-infer-contain.pdf} , title = {{Type Inference and Containment}} , author = {Mitchell, John C.} , booktitle = {Semantics of Data Types} , journal = {Information and Computation} , number = {173} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {76} , year = {1984 } , howpublished = {\verb|http://www.springerlink.com/content/y601023056327n08/|}} @misc{www08lernet , eprint = {papers/www08lernet.pdf} , title = {{LERnet}} , author = {LERnet} , year = {2008} , howpublished = {\verb|http://alfa.di.uminho.pt/~lernet/|}} @techreport{camarao01ty-infer-overl , eprint = {papers/camarao01ty-infer-overl.pdf} , title = {{Type Inference for Overloading}} , author = {Camarao, Carlos and Figueiredo, Lucilia} , institution = {Universidade Federal de Minas Gerais} , school = {Universidade Federal de Minas Gerais} , year = {2001}} @inproceedings{camarao99ty-infer-overl-noann , eprint = {papers/camarao99ty-infer-overl-noann.pdf} , title = {{Type Inference for Overloading without Restrictions, Declarations or Annotations}} , author = {Camarao, Carlos and Figueiredo, Lucilia} , booktitle = {Functional and Logic Programming} , institution = {Universidade Federal de Minas Gerais} , school = {Universidade Federal de Minas Gerais} , number = {1722} , publisher = {Springer-Verlag} , series = {LNCS} , year = {1999}} @inproceedings{remy08graph-ty-cnstr-mlf , eprint = {papers/remy08graph-ty-cnstr-mlf.pdf} , title = {{Graphic Type Constraints and Efficient Type Inference: from ML to MLF}} , author = {Remy, Didier and Yakobowski, Boris} , booktitle = {International Conference on Functional Programming} , year = {2008}} @inproceedings{leijen08hmf-ty-infer , eprint = {papers/leijen08hmf-ty-infer.pdf} , title = {{HMF: Simple type inference for first-class polymorphism}} , author = {Leijen, Daan} , booktitle = {International Conference on Functional Programming} , year = {2008}} @techreport{dybvig94bibop-mem-mgt , eprint = {papers/dybvig94bibop-mem-mgt.pdf} , title = {{Don't Stop the BIBOP: Flexible and Efficient Storage Management for Dynamically-Typed Languages}} , author = {Dybvig, R. Kent and Eby, David and Bruggeman, Carl} , institution = {Indiana University Department of Computer Science} , school = {Indiana University Department of Computer Science} , month = {Mar} , number = {TR400} , year = {1994} , howpublished = {\verb|https://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR400|}} @article{knowlton65buddy-fast-storage , eprint = {papers/knowlton65buddy-fast-storage.pdf} , title = {{A fast storage allocator}} , author = {Knowlton, Kenneth C.} , journal = {Communications of the ACM} , pages = {623-625} , number = {10} , volume = {8} , year = {1965} , howpublished = {\verb|http://doi.acm.org/10.1145/365628.365655|}} @inproceedings{kaufman80buddy-var-mem-mgt , eprint = {papers/kaufman80buddy-var-mem-mgt.pdf} , title = {{Variations on the binary buddy system for dynamic memory management}} , author = {Kaufman, Arie} , booktitle = {ACM Southeast Regional Conference} , year = {1980 } , howpublished = {\verb|http://doi.acm.org/10.1145/503838.503848|}} @techreport{johnson92buddy-paral-mem-mgt , eprint = {papers/johnson92buddy-paral-mem-mgt.pdf} , title = {{Space efficient parallel buddy memory management}} , author = {Johnson, Theodore and Davis, Tim} , institution = {Department of Computer and Information Science, University of Florida} , school = {Department of Computer and Information Science, University of Florida} , number = {TR 92-008} , year = {1992 } , howpublished = {\verb|ftp://ftp.cis.ufl.edu/pub/tech-reports/tr92/tr92-008.ps.Z|}} @inproceedings{flood01garbcoll-paral-shmem , eprint = {papers/flood01garbcoll-paral-shmem.pdf} , title = {{Parallel Garbage Collection for Shared Memory Multiprocessors}} , author = {Flood, Christine H. and Detlefs, David and Shavit, Nir and Zhang, Xiaolan} , booktitle = {Java Virtual Machine Research and Technology Symposium} , year = {1991 }} @inproceedings{hayes92finalize-collector , eprint = {papers/hayes92finalize-collector.pdf} , title = {{Finalization in the Collector Interface}} , author = {Hayes, Barry} , booktitle = {International Workshop on Memory Management} , pages = {277-298} , number = {637} , series = {LNCS} , year = {1992} , howpublished = {\verb|http://www.springerlink.com/content/w17q82r35874712t/|}} @inproceedings{while92gc-stg-increm , eprint = {papers/while92gc-stg-increm.pdf} , title = {{Incremental garbage collection for the Spineless Tagless G-machine}} , author = {While, R.L. and Field, A.J.} , booktitle = {Massey Functional Programming Workshop} , year = {1992 } , howpublished = {\verb|http://www.doc.ic.ac.uk/~ajf/Research/publications.html|}} @mastersthesis{cheadle99gc-ghc-increm , eprint = {papers/cheadle99gc-ghc-increm.pdf} , title = {{Incremental Garbage Collection for Haskell}} , author = {Cheadle, Andrew} , school = {Department of Computing, Imperial College, London} , year = {1999}} @inproceedings{pizlo08gc-realtime-conc , eprint = {papers/pizlo08gc-realtime-conc.pdf} , title = {{A study of concurrent real-time garbage collectors}} , author = {Pizlo, Filip and Petrank, Erez and Steensgaard, Bjarne} , booktitle = {Programming Language Design and Implementation} , pages = {33-44} , year = {2008}} @inproceedings{pizlo07gc-stopless-realtime-multi , eprint = {papers/pizlo07gc-stopless-realtime-multi.pdf} , title = {{STOPLESS: A real-time garbage collector for multiprocessors}} , author = {Pizlo, Filip and Frampton, Daniel and Petrank, Erez and Steensgard, Bjarne} , booktitle = {International Symposium on Memory Management} , pages = {159-172} , year = {2007}} @inproceedings{pizlo07gc-hierarch-realtime , eprint = {papers/pizlo07gc-hierarch-realtime.pdf} , title = {{Hierarchical real-time garbage collection}} , author = {Pizlo, Filip and Hosking, Anthony L. and Vitek, Jan} , booktitle = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools (LCTES07)} , pages = {123-133} , year = {2007}} @inproceedings{siebert07gc-realtime-jamaica , eprint = {papers/siebert07gc-realtime-jamaica.pdf} , title = {{Realtime garbage collection in the JamaicaVM 3.0}} , author = {Siebert, Fridtjof} , booktitle = {Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007)} , pages = {94-103} , year = {2007}} @article{baker78listproc-realtime , eprint = {papers/baker78listproc-realtime.pdf} , title = {{List processing in real time on a serial computer}} , author = {Baker, Henry G.} , journal = {Communications of the ACM} , pages = {182-194} , year = {1978}} @inproceedings{stanchina07gc-realtim-markorsweep , eprint = {papers/stanchina07gc-realtim-markorsweep.pdf} , title = {{Mark-sweep or copying? ``a best of both worlds'' algorithm and a hardware-supported real-time implementation}} , author = {Stanchina, Sylvain and Meyer, Mattias} , booktitle = {International Symposium on Memory Management} , pages = {173-182} , year = {2007}} @inproceedings{xian07gc-java-applserv , eprint = {papers/xian07gc-java-applserv.pdf} , title = {{AS-GC: An efficient generational garbage collector for Java application servers}} , author = {Xian, Feng and Srisa-an, Witawas and Jia, C. and Jiang, Hong} , booktitle = {ECOOP} , year = {2007}} @inproceedings{cherem06gc-dealloc-compiletime , eprint = {papers/cherem06gc-dealloc-compiletime.pdf} , title = {{Compile-time deallocation of individual objects}} , author = {Cherem, Sigmund and Rugina, Radu} , booktitle = {International Symposium on Memory Management} , pages = {138-149} , year = {2006}} @inproceedings{hosking06gc-conc-copy-multi , eprint = {papers/hosking06gc-conc-copy-multi.pdf} , title = {{Portable, mostly-concurrent and mostly-copying garbage collection for multi-processors}} , author = {Hosking, Antony L.} , booktitle = {International Symposium on Memory Management} , pages = {40-51} , year = {2006}} @inproceedings{kermany06gc-compressor , eprint = {papers/kermany06gc-compressor.pdf} , title = {{The Compressor: Concurrent, incremental and parallel compaction}} , author = {Kermany, Haim and Petrank, Erez} , booktitle = {Programming Language Design and Implementation} , pages = {354-363} , year = {2006}} @article{peterson77buddy-systems , eprint = {papers/peterson77buddy-systems.pdf} , title = {{Buddy Systems}} , author = {Peterson, James L. and Norman, Theodore A.} , journal = {Communications of the ACM} , pages = {421-431} , number = {6} , volume = {20} , year = {1977 }} @inproceedings{masmano06mem-realtime-cmp , eprint = {papers/masmano06mem-realtime-cmp.pdf} , title = {{A comparison of memory allocators for real-time applications}} , author = {Masmano, Miguel and Ripoli, Ismael and Crespo, Alfons} , booktitle = {Workshop on Java Technologies for Real-time and Embedded Systems} , pages = {68-76} , year = {2006}} @article{muthukumar06gc-java-gen-scale-multi , eprint = {papers/muthukumar06gc-java-gen-scale-multi.pdf} , title = {{Yama: a scalable generational garbage collector for Java in multiprocessor systems}} , author = {Muthukumar, R. and Janakiram, D.} , journal = {EEE Transactions on Parallel and Distributed Systems} , pages = {148-159} , number = {2} , volume = {17} , year = {2006}} @inproceedings{sagonas06gc-mark-split , eprint = {papers/sagonas06gc-mark-split.pdf} , title = {{Mark and Split}} , author = {Sagonas, Konstantinos and Wilhelmsson, Jesper} , booktitle = {International Symposium on Memory Management} , pages = {29-39} , year = {2006}} @inproceedings{bacon05gc-syncopation-metronome , eprint = {papers/bacon05gc-syncopation-metronome.pdf} , title = {{Syncopation: Generational real-time garbage collection in the Metronome}} , author = {Bacon, David F. and Cheng, Perry and Grove, David and Vechev, Martin} , booktitle = {Languages, Compilers, and Tools for Embedded Systems (LCTES'05)} , year = {2005}} @article{bacon03gc-realtime , eprint = {papers/bacon03gc-realtime.pdf} , title = {{A real-time garbage collector with low overhead and consistent utilization}} , author = {Bacon, David F. and Cheng, Perry and Rajan, V.T.} , journal = {ACM SIGPLAN Notices} , pages = {285-298} , number = {1} , volume = {38} , year = {2003}} @article{barabash05gc-srv-paral-incr-conc , eprint = {papers/barabash05gc-srv-paral-incr-conc.pdf} , title = {{A parallel, incremental, mostly concurrent garbage collector for servers}} , author = {Barabash, Katherine and Ben-Yitzhak, Ori and Goft, Irit and Kolodner, Elliot K. and Leikeman, Victor} , journal = {ACM TOPLAS} , pages = {1097-1146} , number = {6} , volume = {27} , year = {2005}} @inproceedings{hertz05gc-nopaging , eprint = {papers/hertz05gc-nopaging.pdf} , title = {{Garbage collection without paging}} , author = {Hertz, Matthew and Feng, Yi and Berger, Emery D.} , booktitle = {Programming Language Design and Implementation} , pages = {143-153} , year = {2005}} @inproceedings{vechev05gc-concur-eval , eprint = {papers/vechev05gc-concur-eval.pdf} , title = {{Derivation and evaluation of concurrent collectors}} , author = {Vechev, Martin and Bacon, David F. and Cheng, Perry and Grove, David} , booktitle = {ECOOP} , year = {2005}} @inproceedings{blackburn04gc-perf , eprint = {papers/blackburn04gc-perf.pdf} , title = {{Myths and reality: The performance impact of garbage collection}} , author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.} , booktitle = {Measurement and Modeling of Computer Systems} , year = {2004}} @inproceedings{blackburn04gc-mmtk-java , eprint = {papers/blackburn04gc-mmtk-java.pdf} , title = {{Oil and water? high performance garbage collection in Java with MMTk}} , author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.} , booktitle = {ICSE} , year = {2004}} @inproceedings{blackburn04gc-barriers , eprint = {papers/blackburn04gc-barriers.pdf} , title = {{Barriers: Friend or foe?}} , author = {Blackburn, Stephen M. and Hosking, Tony} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{detlefs04gc-first , eprint = {papers/detlefs04gc-first.pdf} , title = {{Garbage-first garbage collection}} , author = {Detlefs, David and Flood, Christine and Heller, Steven and Printezis, Tony} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{vechev04gc-writebarrier-conc , eprint = {papers/vechev04gc-writebarrier-conc.pdf} , title = {{Write barrier elision for concurrent garbage collectors}} , author = {Vechev, Martin and Bacon, F.} , booktitle = {International Symposium on Memory Management} , year = {2004}} @inproceedings{azatchi03gc-marksweep-slideview , eprint = {papers/azatchi03gc-marksweep-slideview.pdf} , title = {{An on-the-fly Mark and Sweep Garbage Collector Based on Sliding Views}} , author = {Azatchi, Hezi and Levanoni, Yossi and Paz, Harel and Petrank, Erez} , booktitle = {OOPSLA} , year = {2003}} @inproceedings{bacon03gc-fragment-space , eprint = {papers/bacon03gc-fragment-space.pdf} , title = {{Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java}} , author = {Bacon, David F. and Cheng, Perry and Rajan, V.T.} , booktitle = {Languages, Compilers, and Tools for Embedded Systems} , year = {2003}} @inproceedings{barabash03gc-mostconc-rev , eprint = {papers/barabash03gc-mostconc-rev.pdf} , title = {{Mostly concurrent garbage collection revisited}} , author = {Barabash, Katherine and Ossia, Yoav and Petrank, Erez} , booktitle = {OOPSLA} , year = {2003}} @inproceedings{boehm91gc-mostparal , eprint = {papers/boehm91gc-mostparal.pdf} , title = {{Mostly Parallel Garbage Collection}} , author = {Boehm, Hans-J. and Demers, Alan J. and Shenker, Scott} , booktitle = {Programming Language Design and Implementation} , pages = {157-164} , year = {1991}} @article{appel89gc-simple-gen , eprint = {papers/appel89gc-simple-gen.pdf} , title = {{Simple Generational Garbage Collection and Fast Allocation}} , author = {Appel, Andrew W.} , journal = {Software Practice and Experience} , pages = {171-183} , number = {2} , volume = {19} , year = {1989 } , howpublished = {\verb|http://citeseer.ist.psu.edu/appel88simple.html|}} @inproceedings{blackburn02gc-beltway , eprint = {papers/blackburn02gc-beltway.pdf} , title = {{Beltway: Getting Around Garbage Collection Gridlock}} , author = {Blackburn, Stephen M. and Jones, Richard E. and McKinley, Kathryn S. and Moss, J. Eliot B.} , booktitle = {Programming Language Design and Implementation} , year = {2002} , howpublished = {\verb|http://citeseer.ist.psu.edu/blackburn02beltway.html|}} @inproceedings{blackburn02gc-write-barrier , eprint = {papers/blackburn02gc-write-barrier.pdf} , title = {{In or out?: putting write barriers in their place}} , author = {Blackburn, Stephen M. and McKinley, Kathryn S.} , booktitle = {International Symposium on Memory Management} , month = {2} , pages = {175-184} , number = {38} , series = {ACM Sigplan Notices} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/773039.512452|}} @misc{dijkstra08effic-funct-subst-tr , eprint = {papers/dijkstra08effic-funct-subst-tr.pdf} , title = {{Efficient Functional Unification and Substitution}} , author = {Dijkstra, Atze and Middelkoop, Arie and Swierstra, S. Doaitse} , booktitle = {Implementation of Functional Languages} , year = {2008} , howpublished = {\verb|http://www.cs.uu.nl/research/techreps/UU-CS-2008-027.html|}} @techreport{rose96expl-subst , eprint = {papers/rose96expl-subst.pdf} , title = {{Explicit Substitution - Tutorial and Survey}} , author = {Rose, Kristoffer H.} , institution = {Department of Computer Science, University of Aarhus} , school = {Department of Computer Science, University of Aarhus} , number = {BRICS-LS-96-3} , year = {1996} , howpublished = {\verb|http://www.brics.dk/LS/96/3/BRICS-LS-96-3/BRICS-LS-96-3.html|}} @inproceedings{abadi89expl-subst , eprint = {papers/abadi89expl-subst.pdf} , title = {{Explicit Substitutions}} , author = {Abadi, M. and Cardelli, L. and Curien, P-L. and Levy, J-J.} , booktitle = {Principles of Programming Languages} , pages = {31-46} , year = {1991 } , howpublished = {\verb|http://doi.acm.org/10.1145/96709.96712|}} @article{abadi91expl-subst , eprint = {papers/abadi91expl-subst.pdf} , title = {{Explicit Substitutions}} , author = {Abadi, M. and Cardelli, L. and Curien, P-L.} , booktitle = {Principles of Programming Languages} , journal = {Journal of Functional Programming} , month = {Oct} , pages = {375-416} , number = {4} , volume = {1} , year = {1991 } , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.9903|}} @inproceedings{leywild08selfadj-cont , eprint = {papers/leywild08selfadj-cont.pdf} , title = {{Compiling Self-Adjusting Programs with Continuations}} , author = {Ley-Wild, Ruy and Fluet, Matthew and Acar, Umut A.} , booktitle = {ICFP} , pages = {321-333} , year = {2008}} @article{acar06adapt-fun-prog , eprint = {papers/acar06adapt-fun-prog.pdf} , title = {{Adaptive Functional Programming}} , author = {Acar, Umut A. and Blelloch, Guy E. and Harper, Robert} , journal = {ACM TOPLAS} , month = {Nov} , pages = {990-1034} , number = {6} , volume = {28} , year = {2006} , howpublished = {\verb|http://doi.acm.org/10.1145/1186632.1186634|}} @inproceedings{acar06analysis-selfadjust , eprint = {papers/acar06analysis-selfadjust.pdf} , title = {{An Experimental Analysis of Self-Adjusting Computation}} , author = {Acar, Umut A. and Blelloch, Guy E. and Blume, Matthias and Tangwongsan, Kanat} , booktitle = {Programming Language Design and Implementation} , pages = {96-107} , year = {2006} , howpublished = {\verb|http://doi.acm.org/10.1145/1133255.1133993|}} @inproceedings{magnussen07ag-coll-attr , eprint = {papers/magnussen07ag-coll-attr.pdf} , title = {{Extending Attribute Grammars with Collection Attributes - Evaluation and Applications}} , author = {Magnusson, Eva and Ekman, Torbjorn and Hedin, Gorel} , booktitle = {Source Code Analysis and Manipulation} , year = {2007}} @inproceedings{dietz87orderedlist-maint , eprint = {papers/dietz87orderedlist-maint.pdf} , title = {{Two Algorithms for Maintaining Order in a List}} , author = {Dietz, Paul F. and Sleator, Daniel} , booktitle = {Theory of Computing} , pages = {365-372} , year = {1987 } , howpublished = {\verb|http://doi.acm.org/10.1145/28395.28434|}} @inproceedings{acar04dyn-static-history , eprint = {papers/acar04dyn-static-history.pdf} , title = {{Dynamizing Static Algorithms, with Applications to Dynamic Trees and History Independence}} , author = {Acar, Umut A. and Blelloch, Guy E. and Harper, Robert and Vittes, Jorge L. and Woo, Shan Leung Maverick} , booktitle = {Discrete Algorithms} , pages = {531-540} , year = {2004}} @inproceedings{carlsson02increm-monad , eprint = {papers/carlsson02increm-monad.pdf} , title = {{Monads for Incremental Computing}} , author = {Carlsson, Magnus} , booktitle = {International Conference on Functional Programming} , pages = {26-35} , year = {2002} , howpublished = {\verb|http://doi.acm.org/10.1145/581478.581482|}} @inproceedings{bender02two-orderedlist-maint , eprint = {papers/bender02two-orderedlist-maint.pdf} , title = {{Two Simplified Algorithms for Maintaining Order in a List}} , author = {Bender, Michael A. and Cole, Richard and Demaine, Erik D. and Farach-Colton, Martin and Zito, Jack} , booktitle = {European Symposium on Algorithms} , pages = {152-164} , number = {2461} , series = {LNCS} , year = {2002}} @phdthesis{acar05phd-selfadjust-comput , eprint = {papers/acar05phd-selfadjust-comput.pdf} , title = {{Self-Adjusting Computation}} , author = {Acar, Umut A.} , school = {Department of Computer Science, Carnegie Mellon University} , year = {2005}} @inproceedings{bohannon06rel-lens-upd-view , eprint = {papers/bohannon06rel-lens-upd-view.pdf} , title = {{Relational Lenses: A Language for Updateable Views}} , author = {Bohannon, Aaron and Vaughan, Jeffrey A. and Pierce, Benjamin C.} , booktitle = {Principles of Database Systems} , year = {2006}} @techreport{pemberton92views-env , eprint = {papers/pemberton92views-env.pdf} , title = {{The Views Application Environment}} , address = {Amsterdam} , author = {Pemberton, S.} , institution = {CWI} , school = {CWI} , number = {CS-R9247} , year = {1992}} @techreport{schrage02comb-layer-arch , eprint = {papers/schrage02comb-layer-arch.pdf} , title = {{Combinators for layered software architectures}} , author = {Schrage, Martijn M. and Jeuring, Johan and Swierstra, S. Doaitse} , institution = {Faculty of Science, Information and Computing Sciences, Utrecht University} , school = {Faculty of Science, Information and Computing Sciences, Utrecht University} , number = {UU-CS-2002-030} , year = {2002}} @article{mitchell88polyty-infer-contain , eprint = {papers/mitchell88polyty-infer-contain.pdf} , title = {{Polymorphic Type Inference and Containment}} , author = {Mitchell, John C.} , booktitle = {Semantics of Data Types} , journal = {Information and Computation} , pages = {211-249} , publisher = {Springer-Verlag} , series = {LNCS} , volume = {76} , year = {1988} , howpublished = {\verb|http://dx.doi.org/10.1016/0890-5401(88)90009-0|}} @article{leivant91stratif-poly , eprint = {papers/leivant91stratif-poly.pdf} , title = {{Finitely Stratified Polymorphism}} , author = {Leivant, Daniel} , journal = {Information and Computation} , pages = {93-113} , volume = {93} , year = {1991 } , howpublished = {\verb|http://dx.doi.org/10.1016/0890-5401(91)90053-5|}} @inproceedings{leijen07mlf-systemf , eprint = {papers/leijen07mlf-systemf.pdf} , title = {{A Type Directed Translation of MLF to System F}} , author = {Leijen, Daan} , booktitle = {ICFP} , year = {2007}} @inproceedings{leijen09flexty-infer-polym , eprint = {papers/leijen09flexty-infer-polym.pdf} , title = {{Flexible types, Robust type inference for first-class polymorphism}} , author = {Leijen, Daan} , booktitle = {Principles of Programming Languages} , year = {2009}} @article{peytonjones07pract-inf-rank , eprint = {papers/peytonjones07pract-inf-rank.pdf} , title = {{Practical type inference for arbitrary-rank types}} , author = {Peyton Jones, Simon and Vytiniotis, Dimitrios and Weirich, Stephanie and Shields, Mark} , journal = {Journal of Functional Programming} , month = {Jan} , pages = {1-82} , number = {1} , volume = {17} , year = {2007}} @misc{www09jhc , eprint = {papers/www09jhc.pdf} , title = {{Jhc Haskell Compiler}} , author = {Meacham, John} , year = {2009} , howpublished = {\verb|http://repetae.net/computer/jhc/|}} @misc{www09lhc , eprint = {papers/www09lhc.pdf} , title = {{LHC Haskell Compiler}} , author = {Himmelstrup, David and Bronson, Samuel and Seipp, Austin} , year = {2009} , howpublished = {\verb|http://lhc.seize.it/|}} @misc{www09nhc98 , eprint = {papers/www09nhc98.pdf} , title = {{NHC98 Haskell Compiler}} , author = {{York Functional Programming Group}} , year = {2007} , howpublished = {\verb|http://haskell.org/nhc98/|}} @misc{www09yhc , eprint = {papers/www09yhc.pdf} , title = {{YHC York Haskell Compiler}} , author = {Shackell, Tom and Mitchell, Neil and Wilkinson, Andrew and others} , year = {2009} , howpublished = {\verb|http://haskell.org/haskellwiki/Yhc|}} @misc{www08helium , eprint = {papers/www08helium.pdf} , title = {{Helium Haskell Compiler}} , author = {Hage, Jurriaan and Heeren, Bastiaan} , year = {2008} , howpublished = {\verb|http://www.cs.uu.nl/wiki/Helium|}} @misc{www09haskell-prime , eprint = {papers/www09haskell-prime.pdf} , title = {{Haskell Prime}} , author = {{Haskell' Committee}} , year = {2009} , howpublished = {\verb|http://hackage.haskell.org/trac/haskell-prime/|}} @techreport{sulzmann06sysf-ty-eq-coerce , eprint = {papers/sulzmann06sysf-ty-eq-coerce.pdf} , title = {{System F with Type Equality Coercions}} , author = {Sulzmann, Martin and Chakravarty, Manuel M.T. and Peyton Jones, Simon and Donnelly, Kevin} , institution = {University of New South Wales} , school = {University of New South Wales} , number = {UNSW-CSE-TR-0624} , year = {2006}} @inproceedings{peytonjones97henk-ty-interm , eprint = {papers/peytonjones97henk-ty-interm.pdf} , title = {{Henk: A Typed Intermediate Language}} , author = {Peyton Jones, Simon and Meijer, Erik} , booktitle = {Workshop on Types in Compilation} , year = {1997} , howpublished = {\verb|http://www.research.microsoft.com/Users/simonpj/Papers/henk.ps.gz|}} @inproceedings{harper95poly-intensional-ty , eprint = {papers/harper95poly-intensional-ty.pdf} , title = {{Compiling Polymorphism Using Intensional Type Analysis}} , author = {Harper, Robert and Morriset, Greg} , booktitle = {Principles of Programming Languages} , pages = {130-141} , year = {1995} , howpublished = {\verb|http://www.cs.cornell.edu/home/jgm/papers/ip-popl.ps|}} @inproceedings{jay08scap-ty-app , eprint = {papers/jay08scap-ty-app.pdf} , title = {{Scrap your type applications}} , author = {Jay, Barry and Peyton Jones, Simon} , booktitle = {Mathematics of Program Construction} , year = {2008} , howpublished = {\verb|http://research.microsoft.com/en-us/um/people/simonpj/papers/variant-f/|}} @inproceedings{bolingbroke09type-call-conv , eprint = {papers/bolingbroke09type-call-conv.pdf} , title = {{Types are calling conventions (submitted to Haskell Symposium 2009)}} , author = {Bolingbroke, Max and Peyton Jones, Simon} , year = {2009}} @misc{www98hbc , eprint = {papers/www98hbc.pdf} , title = {{The HBC compiler}} , author = {Augustsson, Lennart} , year = {1998} , howpublished = {\verb|http://www.cs.chalmers.se/~augustss/hbc/hbc.html|}} @misc{www09uhc , eprint = {papers/www09uhc.pdf} , title = {{UHC Utrecht Haskell Compiler}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , year = {2009} , howpublished = {\verb|http://www.cs.uu.nl/wiki/UHC|}} @inproceedings{dijkstra09uhc-arch , eprint = {papers/dijkstra09uhc-arch.pdf} , title = {{The Architecture of the Utrecht Haskell Compiler}} , author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Haskell Symposium} , year = {2009}} @inproceedings{fokker08abs-int-ag , eprint = {papers/fokker08abs-int-ag.pdf} , title = {{Abstract Interpretation of Functional Programs using an Attribute Grammar System}} , author = {Fokker, Jeroen and Swierstra, S. Doaitse} , booktitle = {Language Descriptions, Tools and Applications (LDTA)} , year = {2008}} @inproceedings{middelkoop08gadts , eprint = {papers/middelkoop08gadts.pdf} , title = {{A Leaner Specification for GADTs}} , author = {Middelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Trends in Functional Programming (TFP)} , year = {2008}} @inproceedings{ferreiro09exp-safe-haskell , eprint = {papers/ferreiro09exp-safe-haskell.pdf} , title = {{Experiences in developing a compiler for Safe using Haskell }} , author = {Ferreiro, Henrique and Castro, David and Gulias, Victor M. and Dijkstra, Atze} , booktitle = {Taller de Programacion Funcional TPF, PROLE 2009} , year = {2009} , howpublished = {\verb|http://www.mondragon.edu/prole2009/contribucionesaceptadasprole.shtml|}} @inproceedings{backhouse99intro-genprog , eprint = {papers/backhouse99intro-genprog.pdf} , title = {{Generic Programming --- An Introduction}} , author = {Backhouse, R. and Jansson, P. and Jeuring, J. and Meertens, L.} , booktitle = {Advanced Functional Programming} , pages = {28-115} , number = {1608} , series = {LNCS} , year = {1999}} @article{jansson02polytypic , eprint = {papers/jansson02polytypic.pdf} , title = {{Polytypic data conversion programs}} , author = {Jansson, Patrik and Jeuring, Johan} , journal = {Science of Computer Programming} , pages = {35-75} , number = {1} , volume = {43} , year = {2002}} @inproceedings{jansson97polyp , eprint = {papers/jansson97polyp.pdf} , title = {{PolyP --- a polytypic programming language extension}} , author = {Jansson, Patrik and Jeuring, Johan} , booktitle = {Principles of Programming Languages} , pages = {470--482} , year = {1997}} @inproceedings{hage08heap-recycle , eprint = {papers/hage08heap-recycle.pdf} , title = {{Heap recycling for lazy languages}} , author = {Hage, Jurriaan and Holdermans, Stefan} , booktitle = {Workshop on Partial Evaluation and Program Manipulation} , pages = {189-198} , year = {2008}} @inproceedings{hage06heur-type-err , eprint = {papers/hage06heur-type-err.pdf} , title = {{Heuristics for type error discovery and recovery}} , author = {Hage, Jurriaan and Heeren, Bastiaan} , booktitle = {Implementation of Functional Languages} , pages = {119-216} , number = {4449} , series = {LNCS} , year = {2007}} @inproceedings{coutts07stream-fusion , eprint = {papers/coutts07stream-fusion.pdf} , title = {{Stream fusion: from lists to streams to nothing at all}} , author = {Coutts, Duncan and Leshchinskiy , Roman and Stewart, Don} , booktitle = {International Conference on Functional Programming} , pages = {315-326} , year = {2007}} @techreport{hudson91lang-indep-gc-toolkit , eprint = {papers/hudson91lang-indep-gc-toolkit.pdf} , title = {{A Language-Independent Garbage Collector Toolkit}} , address = {Amherst, MA 01003} , author = {Hudson, Richard L. and Moss, J. Eliot B. and Diwan, Amer} , institution = {OO Systems Lab, Dept of CS, University of Massachusetts} , school = {OO Systems Lab, Dept of CS, University of Massachusetts} , number = {COIS TR 91-47} , year = {1991}} @misc{www09haskell-platf , eprint = {papers/www09haskell-platf.pdf} , title = {{Haskell Platform}} , author = {{GHC Team}} , year = {2007} , howpublished = {\verb|http://hackage.haskell.org/platform/|}} @misc{steele09invtalk-par-foldharm , eprint = {papers/steele09invtalk-par-foldharm.pdf} , title = {{Organizing Functional Code for Parallel Execution: or, foldl and foldr Considered Slightly Harmful}} , author = {Steele, Guy} , year = {2009} , howpublished = {\verb|http://www.cs.nott.ac.uk/~gmh/icfp09.html|}} @phdthesis{pennings94phd-ag-gen-incr , eprint = {papers/pennings94phd-ag-gen-incr.pdf} , title = {{Generating incremental attribute evaluators}} , author = {Pennings, Maarten C.} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {1994}} @inproceedings{jones08fundep-design , eprint = {papers/jones08fundep-design.pdf} , title = {{Language and Program Design for Functional Dependencies}} , author = {Jones, Mark P. and Diatchki, Iavor} , booktitle = {Haskell Symposium} , year = {2008}} @phdthesis{middelkoop11phd-underconstruction , eprint = {papers/middelkoop11phd-underconstruction.pdf} , title = {{PhD thesis under construction}} , author = {Middelkoop, Arie} , school = {Utrecht University, Institute of Information and Computing Sciences} , year = {2011} , howpublished = {\verb|https://subversion.cs.uu.nl/repos/project.ruler.papers/ariem-thesis/thesis.pdf|}} @book{iso95prolog-standard , eprint = {papers/iso95prolog-standard.pdf} , title = {{Prolog -- Part 1: General core}} , author = {ISO} , publisher = {International Organization for Standardization (ISO)} , year = {1995} , howpublished = {\verb|http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=21413|}} @book{sterling94prolog-art , eprint = {papers/sterling94prolog-art.pdf} , title = {{The Art of Prolog, Second Edition: Advanced Programming Techniques}} , author = {Sterling, Leon and Shapiro, Ehud} , publisher = {MIT Press} , year = {1994}} @book{nipkow02isabelle-hol , eprint = {papers/nipkow02isabelle-hol.pdf} , title = {{Isabelle/HOL --- A Proof Assistant for Higher-Order Logic}} , author = {Nipkow, Tobias and Paulson, Lawrence C. and Wenzel, Markus} , publisher = {Springer} , year = {2002}} @book{bertot04coq , eprint = {papers/bertot04coq.pdf} , title = {{Interactive Theorem Proving and Program Development}} , author = {Bertot, Yves and Casteran, Pierre} , publisher = {Springer-Verlag} , year = {2004}} @inproceedings{pfenning99twelf , eprint = {papers/pfenning99twelf.pdf} , title = {{System Description: Twelf --- A Meta-Logical Framework for Deductive Systems}} , author = {Pfenning, Frank and Schurmann, Carsten} , booktitle = {16th International Conference on Automated Deduction (CADE-16)} , year = {1999} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.4232|}} @misc{www07ott , eprint = {papers/www07ott.pdf} , title = {{Ott}} , author = {Sewell, Peter and Nardelli, Francesco Zappa} , year = {2007} , howpublished = {\verb|http://www.cl.cam.ac.uk/~pes20/ott/|}} @misc{www10latex , eprint = {papers/www10latex.pdf} , title = {{LaTeX -- A document preparation system}} , author = {latex} , year = {2010} , howpublished = {\verb|http://www.latex-project.org/|}} @inproceedings{klint09rascal , eprint = {papers/klint09rascal.pdf} , title = {{RASCAL: a Domain Specific Language for Source Code Analysis and Manipulation}} , author = {Klint, Paul and Storm, Tijs van der and Vinju, Jurgen} , booktitle = {Source Code Analysis and Manipulation} , year = {2009} , howpublished = {\verb|http://www.rascal-mpl.org/Rascal/Documentation|}} @misc{vytiniotis11outsidein , eprint = {papers/vytiniotis11outsidein.pdf} , title = {{OutsideIn(X) Modular type inference with local assumptions (to be published in JFP)}} , author = {Vytiniotis, Dimitrios and Peyton Jones, Simon and Schrijvers, Tom and Martin, Sulzmann} , journal = {Journal of Functional Programming} , year = {2011} , howpublished = {\verb|http://haskell.org/haskellwiki/Simonpj/Talk:OutsideIn|}} @inproceedings{viera09attr-gram-in-haskell , eprint = {papers/viera09attr-gram-in-haskell.pdf} , title = {{Attribute grammars fly first-class: how to do aspect oriented programming in Haskell}} , author = {Viera, Marcos and Swierstra, S. Doaitse and Swierstra, Wouter} , booktitle = {ICFP} , year = {2009} , howpublished = {\verb|http://doi.acm.org/10.1145/1596550.1596586|}} @article{viera11fst-class-synsem , eprint = {papers/viera11fst-class-synsem.pdf} , title = {{First Class Syntax, Semantics, and Their Composition (submitted to JFP)}} , author = {Viera, Marcos and Swierstra, S. Doaitse and Dijkstra, Atze and Baars, Arthur I.} , journal = {Journal of Functional Programming} , year = {2011}} @inproceedings{middelkoop10ag-iterative-ty-infer , eprint = {papers/middelkoop10ag-iterative-ty-infer.pdf} , title = {{Iterative type inference with attribute grammars}} , author = {MIddelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Generative Programming and Component Engineering} , pages = {43-52} , year = {2010} , howpublished = {\verb|http://dx.doi.org/10.1145/1868294.1868303|}} @inproceedings{middelkoop11ag-stepwise-eval , eprint = {papers/middelkoop11ag-stepwise-eval.pdf} , title = {{Stepwise Evaluation of Attribute Grammars}} , author = {Middelkoop, Arie and Dijkstra, Atze and Swierstra, S. Doaitse} , booktitle = {Language Descriptions, Tools and Applications (LDTA)} , year = {2011}} @inbook{swierstra09combi-parse-tut , eprint = {papers/swierstra09combi-parse-tut.pdf} , title = {{Combinator Parsing: A Short Tutorial}} , author = {Swierstra, S. Doaitse} , booktitle = {Language Engineering and Rigorous Software Development} , publisher = {Springer-Verlag} , year = {2009} , howpublished = {\verb|http://dx.doi.org/10.1007/978-3-642-03153-3_6|}} @inproceedings{hughes03polish-parse , eprint = {papers/hughes03polish-parse.pdf} , title = {{Polish parsers, step by step}} , author = {Hughes, R. John M. and Swierstra, S. Doaitse} , booktitle = {ICFP} , year = {2003} , howpublished = {\verb|http://dx.doi.org/10.1145/944705.944727|}} @misc{www10haskellinjavascript , eprint = {papers/www10haskellinjavascript.pdf} , title = {{A haskell interpreter in javascript}} , year = {2010} , howpublished = {\verb|https://github.com/johang88/haskellinjavascript|}} @misc{www07yhc-javascript , eprint = {papers/www07yhc-javascript.pdf} , title = {{Yhc/Javascript}} , year = {2007} , howpublished = {\verb|http://www.haskell.org/haskellwiki/Yhc/Javascript|}} @misc{www07haskell-in-browser , eprint = {papers/www07haskell-in-browser.pdf} , title = {{Haskell in web browser}} , year = {2007} , howpublished = {\verb|http://www.haskell.org/haskellwiki/Haskell_in_web_browser|}} @misc{www07functional-javascript , eprint = {papers/www07functional-javascript.pdf} , title = {{Functional Javascript}} , author = {Steele, Oliver} , year = {2007} , howpublished = {\verb|http://osteele.com/sources/javascript/functional/|}} @misc{www11ghcjs-git , eprint = {papers/www11ghcjs-git.pdf} , title = {{ghcjs: Haskell to Javascript compiler (via GHC)}} , author = {Nazarov , Victor} , year = {2011} , howpublished = {\verb|https://github.com/sviperll/ghcjs|}} @inproceedings{shields01haskell-oo-overloading , eprint = {papers/shields01haskell-oo-overloading.pdf} , title = {{Object-Oriented Style Overloading for Haskell}} , author = {Shields, Mark and Peyton Jones, Simon} , booktitle = {Workshop on Multi-Language Infrastructure and Interoperability} , year = {2001}} @misc{kiselyov05haskell-oo , eprint = {papers/kiselyov05haskell-oo.pdf} , title = {{HaskellŐs overlooked object system}} , author = {Kiselyov, Oleg and L\"ammel, Ralf} , year = {2005}} @phdthesis{jansen10phd-itasks-sapl-funcweb , eprint = {papers/jansen10phd-itasks-sapl-funcweb.pdf} , title = {{Functional Web Applications, Implementation and Use of Client-Side Interpreters}} , author = {Jansen, Jan Martin} , school = {Radboud University Nijmegen} , year = {2010} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{bruel10sapl-javascript , eprint = {papers/bruel10sapl-javascript.pdf} , title = {{Implementing a non-strict purely Functional Language in JavaScript}} , author = {Bru\"el, Eddy and Jansen, Jan Martin} , booktitle = {Implementation of Functional Languages} , year = {2010} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{plasmeijer08clientside-itasks-ajax , eprint = {papers/plasmeijer08clientside-itasks-ajax.pdf} , title = {{Declarative Ajax and Client Side Evaluation of Workflows using iTasks}} , author = {Plasmeijer, Rinus and Jansen, Jan Martin and Koopman, Pieter} , booktitle = {Principles and Practice of Declarative Programming} , year = {2008} , howpublished = {\verb|http://www.nlda-tw.nl/janmartin/publications/|}} @inproceedings{oconnor11lens , eprint = {papers/oconnor11lens.pdf} , title = {{Functor is to Lens as Applicative is to Biplate: Introducing Multiplate}} , author = {O'Connor, Russel} , booktitle = {Workshop for Generic Programming} , institution = {arXiv} , school = {arXiv} , year = {2011} , howpublished = {\verb|http://arxiv.org/abs/1103.2841v2|}} @techreport{swierstra11jcu , eprint = {papers/swierstra11jcu.pdf} , title = {{Logisch en Functioneel Programmeren voor Wiskunde D}} , author = {Swierstra, Wouter and Stutterheim, Jurri\"en and Swierstra, S. Doaitse} , institution = {Department of Information and Computing Sciences, Utrecht University} , school = {Department of Information and Computing Sciences, Utrecht University} , number = {UU-CS-2011-033} , year = {2011}} @misc{www11snap-framework , eprint = {papers/www11snap-framework.pdf} , title = {{Snap Framework}} , year = {2011} , howpublished = {\verb|http://snapframework.com/|}} @misc{www11brunch , eprint = {papers/www11brunch.pdf} , title = {{Brunch}} , year = {2011} , howpublished = {\verb|http://brunch.io/|}} @misc{www11coffeescript , eprint = {papers/www11coffeescript.pdf} , title = {{CoffeeScript}} , year = {2011} , howpublished = {\verb|http://coffeescript.org/|}} @misc{www11jquery , eprint = {papers/www11jquery.pdf} , title = {{jQuery}} , year = {2011} , howpublished = {\verb|http://jquery.com/|}} @misc{www11clean-system , eprint = {papers/www11clean-system.pdf} , title = {{Clean}} , year = {2011} , howpublished = {\verb|http://wiki.clean.cs.ru.nl/Clean|}} @inproceedings{marlow06extensible-exception , eprint = {papers/marlow06extensible-exception.pdf} , author = {Marlow, Simon} , booktitle = {Haskell Symposium} , year = {2006}} @inproceedings{wakeling98haskell-to-java , eprint = {papers/wakeling98haskell-to-java.pdf} , title = {{Mobile Haskell: Compiling Lazy Functional Programs for the Java Virtual Machine}} , author = {Wakeling, David} , booktitle = {Programming Languages, Implementations, Logics and Programs} , year = {1998} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.7864|}} @mastersthesis{stewart02mthesis-multiparadigm-jit , eprint = {papers/stewart02mthesis-multiparadigm-jit.pdf} , title = {{Multi-paradigm Just-In-Time Compilation}} , author = {Stewart, Don} , school = {The University of New South Wales, School of Computer Science and Engineering} , year = {2002}} @techreport{tullsen96haskell-to-java , eprint = {papers/tullsen96haskell-to-java.pdf} , title = {{Compiling Haskell to Java}} , author = {Tullsen, Mark} , institution = {Yale University, Department of Computer Science} , school = {Yale University, Department of Computer Science} , year = {1996}} @techreport{asai08haskell-printf , eprint = {papers/asai08haskell-printf.pdf} , title = {{On Typing Delimited Continuations: Three New Solutions to the Printf Problem}} , author = {Asai, Kenichi} , institution = {Ochanomizu University, 2-1-1 Otsuka, Bunkyo-ku, Tokyo 112-8610, Japan} , school = {Ochanomizu University, 2-1-1 Otsuka, Bunkyo-ku, Tokyo 112-8610, Japan} , number = {OCHA-IS 08-2} , year = {2008}} @misc{kiselyov10functional-format-io , eprint = {papers/kiselyov10functional-format-io.pdf} , title = {{Type-safe functional formatted IO}} , author = {Kiselyov, Oleg} , year = {2010} , howpublished = {\verb|http://okmij.org/ftp/typed-formatting/FPrintScan.html|}} @misc{www12ghc-faq , eprint = {papers/www12ghc-faq.pdf} , title = {{GHC FAQ}} , year = {2012} , howpublished = {\verb|http://www.haskell.org/haskellwiki/GHC:FAQ|}} @inproceedings{meijer07mondrian , eprint = {papers/meijer07mondrian.pdf} , title = {{The Design and Implementation of Mondrian}} , author = {Meijer, Erik and Claessen, Koen} , booktitle = {Haskell Workshop} , year = {1997} , howpublished = {\verb|http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.9509|}} @inproceedings{meijer01dotnet-scripting-mondrian , eprint = {papers/meijer01dotnet-scripting-mondrian.pdf} , title = {{Scripting .NET Using Mondrian}} , author = {Meijer, Erik and Perry, Nigel and Yzendoorn, Arjan van} , booktitle = {ECOOP} , year = {2001}} @misc{www04haskell-dotnet , eprint = {papers/www04haskell-dotnet.pdf} , title = {{The Haskell.net Project}} , year = {2004} , howpublished = {\verb|http://www.cin.ufpe.br/~haskell/haskelldotnet/|}} @article{monteiro05functional-to-dotnet , eprint = {papers/monteiro05functional-to-dotnet.pdf} , title = {{Compiling Non-strict Functional Languages for the .NET Platform}} , author = {Monteiro, Monique and Ara\'ujo, Mauro and Borges, Rafael and Santos, Andr\'e} , journal = {Journal of Universal Computer Science} , pages = {1255-1274} , number = {7} , volume = {11} , year = {2005}} @misc{www12uhc-js-backend , eprint = {papers/www12uhc-js-backend.pdf} , title = {{The Utrecht Haskell Compiler JavaScript Backend Page}} , year = {2012} , howpublished = {\verb|http://uu-computerscience.github.com/uhc-js/|}} %% Created using Papers on Fri, 25 Sep 2015. %% http://papersapp.com/papers/ @incollection{Winant2014part-tysig, author = {Winant, Thomas and Devriese, Dominique and Piessens, Frank and Schrijvers, Tom}, title = {{Partial Type Signatures for Haskell}}, booktitle = {Practical Aspects of Declarative Languages}, year = {2014}, editor = {Flatt, Matthew and Guo, Hai-Feng}, pages = {17--32}, publisher = {Springer International Publishing}, keywords = {UHC cited, haskell, Hindley-Milner type inference, (partial) type signatures, wildcards}, doi = {10.1007/978-3-319-04132-2_2}, isbn = {978-3-319-04131-5}, language = {English}, rating = {0}, date-added = {2015-09-25T22:00:27GMT}, date-modified = {2015-09-25T22:01:06GMT}, url = {http://dx.doi.org/10.1007/978-3-319-04132-2_2}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Winant-2014-Partial_Type_Signatures_for_Haskell.pdf}, file = {{Winant-2014-Partial_Type_Signatures_for_Haskell.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Winant-2014-Partial_Type_Signatures_for_Haskell.pdf:application/pdf}}, uri = {\url{papers2://publication/doi/10.1007/978-3-319-04132-2_2}} } @techreport{www09uhc, author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S Doaitse}, title = {{UHC Utrecht Haskell Compiler}}, year = {2009}, publisher = {\verb|http://www.cs.uu.nl/wiki/UHC|}, keywords = {UHC cited}, rating = {0}, date-added = {2014-03-23T12:06:43GMT}, date-modified = {2015-09-25T15:00:59GMT}, url = {http://www.cs.uu.nl/wiki/UHC}, uri = {\url{papers2://publication/uuid/4E1F80F3-4E9E-44EB-B890-2263279A8232}} } @article{Vytiniotis:2011cs, author = {Vytiniotis, Dimitrios and Peyton Jones, Simon and Schrijvers, Tom and Sulzmann, Martin}, title = {{OUTSIDEIN(X) Modular type inference with local assumptions}}, journal = {Journal of Functional Programming}, year = {2011}, volume = {21}, pages = {333--412}, affiliation = {Univ Ghent, Ghent, Belgium}, keywords = {UHC cited}, doi = {10.1017/S0956796811000098}, language = {English}, rating = {0}, date-added = {2012-03-27T10:05:34GMT}, date-modified = {2015-09-25T21:15:13GMT}, abstract = {Advanced type system features, such as GADTs, type classes and type families, have proven to be invaluable language extensions for ensuring data invariants and program correctness. Unfortunately, they pose a tough problem for type inference when they are used as local type assumptions. Local type assumptions often result in the lack of principal types and cast the generalisation of local let-bindings prohibitively difficult to implement and specify. User-declared axioms only make this situation worse. In this paper, we explain the problems and - perhaps controversially - argue for abandoning local let-binding generalisation. We give empirical results that local let generalisation is only sporadically used by Haskell programmers. Moving on, we present a novel constraint-based type inference approach for local type assumptions. Our system, called OUTSIDEIN(X), is parameterised over the particular underlying constraint domain X, in the same way as HM(X). This stratification allows us to use a common metatheory and inference algorithm. OUTSIDEIN(X) extends the constraints of X by introducing implication constraints on top. We describe the strategy for solving these implication constraints, which, in turn, relies on a constraint solver for X. We characterise the properties of the constraint solver for X so that the resulting algorithm only accepts programs with principal types, even when the type system specification accepts programs that do not enjoy principal types. Going beyond the general framework, we give a particular constraint solver for X = type classes + GADTs + type families, a non-trivial challenge in its own right. This constraint solver has been implemented and distributed as part of GHC 7.}, url = {http://journals.cambridge.org/abstract_S0956796811000098}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf}, file = {{Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:application/pdf;Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Vytiniotis-2011-OUTSIDEIN(X)_Modular_type_inference_with_local_assumptions.pdf:application/pdf}}, uri = {\url{papers2://publication/doi/10.1017/S0956796811000098}} } @mastersthesis{geest07cnstr-tycls-ext, author = {Geest, Gerrit van den}, title = {{Constraints for Type Class Extensions}}, school = {Universiteit Utrecht, Department of Information and Computing Sciences}, year = {2007}, publisher = {Universiteit Utrecht, Department of Information and Computing Sciences}, keywords = {UHC cited}, read = {Yes}, rating = {0}, date-added = {2012-03-27T10:00:03GMT}, date-modified = {2015-09-25T15:00:39GMT}, url = {http://www.open.ou.nl/bhr/vandengeest07thesis.pdf}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Geest-2007-Constraints_for_Type_Class_Extensions.pdf}, file = {{Geest-2007-Constraints_for_Type_Class_Extensions.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Geest-2007-Constraints_for_Type_Class_Extensions.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/4BB9556E-DA44-45A3-9329-BFF57A10FB11}} } @phdthesis{dijkstra05phd, author = {Dijkstra, Atze}, title = {{Stepping through Haskell}}, school = {Utrecht University, Department of Information and Computing Sciences}, year = {2005}, publisher = {Utrecht University, Department of Information and Computing Sciences}, keywords = {UHC cited}, rating = {0}, date-added = {2012-03-27T09:59:59GMT}, date-modified = {2015-09-25T22:05:50GMT}, url = {http://www.cs.uu.nl/groups/ST/Ehc/WebHome}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Dijkstra-2005-Stepping_through_Haskell.pdf}, file = {{Dijkstra-2005-Stepping_through_Haskell.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Dijkstra-2005-Stepping_through_Haskell.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/916E8D08-15AC-420C-A300-0982A18AEA40}} } @inproceedings{peytonjones03lex-scope-tvs, author = {Peyton Jones, Simon and Shields, Mark B.}, title = {{Lexically-scoped type variables}}, booktitle = {Submitted to ICFP'04}, publisher = {\verb|http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars/|}, keywords = {UHC cited}, rating = {0}, date-added = {2012-03-27T09:59:59GMT}, date-modified = {2015-09-25T20:49:07GMT}, url = {http://research.microsoft.com/en-us/um/people/simonpj/papers/scoped-tyvars/scoped.pdf}, local-url = {file://localhost/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf}, file = {{Peyton_Jones--Lexically-scoped_type_variables-2.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf:application/pdf;Peyton_Jones--Lexically-scoped_type_variables-2.pdf:/Volumes/Work/Docs+Papers/Papers2/Files/Peyton_Jones--Lexically-scoped_type_variables-2.pdf:application/pdf}}, uri = {\url{papers2://publication/uuid/55E48001-E8FC-42BD-98A4-486903C14594}} } @inproceedings{dijkstra09uhc-arch, author = {Dijkstra, Atze and Fokker, Jeroen and Swierstra, S Doaitse}, title = {{The architecture of the Utrecht Haskell compiler}}, booktitle = {Haskell Symposium 2009 }, year = {2009}, publisher = { ACM Request Permissions}, month = sep, doi = {10.1145/1596638.1596650}, read = {Yes}, rating = {0}, date-added = {2012-03-26T21:14:59GMT}, date-modified = {2015-09-11T12:16:58GMT}, abstract = {In this paper we describe the architecture of the Utrecht Haskell Compiler (UHC). UHC is a new Haskell compiler, that supports most (but not all) Haskell 98 features, plus some experimental extensions. It targets multiple backends, including a bytecode}, url = {http://portal.acm.org/citation.cfm?id=1596638.1596650&coll=DL&dl=GUIDE&CFID=74202122&CFTOKEN=33843140}, uri = {\url{papers2://publication/doi/10.1145/1596638.1596650}} } @webpage{GHCTeam:2015vf, author = {{GHC Team}}, title = {{Records/OverloadedRecordFields/Redesign -- GHC}}, year = {2015}, month = jan, url = {https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Redesign}, keywords = {UHC cited}, read = {Yes}, rating = {0}, date-added = {2015-09-26T07:21:04GMT}, date-modified = {2015-09-26T07:22:48GMT}, uri = {\url{papers2://publication/uuid/7EF391BC-44D1-4A4D-A2CE-0411532B4530}} } \ No newline at end of file diff --git a/EHC/text/TopicExplImpl2015.cltex b/EHC/text/TopicExplImpl2015.cltex index 6004a716c..52b3b24e7 100644 --- a/EHC/text/TopicExplImpl2015.cltex +++ b/EHC/text/TopicExplImpl2015.cltex @@ -59,6 +59,8 @@ We intend to elaborate on the formal aspects of the design and implementation in %%[open %{ %format pred = "pred" +%format OI = "\;\{\hspace*{-0.2ex}!\hspace*{.03ex}" +%format CI = "\hspace*{.03ex}!\hspace*{-0.2ex}\}\;" %\newcommand{\todo}[1]{{\color{red}#1}} \newcommand{\todo}[1]{} @@ -252,12 +254,12 @@ f :: Eq a => a -> a -> Int f = \ x y -> if x == y then 3 else 4 v1 = f 2 4 -v2 = f {! Eq Int = dEqInt !} +v2 = f OI Eq Int = dEqInt CI 2 4 %%]] A dictionary (encoded as a datatype) |d| of an instance is constructed and passed directly as part of -the language construct |{! ... d !}| (to be explained later). +the language construct |OI ... d CI| (to be explained later). %if not shortStory As a second example we briefly discuss the use @@ -450,7 +452,9 @@ our contribution, though inspired by and executed in the context of Haskell, offers language designers a mechanism for more sophisticated control over parameter passing, by allowing a mixture of explicit and implicit dictionary passing. -Our design is partially prototyped in UHC (Utrecht Haskell Compiler) \todo{citations}\cite{www09uhc,dijkstra09uhc-arch}\footnote{As of the time of this writing the implementation is still in flux}. +Our design is partially prototyped in UHC (Utrecht Haskell Compiler) \todo{citations}\cite{www09uhc,dijkstra09uhc-arch}% +\footnote{As of the time of this writing (20150925) the implementation is still in flux: examples in \thischapt\ do work, +but small variations may cause problems, or similar constructs which seem reasonable to also have are not implemented yet.}. %if indicateWorks To make this clear, examples which work in UHC (at the time of writing \thischapt) are marked with \worksInUHC; if it does not (yet) work this is marked with \worksNotInUHC, if standard Haskell this annotation is omitted. @@ -503,10 +507,12 @@ instance dEqInt = Eq Int where %%]] \worksInUHCline -The application |nub {! Eq Int = dEqInt !} l| now yields @[1,2]@. +The application |nub OI Eq Int = dEqInt CI l| now yields @[1,2]@. The dictionary |dEqInt| is defined as if it were an instance, a \emph{named instance}. +Dictionaries are represented by data types having having the same fields as their class counterpart. +We use the words `dictionary' and (named) `instance' interchangeably. A named instance does not participate in the context reduction, unless we explicitly tell the compiler to do so (see further down below). -The notation |{! pred = dict !}| allows a named instance |dict| to be used at a parameter position where +The notation |OI pred = dict CI| allows a named instance |dict| to be used at a parameter position where normally the compiler silently and implicitly inserts a dictionary for the predicate |pred|. Note that Haskell's prelude also contains a variation on |nub| called |nubBy| with a type signature |nubBy :: (a -> a -> Bool) -> [a] -> [a]| @@ -517,7 +523,7 @@ In the implementation of |nub| the explicitly passed dictionary can now be used it can be accessed directly via pattern matching on the dictionary, for example to define |nub| in terms of |nubBy| without implicit dictionary usage: %%[[wrap=code -nub = \{! Eq a = dEq !} -> nubBy ((==) {! Eq a = dEq !}) +nub = \OI Eq a = dEq CI -> nubBy ((==) OI Eq a = dEq CI) %%]] \worksInUHCline @@ -564,7 +570,7 @@ The equals |=| binds an identifier, here |dEqInt|, to the dictionary representin The data type value |dEqInt| from now on is available as a normal value. \item Explicitly passing a parameter is syntactically denoted by an expression between -|{!| and |!}|. +|OI| and |CI|. The predicate before the |=| explicitly states the predicate for which the expression is an instance dictionary (or \emph{evidence}). \end{Enumerate} @@ -580,7 +586,7 @@ In the implicit case the language definition determines which value to take from \item Switching between the explicit and implicit world is accomplished by means of additional notation. We go from -implicit to explicit by instance definitions with the naming extension, and in the reverse direction by means of the |{! ^^ !}| construct. +implicit to explicit by instance definitions with the naming extension, and in the reverse direction by means of the |OI ^^ CI| construct. \end{itemize} %if not shortStory @@ -602,7 +608,7 @@ instance (Modular a,Integral a) => Num (M a) where withModulus :: a -> (Modular a => w) -> w withModulus (m :: a) k - = k {! (modulus = m) <: Modular a !} + = k OI (modulus = m) <: Modular a CI %%] %} %endif @@ -633,7 +639,7 @@ we can construct and pass such a dictionary explicitly: %%[[wrap=code (==) l l2 ^^ -- yields @False@ -(==) {! Eq [Int] = dEqList dEqInt !} l l2 ^^ -- yields @True@ +(==) OI Eq [Int] = dEqList dEqInt CI l l2 ^^ -- yields @True@ %%] \worksInUHCline @@ -682,7 +688,7 @@ The following example is taken from Hinze \cite{hinze00derive-type-class}: The explicit variant of the computation for |v1| using the explicit parameter passing mechanism reads: %%[[wrap=code -v1 = showBin {! dBG dBI dBL <: Binary (GRose List Int) !} +v1 = showBin OI dBG dBI dBL <: Binary (GRose List Int) CI (GBranch 3 Nil) %%] @@ -765,9 +771,9 @@ These yield the following results: instance dEqIntTrue = Eq Int where x == y = True -twoEq2 3 4 {! Eq Int = dEqIntTrue !} 5 6 ^^ -- @(False,True)@ -twoEq3 {! Eq Int = dEqIntTrue !} 3 4 5 6 ^^ -- @(True,False)@ -twoEq4 {! Eq Int = dEqIntTrue !} 3 4 5 6 ^^ -- @(False,True)@ +twoEq2 3 4 OI Eq Int = dEqIntTrue CI 5 6 ^^ -- @(False,True)@ +twoEq3 OI Eq Int = dEqIntTrue CI 3 4 5 6 ^^ -- @(True,False)@ +twoEq4 OI Eq Int = dEqIntTrue CI 3 4 5 6 ^^ -- @(False,True)@ %%] \worksInUHCline @@ -807,8 +813,8 @@ instance dEqInt2 = Eq Int where instance Eq Int = dEqInt2 -v = twoEq {! Eq Int = dEqInt1 !} 3 4 ^^ -- yields @(True,False)@ - {! Eq Int = dEqInt2 !} 5 6 +v = twoEq OI Eq Int = dEqInt1 CI 3 4 ^^ -- yields @(True,False)@ + OI Eq Int = dEqInt2 CI 5 6 %%]] \worksInUHCline @@ -836,7 +842,7 @@ For |nub| defined earlier the following two invocations have a similar effect: %%[[wrap=code n1 = let instance Eq Int = dEqInt ^^ -- override by scope in nub l -n2 = nub {! Eq Int = dEqInt !} l ^^ -- override by explicit passing +n2 = nub OI Eq Int = dEqInt CI l ^^ -- override by explicit passing %%]] \worksInUHCline @@ -855,8 +861,8 @@ twoEq a b c d = (a == b, c == d) In the context of |dEqInt1| and |dEqInt2| defined above, we obtain the following results %%[[wrap=code -twoEq {! Eq Int = dEqInt1 !} 3 4 ^^ -- (1) @(True,False)@ - {! Eq Int = dEqInt2 !} 5 6 +twoEq OI Eq Int = dEqInt1 CI 3 4 ^^ -- (1) @(True,False)@ + OI Eq Int = dEqInt2 CI 5 6 let instance Eq Int = dEqInt1 ^^ -- (2) @(False,False)@ in twoEq 3 4 5 6 @@ -881,10 +887,10 @@ The coexistence of multiple instances for one instantiated class predicate also %%[[wrap=code twoEqI :: Eq Int => Int -> Int -> Eq Int => Int -> Int -> (Bool, Bool) -twoEqI = \{! Eq Int = dA !} a b {! Eq Int = dB !} c d - -> ((==) {! Eq Int = dA !} a b, (==) {! Eq Int = dB !} c d) +twoEqI = \OI Eq Int = dA CI a b OI Eq Int = dB CI c d + -> ((==) OI Eq Int = dA CI a b, (==) OI Eq Int = dB CI c d) -twoEqI {! Eq Int = dEqInt1 !} 3 4 {! Eq Int = dEqInt2 !} 5 6 ^^ -- @(True,False)@ +twoEqI OI Eq Int = dEqInt1 CI 3 4 OI Eq Int = dEqInt2 CI 5 6 ^^ -- @(True,False)@ %%]] \worksInUHCline @@ -934,8 +940,8 @@ a dictionary for |Eq (List a)| is explicitly constructed and passed to |eq|: %% 9-eq5.eh %%[[wrap=code test9eq5EqExplPassed f :: forall a . Eq a => a -> List a -> Bool -f = \{! dEq_a <: Eq a !} - -> \p q -> eq {! dEqList dEq_a <: Eq (List a) !} +f = \OI dEq_a <: Eq a CI + -> \p q -> eq OI dEqList dEq_a <: Eq (List a) CI (Cons p Nil) q %%] @@ -952,8 +958,8 @@ Such transformers can also be made explicit in the following variant: %% 9-eq6.eh %%[[wrap=code test9eq6DictTransf f :: (forall ^ a . Eq a => Eq (List a)) => Int -> List Int -> Bool -f = \{! dEq_La <: forall ^ a . Eq a => Eq (List a) !} - -> \p q -> eq {! dEq_La dEqInt <: Eq (List Int) !} +f = \OI dEq_La <: forall ^ a . Eq a => Eq (List a) CI + -> \p q -> eq OI dEq_La dEqInt <: Eq (List Int) CI (Cons p Nil) q %%] @@ -967,23 +973,6 @@ here in both cases |dEqList| is the only choice possible. %%]] -%if not (storyPHD || storyEhcBook || shortStory) - -\subsection{Partial type signatures} -\label{ehc09-partialtysig} - -Explicitly specifying complete type signatures can be a burden to the programmer, -especially when -types become large and only a portion of the type needs to be specified -explicitly. EH therefore allows partial type signatures. -We will show its use based on the function: - -%%@TopicPartialTySig.explImplExample - -%endif - -\subsection{Discussion and related work} - %%[[bodyDiscussionRelatedWork \label{ehc09-discussion} @@ -1001,36 +990,35 @@ which in turn makes type inferencing easier and facilitates more general types t This in itself is already somewhat cumbersome, as classes have default values which already mix make types and values depend on eachother. Generic deriving adds additional complexity, because it generates new classes, datatypes, and instances. Allowing instances to be named forces the dependency checker to some degree to be aware of how this generation takes place before it has actually occurred (this happens after type inference). +In particular, care must be taken that data type declarations not end up in the same set of mutually recursive definitions as definitions using such data types: +type information might not yet be fully known, depending on how clever the type inferencer is in implementing multiple passes over such mutually recursive definitions to extract this info in the right order. \item -\textbf{GADT (Generalised Algebraic DataType) and type families}. +\textbf{GADT (Generalised Algebraic DataType), type families, and other type extensions}. Although GADTs and type families are not implemented in UHC it is unclear how the notion of locality of local instances and locality of GADT induced type information available in case branches inspecting GADTs work together. The current implemented solution in GHC \cite{Vytiniotis:2011cs} delays the resolution of local constraints by adding implication constraints to inferred types. The presence of an open ended system for rewriting types (via type families) necessitates this. However, the implementation for local instances also requires the notion of scopes associated with all predicates, attempting to locally resolve as much predicates as possible. Lifting all this information to implication constraints will most likely make type signatures complex and unwieldy. -This requires further investigation. -\end{itemize} +This requires further investigation, just as the interaction with multiple parameter type classes, functional dependencies, etc. does. - - -%if False -\Paragraph{Implementation} -In \thischapt\ we focus on the design of language mechanisms for explicit parameter passing. -Part of the implementation is described elsewhere \cite{Dijkstra:uJTh7KuB,geest07cnstr-tycls-ext}. -The general idea -%endif +\item +\textbf{Changes in data type semantics}. +The implementation of the mechanisms in \thischapt\ benefits from the relative simplicity of data types: fields are globally unique, and the choice if data type name (is not, but) could come from the same namespace +as classes. +Changes in these assumptions (e.g. recently \cite{GHCTeam:2015vf}) may break the design in \thischapt. +\end{itemize} \Paragraph{How much explicitness is needed} -Being explicit by means of the |{! ... !}| language construct very soon becomes cumbersome because -our current implementation requires full specification of all predicates involved inside |{! ... !}|. +Being explicit by means of the |OI ... CI| language construct very soon becomes cumbersome because +our current implementation requires full specification of all predicates involved inside |OI ... CI|. Can we do with less? \begin{itemize} \item -We could drop the requirement to specify a predicate and write just |{! dict !}| instead of |{! pred = dict !}|. +We could drop the requirement to specify a predicate and write just |OI dict CI| instead of |OI pred = dict CI|. In this case we need a mechanism to find a predicate for the type of the evidence provided by |dict|. This should be possible as the data type of the dictionary corresponds directly to a class predicate. @@ -1038,9 +1026,6 @@ This should be possible as the data type of the dictionary corresponds directly Partial type signatures \cite{Winant2014part-tysig,dijkstra05phd} would enable the specification of the part of a type that matters for explicit dictionary passing while omitting the remainder that can be inferred. \end{itemize} -Whichever of these routes leads to the most useful solution for the programmer, -if the need arises our solution always gives the programmer the full power of being explicit in what is required. - %} @@ -1110,6 +1095,11 @@ The catch here is that it must be ensured that other fields of a dictionary refe When such references are embedded inside (e.g.) closures this might be difficult. A solution could be to always pass the current dictionary around as an additional parameter. \item +\textbf{Use of (extensible) records for dictionary representation}. +An earlier prototype did use (extensible) records \cite{gaster96poly-ext-rec-var} for the representation of dictionaries. +This allows for greater re-use, is more flexible, but it makes it difficult if not impossible to omit the predicate annotation in +|OI pred = dict CI|: there is not enough type information associated with |dict| to tell which class it corresponds to. +\item \textbf{Higher order predicates}. We only have briefly used and mentioned higher order predicates. Their role as implication predicates, to be passed as parameters can be further explored. @@ -1214,10 +1204,10 @@ let f :: r lacks l => (r | l :: a) -> a Alternatively a more explicit notation could be employed: %%[[wrap=code -let f :: {! r lacks l !} -> (r | l :: a) -> a +let f :: OI r lacks l CI -> (r | l :: a) -> a f = \r -> r.l - g :: {! Eq a !} -> [a] -> [a] -> Bool - g = \{! eq !} \x \y -> (==) {!eq!} ... && (==) ... + g :: OI Eq a CI -> [a] -> [a] -> Bool + g = \OI eq CI \x \y -> (==) OI eq CI ... && (==) ... %%] The latter approach has a couple of advantages. @@ -1228,7 +1218,7 @@ LL parsing is made easier. The same notation can be used for expressions (value terms) and patterns. \end{itemize} -The obvious syntactic sugar can be added, e.g. |{! p, q !} ->| for |{! p !} -> {! q !} ->| +The obvious syntactic sugar can be added, e.g. |OI p, q CI ->| for |OI p CI -> OI q CI ->| The idea is that two worlds of terms co-exist, one for normal (explicit) values and one for implicit values. Implicit values are associated with a predicate. @@ -1255,8 +1245,8 @@ by means of bindings of the form |[pi :~> e]|, associating predicates |pi| to im The type language has an additional alternative: %%[[wrap=code sigma = .. - | {! pi !} - | {! ... !} + | OI pi CI + | OI ... CI pi = r lacks \ | C ^^ Vec(sigma) | v = sigma @@ -1264,9 +1254,9 @@ pi = r lacks \ %%] The alternatives for |pi| respectively denote the lacking constraint for extensible records, class constraint and equality constraint (for use by generalized data types). -Partial type signatures w.r.t. predicates are denoted by |{! ... !}|. -Alternatively, the more concise denotations |pi| and |pvar| are used for |{! pi !}| and |{! ... !}| respectively. -A predicate var |{! pivar !}| is shorthanded by |pivar|. +Partial type signatures w.r.t. predicates are denoted by |OI ... CI|. +Alternatively, the more concise denotations |pi| and |pvar| are used for |OI pi CI| and |OI ... CI| respectively. +A predicate var |OI pivar CI| is shorthanded by |pivar|. \item The constraint language has to deal with additional constraints on predicates: %%[[wrap=code @@ -1277,7 +1267,7 @@ Cnstr = .. %%] These additional alternatives deal with -which predicate may replace a predicate variable |p| or how much predicates may replace a wildcard |{! ... !}| or |pvar|. +which predicate may replace a predicate variable |p| or how much predicates may replace a wildcard |OI ... CI| or |pvar|. The constraint |p :-> pi| is similar to type variables; the |pvar :-> | constraints limit the number of predicates. \item The environment |Gamma| now also may contain evidence for predicates: @@ -1319,7 +1309,7 @@ passed. Predicates corresponding to class declarations are introduced by: %%[[wrap=code pred Eq a :~> ( eq :: a -> a -> Bool ) -pred Eq a :~> x => Ord a :~> ( lt :: a -> a -> Bool, Eq :: {! Eq a !} ) = ( r | Eq = x ) +pred Eq a :~> x => Ord a :~> ( lt :: a -> a -> Bool, Eq :: OI Eq a CI ) = ( r | Eq = x ) %%] This should be read as: \begin{itemize} @@ -1339,8 +1329,8 @@ Or just only use the notation but under the hood use record structure as being k Rules, corresponding to instance declaratations, populate the world of predicates: %%[[wrap=code rule Eq Int = ( eq = primEqInt ) -rule Eq a :~> e => Eq [a] :~> l = ( eq = \a -> \b -> eq {! e !} (head a) (head b) && - eq {! l !} (tail a) (tail b) +rule Eq a :~> e => Eq [a] :~> l = ( eq = \a -> \b -> eq OI e CI (head a) (head b) && + eq OI l CI (tail a) (tail b) ) %%] This should be read as: @@ -1374,11 +1364,11 @@ rule eqInt1 :: Eq Int = ( eq = primEqInt ) Sofar an explicit parameter passed to a function just consisted of an identifier. Implicit parameter application could/should also be allowed %%[[wrap=code -rule eqList1 :: Eq a :~> e => Eq [a] :~> l = ( eq = \a -> \b -> eq {! e !} (head a) (head b) && - eq {! l !} (tail a) (tail b) +rule eqList1 :: Eq a :~> e => Eq [a] :~> l = ( eq = \a -> \b -> eq OI e CI (head a) (head b) && + eq OI l CI (tail a) (tail b) ) -... eq {! eqList1 eqInt1 !} ... +... eq OI eqList1 eqInt1 CI ... %%] \Paragraph{Eq as predicate} @@ -1447,9 +1437,9 @@ Issues/problems: \item Type inference means we do not yet know if a predicate must be passed. \item -Yet the explicit passing via |{! expr !}| requires the presence of an implicit parameter (i.e. predicate in the corresponding type). +Yet the explicit passing via |OI expr CI| requires the presence of an implicit parameter (i.e. predicate in the corresponding type). \item -If given a |{! expr !}| how do we find the corresponding predicate |pi| for which |expr| is the evidence/proof? +If given a |OI expr CI| how do we find the corresponding predicate |pi| for which |expr| is the evidence/proof? \end{Enumerate} Corresponding solutions: