@TECHREPORT{leijen01parsec, author = {Leijen, Daan and Meijer, Erik}, year = 2001, title = {Parsec: Direct style monadic parser combinators for the real world}, number = {UU-CS-2001-35}, institution = {Department of Information and Computing Sciences, Utrecht University}, urlpdf = {{http://www.cs.uu.nl/research/techreps/repo/CS-2001/2001-35.pdf}}, pubcat = {techreport} } @article{swierstra1999fec, title={{Fast, error correcting parser combinators: A short tutorial}}, author={Swierstra, Doaitse and Azero Alcocer, Pablo}, journal={SOFSEM}, volume={99}, pages={111--129}, year={1999}, publisher={Springer} } @phdthesis{loeh04exploring, author = "L{\"o}h, Andres", title = "Exploring Generic Haskell", school = "Utrecht University", year = 2004, url = "http://people.cs.uu.nl/andres/ExploringGH.pdf"} @inproceedings{Oliveira_Hinze_Loh:2006EMGM, Author = {Oliveira, Bruno C. d. S. and Hinze, Ralf and L\"oh, Andres}, booktitle = {Trends in Functional Programming}, Editor = {Nilsson, Henrik}, Title = {Extensible and Modular Generics for the Masses}, pages = {199--216}, year = 2006, COMMENTcrossref ={DBLP:conf/sfp/2006}, bibsource = {DBLP, http://dblp.uni-trier.de} } @book{shavor03eclipse, author = {Shavor, Sherry and D'Anjou, Jim and Fairbrother, Scott and Kehn, Dan and Kellerman, John and McCarthy, Pat}, title = {The Java Developer's Guide to Eclipse}, year = {2003}, isbn = {0321159640}, publisher = {Addison-Wesley Longman Publishing Co., Inc.}, address = {Boston, MA, USA}, } @inproceedings{UUCS2007017, author = {Jeuring, Johan and Passier, Harrie and Stuurman, Sylvia }, year = 2007, title = {A Generic Framework for Developing Exercise Assistants}, booktitle = {Proceedings of the 8th International Conference on Information Technology Based Higher Education and Training, ITHET 2007, Kumamoto City, Japan, July}, note = {Also available as Technical Report, ICS Utrecht University, UU-CS-2007-017}, } @article{Lammel_PeytonJones:2003SYB, Author = {L{\"a}mmel, Ralf and Peyton Jones, Simon}, Journal = {ACM SIGPLAN Notices}, Note = {TLDI'03}, Number = 3, Pages = {26--37}, Title = {Scrap your boilerplate: a practical approach to generic programming}, Volume = 38, Year = 2003 } @inproceedings{Lammel_PeytonJones:2004SYB2, Author = {L{\"a}mmel, Ralf and Peyton Jones, Simon}, longBooktitle ={{Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004}}, Booktitle = {ICFP'04}, Pages = {244--255}, Publisher = acm, Title = {{Scrap more boilerplate: reflection, zips, and generalised casts}}, Year = 2004 } @inproceedings{birdmeertens98:nest, Author = {Bird, Richard and Meertens, Lambert}, longBooktitle =MPC98long, Booktitle = {Mathematics of Program Construction}, ISBN={978-3-540-64591-7}, Editor = {Johan Jeuring}, Pages = {52--67}, Publisher = springer, Series = LNCS, Title = {Nested datatypes}, Volume = 1422, Year = 1998 } @phdthesis{schrage04Proxima, author = "Martijn M. Schrage", school = "Utrecht University, The Netherlands", title = "Proxima -- a presentation-oriented editor for structured documents", day = "15", month = "Oct", year = "2004", isbn = "90-393-3803-5", url = "http://www.cs.uu.nl/research/projects/proxima/thesis.pdf", class = "Ext", tutor = "Doaitse Swierstra and Johan Jeuring and Lambert Meertens" } @inproceedings{li03HaRe, author = {Li, Huiqing and Reinke, Claus and Thompson, Simon}, title = {Tool support for refactoring functional programs}, booktitle = {Haskell '03: Proceedings of the 2003 ACM SIGPLAN workshop on Haskell}, year = {2003}, isbn = {1-58113-758-3}, pages = {27--38}, location = {Uppsala, Sweden}, doi = {http://doi.acm.org/10.1145/871895.871899}, publisher = {ACM}, address = {New York, NY, USA}, } % Things below are probably not needed, but are here for reference purposes. @PREAMBLE{{\providecommand{\noopsort}[1]{}}} @inproceedings{chakravarty05associated01, author = "Chakravarty, Manuel M. T. and Keller, Gabriele and Peyton Jones, Simon and Marlow, Simon", title = "Associated types with class", editor = "Palsberg, Jens and Abadi, Mart{\'i}n", booktitle = "Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12--14, 2005", pages = "1--13", publisher = "ACM Press", year = 2005} @inproceedings{chakravarty05associated02, author = "Chakravarty, Manuel M. T. and Keller, Gabriele and Peyton Jones, Simon", title = "Associated type synonyms", editor = "Danvy, Olivier and Pierce, Benjamin C.", booktitle = "Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming, ICFP 2005, Tallinn, Estonia, September 26--28, 2005", pages = "241--253", publisher = "ACM Press", year = 2005} @inproceedings{bringert06pattern, author = "Bringert, Bj{\"o}rn and Ranta, Aarne", title = "A pattern for almost compositional functions", editor = "Reppy, John H. and Lawall, Julia L", booktitle = "Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming, ICFP 2006, Portland, Oregon, USA, September 16--21, 2006", pages = "216--226", publisher = "ACM Press", year = 2006} @article{hinze04type, author = "Hinze, Ralf and Jeuring, Johan and L{\"o}h, Andres", title = "Type-indexed data types", journal = "Science of Computer Programming", volume = 51, number = 2, pages = "117--151", year = 2004} @misc{hinze08generic, author = "Hinze, Ralf and L{\"o}h, Andres", title = "Generic programming in {3D}", year = 2008, note = "To appear in Science of Computer Programming"} @inproceedings{holdermans06generic01, author = "Holdermans, Stefan and Jeuring, Johan and L{\"o}h, Andres and Rodriquez, Alexey", title = "Generic views on data types", editor = "Uustalu, Tarmo", booktitle = "Mathemathics of Program Construction, 8th International Conference, MPC 2006, Kuressaare, Estonia, July 3--5, 2006, Proceedings", series = "Lecture Notes in Computer Science", volume = 4014, pages = "209--234", publisher = "Springer-Verlag", year = 2006} @article{jansson98polytypic, author = "Jansson, Patrik and Jeuring, Johan", title = "Polytypic unification", journal = "Journal of Functional Programming", volume = 8, number = 5, pages = "527--536", year = 1998} @inproceedings{jansson00framework, author = "Jansson, Patrik and Jeuring, Johan", title = "A framework for polytypic programming on terms, with an application to rewriting", booktitle = "Proceedings Workshop on Generic Programming (WGP2000), July 6, 2000, Ponte de Lima, Portugal", editor = "Jeuring, Johan", pages = "33--45", year = 2000, note = "The proceedings of the workshop have been published as a technical report (UU-CS-2000-19) at Utrecht University"} @inproceedings{mitchell07uniform, author = "Mitchell, Neil and Runciman, Colin", title = "Uniform boilerplate and list processing", editor = "Keller, Gabriele", booktitle = "Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007, Freiburg, Germany, September 30, 2007", pages = "49--60", publisher = "ACM Press", year = 2007} @mastersthesis{noort08generic, author = "{\noopsort{Noort}{van Noort}}, Thomas", title = "Generic Views for Generic Types", school = "Utrecht University", year = 2008} @string{lncs = {LNCS}} @string{mpc06long = {Proceedings of the 8th International Conference on Mathematics of Program Construction, MPC'06}} @string{mpc98long = {Proceedings of the 4th International Conference on Mathematics of Program Construction, MPC'98}} @string{scp = {Science of Computer Programming}} @string{longspringer = {Springer-{V}erlag}} @string{springer = {Springer}} @string{acm = {ACM}} @article{debuggy, author = {Brown, John Seely and VanLehn, Kurt}, title = {Repair Theory: A Generative Theory of Bugs in Procedural Skills}, journal = {Cognitive Science}, volume = {4}, year = {1980}, pages = "379--426" } @book{bundy, AUTHOR = "Alan Bundy ", TITLE = "The Computer Modelling of Mathematical Reasoning", YEAR = "1983", PUBLISHER = "Academic Press" } @MISC{Garrett-05, AUTHOR = {Garrett, J.J}, TITLE = {Ajax: A New Approach to Web Applications}, YEAR = {2005}, note = {\url{http://www.adaptivepath.com/publications/essays/archives/000385.php}} } @inproceedings{ssgp, author = {Hinze, Ralf and Jeuring, Johan and L\"oh, Andres}, editor = {Backhouse, Roland and Gibbons, Jeremy and Hinze, Ralf and Jeuring, Johan}, title = {{Comparing approches to generic programming in Haskell}}, booktitle = {Generic Programming, Advanced Lectures}, series = LNCS, volume = 4719, publisher = springer, year = 2007, } @MISC{Jacobson-07, AUTHOR = {Jacobson, Alex}, TITLE = {{HAppS} -- Haskell Application Server}, HOWPUBLISHED = {\url{http://happs.org/}}, YEAR = 2006, NOTE = {\url{http://happs.org/}, accessed June 2007} } @inproceedings{jeuringpasman, author = {Jeuring, Johan and Pasman, Wouter}, title = {Strategy Feedback in an E-learning Tool for Mathematical Exercises}, year = 2007, booktitle = {{Proceedings Workshop on e-Learning, Leipzig}}, note = {{Also appeared as Technical report Utrecht University UU-CS-2007-007}} } @inproceedings{lodder, author = {Lodder, Josje and Jeuring, Johan and Passier, Harrie}, title = {An interactive tool for manipulating logical formulae}, year = 2006, booktitle = {{Proceedings of the Second International Congress on Tools for Teaching Logic}}, class = {Wet}, editor = {Manzano, M. and P{\'e}rez Lancho, B. and Gil, A.} } @inproceedings{eqsolver, author = {Passier, Harrie and Jeuring, Johan}, title = {Feedback in an interactive equation solver}, year = 2006, booktitle = {{Proceedings of the Web Advanced Learning Conference and Exhibition, WebALT 2006}}, editor = {Sepp{\"a}l{\"a}, M. and Xambo, S. and Caprotti, O.}, pages = {53--68}, publisher = {Oy WebALT Inc.} } @book{haskellbook, AUTHOR = "Peyton Jones et al, Simon ", TITLE = "Haskell 98, Language and Libraries. The Revised Report", YEAR = "2003", PUBLISHER = "Cambridge University Press", Note = "A special issue of the Journal of Functional Programming" } @article{strategiessurvey, author = "Eelco Visser", title = "A Survey of Strategies in Rule-Based Program Transformation Systems", journal = "Journal of Symbolic Computation", volume = "40", number = "1", pages = "831--873", year = "2005", note = "Special issue on Reduction Strategies in Rewriting and Programming" } @inproceedings{mory, author = {Mory, E.}, title = {Feedback research revisited}, year = 2003, booktitle = {{Handbook of research for educational communications and technology}}, editor = {D.H. Jonassen} } @inproceedings{Backhouse:2007fr, Author = {Backhouse, Roland and Jansson, Patrik and Jeuring, Johan and Meertens, Lambert}, Booktitle = {Advanced Functional Programming}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, longEditor = {Swierstra, S. Doaitse and Henriques, Pedro R. and Oliveira, Jose N.}, Editor = {Swierstra, S. Doaitse and others}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literatuur/Generic%20Programming%20-%20An%20Introduction.pdf}, Pages = {28--115}, Publisher = springer, Series = LNCS, Title = {Generic programming - An Introduction -}, Volume = 1608, Year = 1999 } @inproceedings{Bringert_Ranta:2006Compos, COMMENTAddress ={New York, NY, USA}, Author = {Bringert, Bj\"orn and Ranta, Aarne}, longBooktitle ={{ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}}, Booktitle = {ICFP'06}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literature/A%20pattern%20for%20almost%20compositional%20functions.pdf}, Pages = {216--226}, Publisher = acm, Title = {A pattern for almost compositional functions}, Year = 2006 } @inproceedings{Cheney_Hinze:2002LIGD, Author = {James Cheney and Ralf Hinze}, longBooktitle ={Haskell '02: Proceedings of the 2002 ACM SIGPLAN workshop on Haskell}, Booktitle = {Haskell'02}, Editor = {Chakravarty, Manuel}, Pages = {90--104}, Publisher = acm, Title = {A lightweight implementation of generics and dynamics}, COMMENTisbn = {1-58113-605-6}, doi = {10.1145/581690.581698}, Year = 2002 } @inproceedings{Czarnecki_etal:2003DSLimplcomp, author = {Krzysztof Czarnecki and John T. O'Donnell and J{\"o}rg Striegnitz and Walid Taha}, title = {DSL Implementation in MetaOCaml, Template Haskell, and C++.}, booktitle = {Domain-Specific Program Generation}, year = 2003, pages = {51--72}, ee = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3016{\&}spage=51}, bibsource = {DBLP, http://dblp.uni-trier.de} } @techreport{Fokker:1998ys, Author = {Fokker, Jeroen}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Institution = {Utrecht University}, Title = {Functioneel programmeren}, Year = 1998 } @article{Garcia_Jarvi_etal:2007CompLangGen, author = {Ronald Garcia and Jaakko J\"arvi and Andrew Lumsdaine and Jeremy Siek and Jeremiah Willcock}, title = {An extended comparative study of language support for generic programming}, journal = {J. Funct. Program.}, volume = 17, number = 2, year = 2007, COMMENTissn = {0956-7968}, pages = {145--205}, doi = {10.1017/S0956796806006198}, publisher = {Cambridge University Press} } @inproceedings{HaRe, COMMENTAddress ={New York, NY, USA}, Author = {Huiqing Li and Claus Reinke and Simon Thompson}, longBooktitle ={Haskell '03: Proceedings of the 2003 ACM SIGPLAN workshop on Haskell}, Booktitle = {Haskell'03}, Doi = {10.1145/871895.871899}, COMMENTIsbn = {1-58113-758-3}, COMMENTLocation ={Uppsala, Sweden}, Pages = {27--38}, Publisher = acm, Title = {Tool support for refactoring functional programs}, Year = 2003 } @inproceedings{Hinze:1999lr, Author = {Hinze, Ralf}, Booktitle = {Proceedings of the Third Haskell Workshop}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Editor = {Meijer, Erik}, Number = {UU-CS-1999-28}, Organization = {Utrecht University}, Title = {A generic programming extension for {H}askell}, Year = 1999 } @article{Hinze:2002lr, Author = {Hinze, Ralf}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Journal = {Science of Computer Programming}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literatuur/Polytypic%20values%20possess%20polykinded%20types.pdf}, Pages = {129--159}, Title = {Polytypic values possess polykinded types}, Year = 2002 } @inproceedings{Hinze:2004GM, Author = {Ralf Hinze}, longBooktitle = {{Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004}}, Booktitle = {ICFP'04}, Pages = {236--243}, Publisher = acm, Title = {Generics for the masses}, Year = 2004 } @article{Hinze:2006GM, Author = {Ralf Hinze}, Journal = {Journal of Functional Programming}, Pages = {451--482}, Title = {Generics for the Masses}, Volume = 16, Year = 2006 } @techreport{Hinze:2006vn, Author = {Hinze, Ralf and Jeuring, Johan and L\"oh, Andres}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Institution = {Utrecht University}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literatuur/Comparing%20approaches%20to%20generic%20programming%20in%20haskell.pdf}, Number = {UU-CS-2006-022}, Title = {Comparing Approches to Generic Programming in Haskell}, Year = 2006 } @incollection{HinzeJeuringLoh:2007, Author = {Hinze, Ralf and Jeuring, Johan and L\"oh, Andres}, Title = {Comparing Approches to Generic Programming in Haskell}, series = LNCS, publisher = springer, volume = 4719, Year = 2007, Booktitle = {Datatype-Generic Programming}, Editor = {Backhouse, Roland and others}, COMMENTisbn = {978-3-540-76785-5}, DOI = {10.1007/978-3-540-76786-2_2}, pages = {72--149} } @inproceedings{Hinze_Loh:2006SYBrev, Author = {Hinze, Ralf and L{\"o}h, Andres}, longBooktitle =MPC06long, Booktitle = {MPC'06}, Editor = {Tarmo Uustalu}, Pages = {180--208}, Publisher = springer, Series = LNCS, documenturl = {http://www.informatik.uni-bonn.de/~loeh/SYB1.html}, Title = {``{Scrap Your Boilerplate}'' Revolutions}, Volume = 4014, Year = 2006 } @incollection{Hinze_Loh:2007NOW, Author = {Hinze, Ralf and L{\"o}h, Andres}, Booktitle = {Datatype-Generic Programming}, longEditor = {Backhouse, Roland and Gibbons, Jeremy and Hinze, Ralf and Jeuring, Johan}, Editor = {Backhouse, Roland and others}, Publisher = springer, Series = LNCS, pages = {150--208}, Title = {Generic programming, now!}, Year = 2007, documenturl = {http://www.springerlink.com/content/978-3-540-76785-5/} } @inproceedings{Hinze_Loh_Oliveira:2006SYBrel, Author = {Hinze, Ralf and L{\"o}h, Andres and Oliveira, Bruno C. d. S.}, longBooktitle = {Proceedings of the 8th International Symposium on Functional and Logic Programming, FLOPS 2006}, Booktitle = {FLOPS'06}, Editor = {Wadler, Philip and Hagiya, Masimi}, Publisher = springer, Series = LNCS, Title = {``{Scrap Your Boilerplate}'' Reloaded}, documenturl = {http://www.informatik.uni-bonn.de/~loeh/SYB0.html}, Volume = 3945, Year = 2006 } @inproceedings{Hinze_PeytonJones:2000DTC, Author = {Hinze, Ralf and Peyton Jones, Simon}, Booktitle = {Proceedings of the Fourth Haskell Workshop}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Title = {Derivable type classes}, Year = 2000 } @inproceedings{Jansson_Jeuring:1997PolyP, author = "P. Jansson and J. Jeuring", title = "Poly{P} --- a polytypic programming language extension", longbooktitle ={POPL '97: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, booktitle = {POPL'97}, doi = {10.1145/263699.263763}, COMMENTisbn = {0-89791-853-3}, pages = {470--482}, publisher = acm, Year = 1997 } @book{Jones:2003aa, Abstract = {Haskell is a general purpose, purely functional programming language incorporating many recent innovations in programming language design. Haskell provides higher-order functions, non-strict semantics, static polymorphic typing, user-defined algebraic datatypes, pattern-matching, list com- prehensions, a module system, a monadic I/O system, and a rich set of primitive datatypes, including lists, arrays, arbitrary and fixed precision integers, and floating-point numbers. Haskell is both the culmination and solidification of many years of research on non-strict functional languages. This report defines the syntax for Haskell programs and an informal abstract semantics for the meaning of such programs. We leave as implementation dependent the ways in which Haskell programs are to be manipulated, interpreted, compiled, etc. This includes such issues as the nature of programming environments and the error messages returned for undefined programs (i.e. programs that formally evaluate to ). }, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Editor = {Simon {Peyton Jones}}, Institution = {Haskell.org}, Local-Url = {file://localhost/Users/alex/Documents/OU%20Technische%20Informatica/Afstuderen/Functional%20programming/Haskell98%20report.pdf}, Publisher = {Cambridge University Press}, Title = {Haskell 98 Language and Libraries The Revised Report}, Year = 2003 } @inproceedings{Jones:2006zr, COMMENTAddress ={New York, NY, USA}, Author = {Peyton Jones, Simon and Vytiniotis, Dimitrios and Weirich, Stephanie and Washburn, Geoffrey}, longBooktitle ={ICFP '06: Proceedings of the eleventh ACM SIGPLAN interntional conference on Functional programming}, Booktitle = {ICFP'06}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literatuur/GADT/Simple%20Unification-based%20Type%20Inference%20for%20GADTs.pdf}, Pages = {50--61}, Title = {Simple unification-based type inference for {GADT}s}, Year = 2006 } @inproceedings{Lammel:2003qy, Author = {L\"ammel, Ralf and Visser, J.}, longBooktitle = {{Proceedings of Practical Aspects of Declarative Programming, PADL 2003}}, Booktitle = {PADL'03}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Editor = {Dahl, V. and Wadler, P.}, Pages = {357--375}, Series = LNCS, Title = {{A Strafunski Application Letter}}, Volume = 2562, Year = 2003 } @inproceedings{Lammel_PeytonJones:2005SYBwCl, Author = {Ralf L{\"a}mmel and Peyton Jones, Simon}, longBooktitle = {Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2005}, Booktitle = {ICFP'05}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Local-Url = {file://localhost/Volumes/iDisk/Public/Afstuderen/Generic%20programming%20literature/Scrap%20your%20boilerplate%20with%20class%20-%20extensible%20generic%20functions.pdf}, Pages = {204--215}, Title = {Scrap your boilerplate with class: extensible generic functions}, Year = 2005 } @MastersThesis{ Noort2008, AUTHOR = {Thomas van Noort}, YEAR = {2008}, TITLE = {Generic views for generic types}, SCHOOL = {Utrecht University} } @article{chakravarty05associated, author = "Manuel M. T. Chakravarty and Gabriele Keller and Simon Peyton Jones and Simon Marlow", title = {{Associated Types with Class}}, journal={Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of Programming Languages}, pages={1--13}, year={2005}, publisher={ACM Press New York, NY, USA} } @inproceedings{Loh:2003fk, Author = {L\"oh, Andres and Clarke, Dave and Jeuring, Johan}, longBooktitle ={Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2003}, Booktitle = {ICFP'03}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Editor = {Shivers, Olin}, Pages = {141--152}, Title = {Depency-style {G}eneric {H}askell}, Year = 2003 } @inproceedings{Loh:2006lr, Author = {Andres L\"{o}h and Ralf Hinze}, longbooktitle ={PPDP '06: Proceedings of the 8th ACM SIGPLAN symposium on Principles and practice of declarative programming}, booktitle = {PPDP'06}, Date-Added = {2007-06-19 00:45:01 +0200}, Date-Modified ={2007-06-19 00:46:51 +0200}, Editor = {Michael Maher}, Title = {Open data types and open functions}, year = 2006, pages = {133--144}, COMMENTisbn = {1-59593-388-3}, doi = {10.1145/1140335.1140352}, publisher = acm } @unpublished{Lynagh:2003THreport, Author = {Lynagh, Ian}, Month = {May}, Title = {{Template} {Haskell}: A Report From The Field}, note = "URL: \url{http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/papers/}", documentURL = {http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/papers/Template_Haskell-A_Report_From_The_Field.ps}, Year = 2003 } @inproceedings{Norell_Jansson2003:PolyP, author = {Ulf Norell and Patrik Jansson}, title = {Polytypic Programming in {Haskell}}, longbooktitle ={Implementation of Functional Languages 2003, 15th International Workshop}, booktitle = {IFL'03}, pages = {168--184}, editor = {Phil Trinder and others}, publisher = springer, series = LNCS, volume = 3145, documenturl = {http://www.cs.chalmers.se/~ulfn/papers/polyhaskell.ps}, url_springer = {http://www.springerlink.com/index/HYT3D77Y4R9XWF1P}, year = 2004 } @inproceedings{Norell_Jansson:2004Proto, Author = {Norell, Ulf and Jansson, Patrik}, longBooktitle = {{Mathematics of Program Construction, 7th International Conference, MPC 2004, Stirling, Scotland, UK, July 12-14, 2004, Proceedings}}, Booktitle = {MPC'04}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Editor = {Kozen, Dexter and Shankland, Carron}, Pages = {314--333}, Publisher = springer, Series = LNCS, Title = {{Prototyping Generic Programming in Template Haskell.}}, Volume = 3125, Year = 2004 } @unpublished{Oleg:smash, Author = {Kiselyov, Oleg}, year = 2006, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Note = {\url{http://article.gmane.org/gmane.comp.lang.haskell.general/14086}}, Title = {Smash your boilerplate without class and Typeable} } @proceedings{DBLP:conf/sfp/2006, editor = {Henrik Nilsson}, title = {Revised Selected Papers from the Seventh Symposium on Trends in Functional Programming, TFP 2006, Nottingham, United Kingdom, 19-21 April 2006}, booktitle = {Trends in Functional Programming}, publisher = {Intellect}, series = {Trends in Functional Programming}, volume = {7}, year = {2007}, isbn = {978-1-84150-188-8}, bibsource = {DBLP, http://dblp.uni-trier.de} } @techreport{Plasmeijer:2001lr, Author = {Plasmeijer, Rinus and van Eekelen, Marko}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Institution = {Department of software technology {U}niversity of {N}ijmegen}, Title = {Clean language report version 2.0}, Year = 2001 } @inproceedings{Ren_Erwig:2006RecLib, author = {Deling Ren and Martin Erwig}, title = {A generic recursion toolbox for Haskell or: scrap your boilerplate systematically}, longbooktitle ={Haskell '06: Proceedings of the 2006 ACM SIGPLAN workshop on Haskell}, booktitle = {Haskell'06}, year = 2006, COMMENTisbn = {1-59593-489-8}, pages = {13--24}, doi = {10.1145/1159842.1159845}, publisher = acm } @misc{Wadler:1998lr, Author = {Philip Wadler}, Date-Added = {2007-05-16 00:09:17 +0200}, Date-Modified ={2007-05-16 00:10:31 +0200}, Howpublished = {Mail to the java-genericity mailing list}, Title = {The expression problem}, Year = 1998 } @inproceedings{Weirich:2006RepLib, Author = {Weirich, Stephanie}, longBooktitle ={Haskell '06: Proceedings of the 2006 ACM SIGPLAN workshop on Haskell}, Booktitle = {Haskell'06}, Pages = {1--12}, Publisher = acm, COMMMENTisbn = {1-59593-489-8}, doi = {10.1145/1159842.1159844}, Title = {{RepLib}: a library for derivable type classes}, Year = 2006 } @manual{Winstanley:2006fk, Author = {Winstanley, Noel and Meacham, John}, Date-Added = {2007-05-21 00:11:43 +0200}, Date-Modified ={2007-05-21 00:11:43 +0200}, Note = {\url{http://repetae.net/~john/computer/haskell/DrIFT/}}, Title = {Dr{IFT} user guide}, Year = 2006 } @Misc{criteria_template, Date-Added = {2007-05-29 00:31:38 +0200}, Date-Modified ={2007-05-29 00:32:40 +0200}, Title = {Generic programming criteria template}, author = {The {Haskell Generic Library list}}, year = 2008, documentUrl = {http://www.haskell.org/haskellwiki/Applications_and_libraries/Generic_programming/Template}, note = {Wiki page at \url{haskell.org/haskellwiki/Applications_and_libraries/Generic_programming/Template}} } @unpublished{forse, Author = {John Derrick and Simon Thompson}, Note = {Project description}, Title = {{FORSE: Formally-Based Tool Support for Erlang Development}}, Url = {http://www.cs.kent.ac.uk/projects/forse/}, Year = 2005 } @inproceedings{genericviews, Author = {Holdermans, Stefan and Jeuring, Johan and L{\"o}h, Andres and Rodriguez, Alexey}, longBooktitle =MPC06long, Booktitle = {MPC'06}, Editor = {Tarmo Uustalu}, Pages = {209--234}, Publisher = springer, Series = LNCS, Title = {Generic views on data types}, Volume = 4014, Year = 2006 } @article{hinze02:polykind, Author = {Ralf Hinze}, Journal = SCP, Number = {2--3}, Pages = {129--159}, Title = {Polytypic values possess polykinded types}, Volume = 43, Year = 2002 } @inproceedings{historyofhaskell, Author = {Paul Hudak and John Hughes and Peyton Jones, Simon and Philip Wadler}, longBooktitle ={HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages}, Booktitle = {HOPL III}, Pages = {12-1--12-55}, Publisher = acm, Title = {A history of {H}askell: being lazy with class}, doi = {10.1145/1238844.1238856}, COMMENTisbn = {978-1-59593-766-X}, Year = 2007 } @inproceedings{strafunski, Author = {L{\"a}mmel, Ralf and Visser, Joost}, longBooktitle = {{Proceedings Practical Aspects of Declarative Programming, PADL 2002}}, Booktitle = {PADL'02}, Pages = {137--154}, Publisher = springer, Series = LNCS, Title = {Typed Combinators for Generic Traversal}, Volume = 2257, Year = 2002 } @inproceedings{Mitchell:2006:patternshaskell, author = "Neil Mitchell and Colin Runciman", title = "A Static Checker for Safe Pattern Matching in {H}askell", publisher = "Intellect", year = "2007", booktitle = "Trends in Functional Programming", volume = "6", isbn = "9781841501765", pdf = "http://www-users.cs.york.ac.uk/\~{}ndm/downloads/paper-a_static_checker_for_safe_pattern_matching_in_haskell-01_feb_2007.pdf", abstract = "A Haskell program may fail at runtime with a pattern-match error if the program has any incomplete (non-exhaustive) patterns in definitions or case alternatives. This paper describes a static checker that allows non-exhaustive patterns to exist, yet ensures that a pattern-match error does not occur. It describes a constraint language that can be used to reason about pattern matches, along with mechanisms to propagate these constraints between program components.", } @inproceedings{naylor07-reach, author = {Matthew Naylor and Colin Runciman}, title = {Finding Inputs that Reach a Target Expression}, longbooktitle ={SCAM '07: Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007)}, booktitle = {SCAM'07}, year = 2007, doi = {10.1109/SCAM.2007.11}, COMMENTisbn = {0-7695-2880-5}, pages = {133--142}, publisher = {IEEE Computer Society}, COMMENTaddress ={Washington, DC, USA}, } @proceeding{Haskell07, note = {Program Chair-Gabriele Keller}, title = {Haskell'07: Proceedings of the ACM SIGPLAN workshop on Haskell}, year = {2007}, isbn = {978-1-59593-674-5}, publisher = acm } @inproceedings{Mitchell:2007:uniplate, author = "Neil Mitchell and Colin Runciman", title = "Uniform Boilerplate and List Processing", year = 2007, publisher = acm, COMMENTmonth = "September", COMMENTday = 30, longbooktitle ={Haskell '07: Proceedings of the ACM SIGPLAN workshop on Haskell}, booktitle = "Haskell'07", pdf = "http://www-users.cs.york.ac.uk/\~{}ndm/downloads/paper-uniform_boilerplate_and_list_processing-30_sep_2007.pdf", abstract = "Generic traversals over recursive data structures are often referred to as boilerplate code. The definitions of functions involving such traversals may repeat very similar patterns, but with variations for different data types and different functionality. Libraries of operations abstracting away boilerplate code typically rely on elaborate types to make operations generic. The motivating observation for this paper is that most traversals have value-specific behaviour for just one type. We present the design of a new library exploiting this assumption. Our library allows concise expression of traversals with competitive performance.", } @incollection{ wadler89theorems, author = "Philip Wadler", title = "Theorems for Free!", longbooktitle ="Proceedings 4th Int.\ Conf.\ on Funct.\ Prog.\ Languages and Computer Arch., {FPCA}'89, London, {UK}, 11--13 Sept 1989", booktitle = "{FPCA}'89", publisher = acm, COMMENTaddress ="New York", pages = "347--359", year = 1989, documenturl = "citeseer.ist.psu.edu/wadler89theorems.html" } @Misc{haskellprime, Title = {Haskell Prime}, author = {The {Haskell Prime list}}, documentUrl = {http://hackage.haskell.org/trac/haskell-prime}, year = 2006, note = {Wiki page at \url{http://hackage.haskell.org/trac/haskell-prime}} } @inproceedings{AtanassowJ04, author = {Frank Atanassow and Johan Jeuring}, title = {Inferring Type Isomorphisms Generically}, booktitle = {MPC'04}, year = 2004, Publisher = springer, Series = LNCS, Volume = 3125, pages = {32--53}, ee = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3125{\&}spage=32}, COMMENTcrossref ={DBLP:conf/mpc/2004}, COMMENTbibsource ={DBLP, http://dblp.uni-trier.de} } @article{ jansson02polytypic, author = "Patrik Jansson and Johan Jeuring", title = "Polytypic data conversion programs", journal = "Science of Computer Programming", volume = 43, number = 1, pages = "35--75", year = 2002, documenturl = "citeseer.ist.psu.edu/jansson02polytypic.html" } @inproceedings{generichaskelltheory, author = {Hinze, Ralf and Jeuring, Johan}, title = {Generic {Haskell}: practice and theory}, booktitle = {Generic Programming}, editors = {Backhouse, Roland and Gibbons, Jeremy}, series = LNCS, doi = {10.1007/b12027}, volume = 2793, publisher = springer, year = 2003, pages = "1--56" } @inproceedings{generichaskellapplications, author = {Hinze, Ralf and Jeuring, Johan}, title = {Generic {H}askell: applications}, booktitle = {Generic Programming}, editors = {Backhouse, Roland and Gibbons, Jeremy}, series = LNCS, doi = {10.1007/b12027}, volume = 2793, publisher = springer, year = 2003, pages = "57--96" } @inproceedings{norelljansson2003:PolyHaskell, author = {Ulf Norell and Patrik Jansson}, title = {Polytypic Programming in {Haskell}}, editor = {Michaelson, G. and Trinder, P.}, longbooktitle ={Implementation of Functional Languages, Proc. of the 15th Internat. Workshop, IFL 2003}, booktitle = {IFL'03}, series = LNCS, year = 2004, volume = 3145, publisher = springer } @inproceedings{ koopman02gast, author = "P. Koopman and A. Alimarine and J. Tretmans and R. Plasmeijer", title = "Gast: Generic automated software testing", editor = {Pe\~{n}a, R. and Arts, T.}, longbooktitle ={IFL'02, Selected Papers}, booktitle = {IFL'02}, series = LNCS, year = 2003, volume = 2670, publisher = springer } @inproceedings{clarkeloeh2003:ghspecifically, author = {Dave Clarke and Andres L\"{o}h}, title = {Generic Haskell, Specifically}, booktitle = {Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming}, year = 2003, COMMENTisbn = {1-4020-7374-7}, pages = {21--47}, publisher = {Kluwer, B.V.}, COMMENTaddress ={Deventer, The Netherlands, The Netherlands}, } @inproceedings{Gibbons2007:Datatype, author = "Jeremy Gibbons", title = "Datatype-Generic Programming", booktitle = "Spring School on Datatype-Generic Programming", editor = "Roland Backhouse and Jeremy Gibbons and Ralf Hinze and Johan Jeuring", publisher = "Springer-Verlag", volume = "4719", year = "2007" } @inproceedings{wadler89:how, AUTHOR = {Philip Wadler and Stephen Blott}, TITLE = {How to make ad-hoc polymorphism less ad-hoc}, PAGES = {60--76}, BOOKTITLE = {Conference Record of the 16th Annual {ACM} Symposium on Principles of Programming Languages}, PUBLISHER = {ACM}, MONTH = JAN, YEAR = 1989, DOCUMENTURL = {ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Philip_Wadler/how-to-make-ad-hoc-poly-less-ad-hoc.dvi}, bibsource = {citeseer.ist.psu.edu/wadler88how.html} } @misc{hudak1999:gih, title={{A Gentle Introduction to Haskell 98}}, author={Paul Hudak and John Peterson and Joseph Fasel}, year={1999}, publisher={Technical report, Yale University, October 1999.}, url={http://www.haskell.org/tutorial} } @inproceedings{wadler92:essence, author = "Philip Wadler", title = "The Essence of Functional Programming", booktitle = "Conference Record of the Nineteenth Annual {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages", address = "Albequerque, New Mexico", pages = "1--14", year = "1992", bibsource = "citeseer.ist.psu.edu/wadler92essence.html" } @misc{marlow1997:hug, title={{Happy User Guide}}, author={Simon Marlow and Andy Gill}, year={1997}, url={http://www.haskell.org/happy} } @misc{dornan2003:aug, title={{Alex User Guide}}, author={Chris Dornan and Isaac Jones and Simon Marlow}, year={2003}, url={http://www.haskell.org/alex} } @book{forman1999:metaclasses, author = {Ira R. Forman and Scott H. Danforth}, title = {Putting metaclasses to work: a new dimension in object-oriented programming}, year = {1999}, isbn = {0-201-43305-2}, publisher = {Addison Wesley Longman Publishing Co., Inc.}, address = {Redwood City, CA, USA}, } @phdthesis{taha1999:multistage, author = "Walid Taha", title = "Multi-Stage Programming: Its Theory and Applications", school = "Oregon Graduate Institute of Science and Technology", month = "June", year = 1999 } @misc{gurtovoy2002:bcm, title={{The Boost C++ metaprogramming library}}, author={Aleksey Gurtovoy and David Abrahams}, year={2002}, publisher={Technical Report}, url={http://www.cs.ualberta.ca/~graphics/software/boost/libs/mpl/doc/paper/mpl_paper.pdf} } @book{alexandrescu2001:modern, author = {Andrei Alexandrescu}, title = {Modern C++ design: generic programming and design patterns applied}, year = {2001}, isbn = {0-201-70431-5}, publisher = {Addison-Wesley Longman Publishing Co., Inc.}, address = {Boston, MA, USA}, } @article{sheard1999:ums, title={{Using MetaML: A Staged Programming Language}}, author={Tim Sheard}, journal={Advanced Functional Programming: Third International School, Braga, Portugal, September 12-19, 1998, Revised Lectures}, year={1999}, publisher={Springer} } @inproceedings{sheard2002:tmh, author = "Tim Sheard and Simon {Peyton Jones}", title = "Template metaprogramming for {Haskell}", booktitle = "ACM SIGPLAN Haskell Workshop 02", year = 2002, month = oct, pages = "1-16", editor = "Manuel M. T. Chakravarty", publisher = "ACM Press" } @inproceedings{norelljansson04:ProtoGen, author = {Ulf Norell and Patrik Jansson}, title = {Prototyping Generic Programming in {Template Haskell}}, booktitle = {Mathematics of Program Construction}, year = 2004, editor = "Dexter Kozen", series = "LNCS", volume = 3125, publisher = "Springer-Verlag", pages = "314--333" } @inproceedings{swierstra1996:deterministic, author = "S. Doaitse Swierstra and Luc Duponcheel", title = "Deterministic, Error-Correcting Combinator Parsers", booktitle = "Advanced Functional Programming", pages = "184-207", year = "1996", bibsource = "citeseer.ist.psu.edu/swierstra96deterministic.html" } @inproceedings{Horacek2006:hemf, author = {Helmut Horacek and Magdalena Wolska}, title = {Handling Errors in Mathematical Formulas}, booktitle = {Intelligent Tutoring Systems}, year = {2006}, pages = {339-348}, ee = {http://dx.doi.org/10.1007/11774303_34}, crossref = {DBLP:conf/its/2006}, bibsource = {DBLP, http://dblp.uni-trier.de} } @proceedings{DBLP:conf/its/2006, editor = {Mitsuru Ikeda and Kevin D. Ashley and Tak-Wai Chan}, title = {Intelligent Tutoring Systems, 8th International Conference, ITS 2006, Jhongli, Taiwan, June 26-30, 2006, Proceedings}, booktitle = {Intelligent Tutoring Systems}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, volume = {4053}, year = {2006}, isbn = {3-540-35159-0}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{hinze2001:tid, author = {Ralf Hinze and Johan Jeuring and Andres L\"{o}h}, title = {Type-Indexed Data Types}, booktitle = {MPC '02: Proceedings of the 6th International Conference on Mathematics of Program Construction}, year = {2002}, isbn = {3-540-43857-2}, pages = {148--174}, publisher = {Springer-Verlag}, address = {London, UK}, } @article{chakravarty2005:ats, title={{Associated type synonyms}}, author={Manuel M. T. Chakravarty and Gabriele Keller and Simon Peyton Jones}, journal={Proceedings of the tenth ACM SIGPLAN international conference on Functional programming}, pages={241--253}, year={2005}, publisher={ACM Press New York, NY, USA} } @techreport{rodriguez2008:clgph, Author = {Alexey Rodriguez and Johan Jeuring and Patrik Jansson and Alex Gerdes and Oleg Kiselyov and Bruno C. D. S. Oliveira}, Institution = {Department of Information and Computing Sciences, Utrecht University}, Title = {Comparing Libraries for Generic Programming in Haskell}, Year = {2008}, number = {UU-CS-2008-010} } @article{milner78, author = {Milner, Robin }, journal = {Journal of Computer and System Sciences}, pages = {348--375}, title = {A Theory of Type Polymorphism in Programming}, volume = {17}, year = {1978} } @inproceedings{wadler90:comprehending, address = {New York, NY, USA}, author = {Wadler, Philip }, booktitle = {LFP '90: Proceedings of the 1990 ACM conference on LISP and functional programming}, pages = {61--78}, publisher = {ACM}, title = {Comprehending Monads}, year = {1990} } @inproceedings{jones93:imperative, address = {New York, NY, USA}, author = {Jones, Simon P. and Wadler, Philip }, booktitle = {POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, pages = {71--84}, publisher = {ACM}, title = {Imperative functional programming}, year = {1993} } @article{launchbury94st, address = {New York, NY, USA}, author = {Launchbury, John and Jones, Simon P. }, journal = {SIGPLAN Not.}, month = {June}, number = {6}, pages = {24--35}, publisher = {ACM}, title = {Lazy Functional State Threads}, volume = {29}, year = {1994} } @article{hutton98parsing, address = {New York, NY, USA}, author = {Hutton, Graham and Meijer, Erik }, journal = {J. Funct. Program.}, month = {July}, number = {4}, pages = {437--444}, publisher = {Cambridge University Press}, title = {Monadic parsing in Haskell}, volume = {8}, year = {1998} } @inproceedings{meertens1996polytypically, address = {London, UK}, author = {Meertens, Lambert }, booktitle = {PLILP '96: Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs}, pages = {1--16}, publisher = {Springer-Verlag}, title = {Calculate Polytypically!}, year = {1996} } @article{huet1997zipper, author = {Huet, Gerard }, journal = {J. Functional Programming}, keywords = {substitution, term}, month = {September}, number = {5}, pages = {549--554}, posted-at = {2005-10-17 09:07:08}, priority = {2}, title = {Functional Pearl: The Zipper}, url = {http://citeseer.ist.psu.edu/context/1318873/0}, volume = {7}, year = {1997} } @UNPUBLISHED{rodriguez2008mutrec, author = {Alexey Rodriguez and Stefan Holdermans and Andres L\"oh and Johan Jeuring }, month = {July}, title = {Generic programming with fixed points for mutually recursive datatypes}, url = {http://people.cs.uu.nl/andres/Rec/}, year = {2008} } @techreport{rodriguez08generic, Author = {Thomas van Noort et al. }, Institution = {Department of Information and Computing Sciences, Utrecht University}, Title = {A Lightweight Approach to Datatype-Generic Rewriting}, Year = {2008} } @techUNPUBLISHEDreport{mvs08grotetrap, Author = {Martijn van Steenbergen et al. }, Institution = {Department of Information and Computing Sciences, Utrecht University}, Title = {Selecting (sub)expressions --- Generic programming without generic programs}, Year = {2008}, Month = {July} } @article{allentemporal, author = {James F. Allen}, title = {Maintaining knowledge about temporal intervals}, journal = {Commun. ACM}, volume = {26}, number = {11}, year = {1983}, issn = {0001-0782}, pages = {832--843}, doi = {http://doi.acm.org/10.1145/182.358434}, publisher = {ACM}, address = {New York, NY, USA}, }