@article(dyn:abadi, author = {Mart{\'{\i}}n Abadi and Luca Cardelli and Benjamin C. Pierce and Gordon D. Plotkin}, year = {1991}, title = {Dynamic Typing in a Statically Typed Language}, journal = {{ACM} Trans. Program. Lang. Syst.}, volume = {13}, number = {2}, pages = {237--268}, doi = {10.1145/103135.103138}, ) @article(Altenkirch:IC, author = {Thorsten Altenkirch and Neil Ghani and Peter Hancock and Conor McBride and Peter Morris}, year = {2015}, title = {Indexed containers}, journal = {Journal of Functional Programming}, volume = {25}, pages = {e5}, doi = {10.1017/S095679681500009X}, ) @inproceedings(Altenkirch:GPDT, author = {Thorsten Altenkirch and Conor Mcbride and Peter Morris}, year = {2007}, title = {Generic Programming with Dependent Types}, booktitle = {Proceedings of the 2006 International Conference on Datatype-generic Programming}, series = {SSDGP'06}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, pages = {209--257}, doi = {10.1007/978-3-540-76786-2\_4}, url = {http://dl.acm.org/citation.cfm?id=1782894.1782898}, ) @inproceedings(bahr:11:compositional-data-types, author = {Patrick Bahr and Tom Hvitved}, year = {2011}, title = {Compositional Data Types}, booktitle = {Proceedings of the Seventh ACM SIGPLAN Workshop on Generic Programming}, series = {WGP '11}, publisher = {ACM}, address = {New York, NY, USA}, pages = {83--94}, doi = {10.1145/2036918.2036930}, ) @article(bringert:06:compos, author = {Bj\"{o}rn Bringert and Aarne Ranta}, year = {2006}, title = {A Pattern for Almost Compositional Functions}, journal = {SIGPLAN Not.}, volume = {41}, number = {9}, pages = {216--226}, doi = {10.1145/1160074.1159834}, ) @inproceedings(dyn:amber:cardelli, author = {Luca Cardelli}, year = {1985}, title = {Amber}, booktitle = {Combinators and Functional Programming Languages, Thirteenth Spring School of the LITP, Val d'Ajol, France, May 6-10, 1985, Proceedings}, pages = {21--47}, doi = {10.1007/3-540-17184-3\_38}, ) @unpublished(chakravarty09instantgenerics, author = {Manuel M. T. Chakravarty and Gabriel C. Ditu and Roman Leshchinskiy}, year = {2009}, title = {Instant Generics: Fast and Easy}, url = {https://pdfs.semanticscholar.org/0e4b/bbf2738c6d91ce81c7f22973071eefe935e2.pdf}, note = {Draft}, ) @inproceedings(Cheney:02:LIGD, author = {James Cheney and Ralf Hinze}, year = {2002}, title = {A Lightweight Implementation of Generics and Dynamics}, booktitle = {Proceedings of the 2002 ACM SIGPLAN Workshop on Haskell}, series = {Haskell '02}, publisher = {ACM}, address = {New York, NY, USA}, pages = {90--104}, doi = {10.1145/581690.581698}, ) @misc(cheplyaka:traversal, author = {Roman Cheplyaka}, year = {2013}, title = {Generalizing generic fold}, howpublished = {\url{https://ro-che.info/articles/2013-03-11-generalizing-gfoldl}, \burl{http://hackage.haskell.org/package/traverse-with-class}}, note = {Blog article}, ) @article(gibbons:iterator, author = {Jeremy Gibbons and Bruno C\IeC{\'e}sar dos Santos Oliveira}, year = {2009}, title = {The Essence of the Iterator Pattern}, journal = {Journal of Functional Programming}, volume = {19}, number = {34}, pages = {377--402}, doi = {10.1017/S0956796809007291}, url = {http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/iterator.pdf}, note = {Revised version of \cite{gibbons:iterator}}, ) @inproceedings(henry:12:icfp, author = {Gr{\'e}goire Henry and Michel Mauny and Emmanuel Chailloux and Pascal Manoury}, year = {2012}, title = {Typing Unmarshalling Without Marshalling Types}, booktitle = {Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming}, series = {ICFP '12}, publisher = {ACM}, address = {New York, NY, USA}, pages = {287--298}, doi = {10.1145/2364527.2364569}, ) @inproceedings(hinze04generic-for-the-masses, author = {Ralf Hinze}, year = {2004}, title = {Generics for the masses}, editor = {Kathleen Fisher}, booktitle = {Proceedings of the ninth ACM SIGPLAN international conference on Functional Programming (ICFP '04)}, publisher = {ACM}, address = {New York, NY, USA}, pages = {236--243}, doi = {10.1145/1016850.1016882}, ) @incollection(hinze:03:gh-applications, author = {Ralf Hinze and Johan Jeuring}, year = {2003}, title = {Generic {Haskell}: {Applications}}, editor = {Roland Backhouse and Jeremy Gibbons}, booktitle = {Generic Programming: {Advanced} Lectures}, series = {Lecture Notes in Computer Science}, volume = {2793}, publisher = {Springer Berlin / Heidelberg}, pages = {57--96}, doi = {10.1007/978-3-540-45191-4\_2}, ) @inproceedings(hinze:03:gh-theory, author = {Ralf Hinze and Johan Jeuring}, year = {2003}, title = {Generic Haskell: Practice and Theory}, editor = {Roland Backhouse and Jeremy Gibbons}, booktitle = {Generic Programming, Advanced Lectures}, volume = {2793}, publisher = {Springer-Verlag}, pages = {1--56}, doi = {10.1007/978-3-540-45191-4\_1}, ) @inproceedings(hinze:2006:comparing-gp-approaches, author = {Ralf Hinze and Johan Jeuring and Andres L\"{o}h}, year = {2007}, title = {Comparing Approaches to Generic Programming in Haskell}, booktitle = {Proceedings of the 2006 International Conference on Datatype-generic Programming}, series = {SSDGP'06}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, pages = {72--149}, doi = {10.1007/978-3-540-76786-2\_2}, url = {http://dl.acm.org/citation.cfm?id=1782894.1782896}, ) @inproceedings(hinze:06:syb-revolutions, author = {Ralf Hinze and Andres L\"{o}h}, year = {2006}, title = {``Scrap Your Boilerplate'' Revolutions}, booktitle = {Proceedings of the 8th International Conference on Mathematics of Program Construction}, series = {MPC'06}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, pages = {180--208}, doi = {10.1007/11783596\_13}, ) @article(generic-programming-in-3d, author = {Ralf Hinze and Andres L{\"o}h}, year = {2009}, title = {Generic Programming in {3D}}, journal = {Science of Computer Programming}, volume = {74}, number = {8}, pages = {590--628}, doi = {10.1016/j.scico.2007.10.006}, ) @inproceedings(hinze:06:syb-reloaded, author = {Ralf Hinze and Andres L\"{o}h and Bruno C.d.S. Oliveira}, year = {2006}, title = {``{Scrap Your Boilerplate}'' Reloaded}, editor = {Masami Hagiya and Philip Wadler}, booktitle = {Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006)}, series = {Lecture Notes in Computer Science}, volume = {3945}, publisher = {Springer Berlin / Heidelberg}, pages = {13--29}, doi = {10.1007/11737414\_3}, ) @inproceedings(jansson:97:polyp, author = {Patrik Jansson and Johan Jeuring}, year = {1997}, title = {PolyP -- a Polytypic Programming Language Extension}, booktitle = {Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, series = {POPL '97}, publisher = {ACM}, address = {New York, NY, USA}, pages = {470--482}, doi = {10.1145/263699.263763}, ) @inproceedings(jansson:99:gp-intro, author = {Patrik Jansson and Johan Jeuring and Lambert Meertens}, year = {1999}, title = {Generic programming: An introduction}, booktitle = {3rd International Summer School on Advanced Functional Programming}, publisher = {Springer-Verlag}, pages = {28--115}, doi = {10.1007/10704973\_2}, ) @inproceedings(karvonen:2007:generics-ml, author = {Vesa A.J. Karvonen}, year = {2007}, title = {Generics for the Working ML'er}, booktitle = {Proceedings of the 2007 Workshop on Workshop on ML}, series = {ML '07}, publisher = {ACM}, address = {New York, NY, USA}, pages = {71--82}, doi = {10.1145/1292535.1292547}, ) @article(lammel:05:syb-with-class, author = {Ralf L\"{a}mmel and Simon Peyton Jones}, year = {2005}, title = {Scrap Your Boilerplate with Class: Extensible Generic Functions}, journal = {SIGPLAN Not.}, volume = {40}, number = {9}, pages = {204--215}, doi = {10.1145/1090189.1086391}, ) @inproceedings(lammel:03:SYB, author = {Ralf L\"{a}mmel and Peyton Jones, Simon}, year = {2003}, title = {Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming}, booktitle = {Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation}, series = {TLDI '03}, publisher = {ACM}, address = {New York, NY, USA}, pages = {26--37}, doi = {10.1145/604174.604179}, ) @manual(ocaml-manual, author = {Xavier Leroy and Damien Doligez and Alain Frisch and Jacques Garrigue and R\IeC{\'e}my, Didier and J\IeC{\'e}r\IeC{\^o}me Vouillon}, year = {2017}, title = {The {OC}aml system, release 4.06, Documentation and user\begingroup\let \relax\relax \endgroup[Pleaseinsert\PrerenderUnicode{’}intopreamble]s manual}, organization = {INRIA}, url = {http://caml.inria.fr/pub/docs/manual-ocaml/extn.html#sec261}, ) @article(dyn:leroy, author = {Xavier Leroy and Michel Mauny}, year = {1993}, title = {Dynamics in {ML}}, journal = {Journal of Functional Programming}, volume = {3}, number = {4}, pages = {431--463}, doi = {10.1017/S0956796800000848}, ) @inproceedings(Magalhaes:10:generic-deriving, author = {Magalh\~{a}es, Jos{\'e} Pedro and Atze Dijkstra and Johan Jeuring and Andres L\"{o}h}, year = {2010}, title = {A Generic Deriving Mechanism for Haskell}, booktitle = {Proceedings of the Third ACM Haskell Symposium on Haskell}, series = {Haskell '10}, publisher = {ACM}, address = {New York, NY, USA}, pages = {37--48}, doi = {10.1145/1863523.1863529}, ) @inproceedings(Magalhaes:11:GPID, author = {Magalh\~{a}es, Jos{\'e} Pedro and Johan Jeuring}, year = {2011}, title = {Generic Programming for Indexed Datatypes}, booktitle = {Proceedings of the Seventh ACM SIGPLAN Workshop on Generic Programming}, series = {WGP '11}, publisher = {ACM}, address = {New York, NY, USA}, pages = {37--46}, doi = {10.1145/2036918.2036924}, ) @article(mcbride:applicative, author = {Conor Mcbride and Ross Paterson}, year = {2008}, title = {Applicative Programming with Effects}, journal = {J. Funct. Program.}, volume = {18}, number = {1}, pages = {1--13}, doi = {10.1017/S0956796807006326}, ) @article(Meertens1992, author = {Lambert Meertens}, year = {1992}, title = {Paramorphisms}, journal = {Formal Aspects of Computing}, volume = {4}, number = {5}, pages = {413--424}, doi = {10.1007/BF01211391}, ) @inproceedings(mitchell:Uniplate, author = {Neil Mitchell and Colin Runciman}, year = {2007}, title = {Uniform Boilerplate and List Processing}, booktitle = {Proceedings of the ACM SIGPLAN Workshop on Haskell Workshop}, series = {Haskell '07}, publisher = {ACM}, address = {New York, NY, USA}, pages = {49--60}, doi = {10.1145/1291201.1291208}, ) @inproceedings(norell:03:polytypic, author = {Ulf Norell and Patrik Jansson}, year = {2004}, title = {Polytypic Programming in Haskell}, booktitle = {Proceedings of the 15th International Conference on Implementation of Functional Languages}, series = {IFL'03}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, pages = {168--184}, doi = {10.1007/978-3-540-27861-0\_11}, ) @article(Multiplate, author = {Russell O'Connor}, year = {2011}, title = {Functor is to Lens as Applicative is to Biplate: Introducing Multiplate}, journal = {CoRR}, volume = {abs/1103.2841}, url = {http://arxiv.org/abs/1103.2841}, ) @inproceedings(Oliveira:2005:typecase, author = {Bruno C. d. S. Oliveira and Jeremy Gibbons}, year = {2005}, title = {TypeCase: A Design Pattern for Type-indexed Functions}, booktitle = {Proceedings of the 2005 ACM SIGPLAN Workshop on Haskell}, series = {Haskell '05}, publisher = {ACM}, address = {New York, NY, USA}, pages = {98--109}, doi = {10.1145/1088348.1088358}, ) @article(rodriguez:08:comparing-gp-libraries, author = {Alexey Rodriguez and Johan Jeuring and Patrik Jansson and Alex Gerdes and Oleg Kiselyov and Bruno C. d. S. Oliveira}, year = {2008}, title = {Comparing Libraries for Generic Programming in Haskell}, journal = {SIGPLAN Not.}, volume = {44}, number = {2}, pages = {111--122}, doi = {10.1145/1543134.1411301}, ) @article(swierstra:08:alacarte, author = {Wouter Swierstra}, year = {2008}, title = {Data types {\`a} la carte}, journal = {J. Funct. Program.}, volume = {18}, number = {4}, pages = {423--436}, doi = {10.1017/S0956796808006758}, ) @inproceedings(Wadler92theessence, author = {Philip Wadler}, year = {1992}, title = {The Essence of Functional Programming}, booktitle = {Proceedings of the 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, series = {POPL '92}, publisher = {ACM}, address = {New York, NY, USA}, pages = {1--14}, doi = {10.1145/143165.143169}, ) @misc(wadler:98:expression-problem, author = {Philip Wadler}, year = {1998}, title = {The expression problem}, howpublished = {Posted on the Java Genericity mailing list}, url = {http://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt}, ) @inproceedings(weirich:06:replib, author = {Stephanie Weirich}, year = {2006}, title = {RepLib: A Library for Derivable Type Classes}, booktitle = {Proceedings of the 2006 ACM SIGPLAN Workshop on Haskell}, series = {Haskell '06}, publisher = {ACM}, address = {New York, NY, USA}, pages = {1--12}, doi = {10.1145/1159842.1159844}, ) @inproceedings(modular-implicits, author = {Leo White and Fr{\'{e}}d{\'{e}}ric Bour and Jeremy Yallop}, year = {2014}, title = {Modular implicits}, booktitle = {Proceedings {ML} Family/OCaml Users and Developers workshops, ML/OCaml 2014, Gothenburg, Sweden, September 4-5, 2014.}, pages = {22--63}, doi = {10.4204/EPTCS.198.2}, ) @inproceedings(Yallop:2007:Deriving, author = {Jeremy Yallop}, year = {2007}, title = {Practical Generic Programming in OCaml}, booktitle = {Proceedings of the 2007 Workshop on Workshop on ML}, series = {ML '07}, publisher = {ACM}, address = {New York, NY, USA}, pages = {83--94}, doi = {10.1145/1292535.1292548}, ) @inproceedings(Yallop:2016:staging-generic-programming, author = {Jeremy Yallop}, year = {2016}, title = {Staging Generic Programming}, booktitle = {Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation}, series = {PEPM '16}, publisher = {ACM}, address = {New York, NY, USA}, pages = {85--96}, doi = {10.1145/2847538.2847546}, ) @inbook(higher-kinded-polymorphism, author = {Jeremy Yallop and Leo White}, year = {2014}, title = {Functional and Logic Programming: 12th International Symposium, FLOPS 2014, Kanazawa, Japan, June 4-6, 2014. Proceedings}, chapter = {Lightweight Higher-Kinded Polymorphism}, pages = {119--135}, publisher = {Springer International Publishing}, address = {Cham}, doi = {10.1007/978-3-319-07151-0\_8}, )