@inproceedings(DBLP:conf/popl/ChakravartyKJM05, author = {Manuel M. T. Chakravarty and Gabriele Keller and Simon L. Peyton Jones and Simon Marlow}, year = {2005}, title = {Associated types with class}, editor = {Jens Palsberg and Mart{\'{\i}}n Abadi}, booktitle = {Proceedings of the 32nd {ACM} {SIGPLAN-SIGACT} Symposium on Principles of Programming Languages, {POPL} 2005, Long Beach, California, USA, January 12-14, 2005}, publisher = {{ACM}}, pages = {1--13}, doi = {10.1145/1040305.1040306}, url = {http://dl.acm.org/citation.cfm?id=1040305}, ) @misc(conf/oud/ChambartH12, author = {Pierre Chambart and Gr{\'e}goire Henry}, year = {2012}, title = {Experiments in Generic Programming}, howpublished = {OCaml Users and Developers Workshop}, ) @inproceedings(DBLP:conf/icfp/DevrieseP11, author = {Dominique Devriese and Frank Piessens}, year = {2011}, title = {On the bright side of type classes: instance arguments in Agda}, editor = {Manuel M. T. Chakravarty and Zhenjiang Hu and Olivier Danvy}, booktitle = {Proceeding of the 16th {ACM} {SIGPLAN} international conference on Functional Programming, {ICFP} 2011, Tokyo, Japan, September 19-21, 2011}, publisher = {{ACM}}, pages = {143--155}, doi = {10.1145/2034773.2034796}, ) @unpublished(dijkstra_et_al_scoped_instances_07, author = {Atze Dijkstra and Gerrit van den Geest and Bastiaan Heeren and S. Doaitse Swierstra}, year = {2007}, title = {Modelling Scoped Instances with Constraint Handling Rules}, ) @inproceedings(DBLP:conf/popl/DreyerHCK07, author = {Derek Dreyer and Robert Harper and Manuel M. T. Chakravarty and Gabriele Keller}, year = {2007}, title = {Modular type classes}, editor = {Martin Hofmann and Matthias Felleisen}, booktitle = {Proceedings of the 34th {ACM} {SIGPLAN-SIGACT} Symposium on Principles of Programming Languages, {POPL} 2007, Nice, France, January 17-19, 2007}, publisher = {{ACM}}, pages = {63--70}, doi = {10.1145/1190216.1190229}, url = {http://dl.acm.org/citation.cfm?id=1190216}, ) @misc(module-aliases, author = {Jacques Garrigue and Leo White}, year = {2014}, title = {Type-level module aliases: independent and equal}, howpublished = {ML Family Workshop}, ) @inproceedings(DBLP:conf/oopsla/GregorJSSRL06, author = {Douglas Gregor and Jaakko J{\"{a}}rvi and Jeremy G. Siek and Bjarne Stroustrup and Gabriel Dos Reis and Andrew Lumsdaine}, year = {2006}, title = {Concepts: linguistic support for generic programming in {C++}}, editor = {Peri L. Tarr and William R. Cook}, booktitle = {Proceedings of the 21th Annual {ACM} {SIGPLAN} Conference on Object-Oriented Programming, Systems, Languages, and Applications, {OOPSLA} 2006, October 22-26, 2006, Portland, Oregon, {USA}}, publisher = {{ACM}}, pages = {291--310}, doi = {10.1145/1167473.1167499}, ) @article(DBLP:journals/jfp/Jones95, author = {Mark P. Jones}, year = {1995}, title = {A System of Constructor Classes: Overloading and Implicit Higher-Order Polymorphism}, journal = {J. Funct. Program.}, volume = {5}, number = {1}, pages = {1--35}, doi = {10.1017/S0956796800001210}, ) @book(Haskell98, editor = {Simon Peyton Jones}, year = {2002}, title = {Haskell 98 Language and Libraries: The Revised Report}, publisher = {http://haskell.org/}, url = {http://haskell.org/definition/haskell98-report.pdf}, ) @inproceedings(jones1997type, author = {Simon Peyton Jones and Mark Jones and Erik Meijer}, year = {1997}, title = {Type classes: exploring the design space}, booktitle = {Haskell workshop}, volume = {1997}, ) @inproceedings(DBLP:conf/esop/Kaes88, author = {Stefan Kaes}, year = {1988}, title = {Parametric Overloading in Polymorphic Programming Languages}, editor = {Harald Ganzinger}, booktitle = {{ESOP} '88, 2nd European Symposium on Programming, Nancy, France, March 21-24, 1988, Proceedings}, series = {Lecture Notes in Computer Science}, volume = {300}, publisher = {Springer}, pages = {131--144}, doi = {10.1007/3-540-19027-9\_9}, ) @article(Lammel:2003:SYB:640136.604179, author = {Ralf L\"{a}mmel and Simon Peyton Jones}, year = {2003}, title = {Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming}, journal = {SIGPLAN Not.}, volume = {38}, number = {3}, pages = {26--37}, doi = {10.1145/640136.604179}, ) @techreport(leroy:hal-00930213, author = {Xavier Leroy and Damien Doligez and Alain Frisch and Jacques Garrigue and Didier R{\'e}my and J{\'e}r{\^o}me Vouillon}, year = {2014}, title = {{The OCaml system release 4.02: Documentation and user's manual}}, type = {Interne}, institution = {{Inria}}, url = {https://hal.inria.fr/hal-00930213}, ) @incollection(canonical-structures, author = {Assia Mahboubi and Enrico Tassi}, year = {2013}, title = {Canonical Structures for the Working Coq User}, editor = {Sandrine Blazy and Paulin-Mohring, Christine and David Pichardie}, booktitle = {Interactive Theorem Proving}, series = {Lecture Notes in Computer Science}, volume = {7998}, publisher = {Springer Berlin Heidelberg}, pages = {19--34}, doi = {10.1007/978-3-642-39634-2\_5}, ) @misc(rust, title = {The Rust programming language}, howpublished = {\url{http://www.rust-lang.org}}, ) @inproceedings(DBLP:conf/oopsla/OliveiraMO10, author = {Bruno C. d. S. Oliveira and Adriaan Moors and Martin Odersky}, year = {2010}, title = {Type classes as objects and implicits}, editor = {William R. Cook and Siobh{\'{a}}n Clarke and Martin C. Rinard}, booktitle = {Proceedings of the 25th Annual {ACM} {SIGPLAN} Conference on Object-Oriented Programming, Systems, Languages, and Applications, {OOPSLA} 2010, October 17-21, 2010, Reno/Tahoe, Nevada, {USA}}, publisher = {{ACM}}, pages = {341--360}, doi = {10.1145/1869459.1869489}, ) @inproceedings(DBLP:conf/pldi/OliveiraSCLY12, author = {Bruno C. d. S. Oliveira and Tom Schrijvers and Wontae Choi and Wonchan Lee and Kwangkeun Yi}, year = {2012}, title = {The implicit calculus: a new foundation for generic programming}, editor = {Jan Vitek and Haibo Lin and Frank Tip}, booktitle = {{ACM} {SIGPLAN} Conference on Programming Language Design and Implementation, {PLDI} '12, Beijing, China - June 11 - 16, 2012}, publisher = {{ACM}}, pages = {35--44}, doi = {10.1145/2254064.2254070}, url = {http://dl.acm.org/citation.cfm?id=2254064}, ) @inproceedings(DBLP:conf/tphol/SozeauO08, author = {Matthieu Sozeau and Nicolas Oury}, year = {2008}, title = {First-Class Type Classes}, editor = {Otmane A{\"{\i}}t Mohamed and Mu{\~{n}}oz, C{\'{e}}sar A. and Sofi{\`{e}}ne Tahar}, booktitle = {Theorem Proving in Higher Order Logics, 21st International Conference, TPHOLs 2008, Montreal, Canada, August 18-21, 2008. Proceedings}, series = {Lecture Notes in Computer Science}, volume = {5170}, publisher = {Springer}, pages = {278--293}, doi = {10.1007/978-3-540-71067-7\_23}, ) @misc(syme2005f, author = {Don Syme and Luke Hoban and Tao Liu and Dmitry Lomov and James Margetson and Brian McNamara and Joe Pamer and Penny Orwick and Daniel Quirk and Chris Smith}, year = {2005}, title = {The F\# 3.0 Language Specification}, ) @inproceedings(DBLP:conf/popl/WadlerB89, author = {Philip Wadler and Stephen Blott}, year = {1989}, title = {How to Make ad-hoc Polymorphism Less ad-hoc}, booktitle = {Conference Record of the Sixteenth Annual {ACM} Symposium on Principles of Programming Languages, Austin, Texas, USA, January 11-13, 1989}, publisher = {{ACM} Press}, pages = {60--76}, doi = {10.1145/75277.75283}, url = {http://dl.acm.org/citation.cfm?id=75277}, ) @inproceedings(DBLP:conf/aplas/WehrC08, author = {Stefan Wehr and Manuel M. T. Chakravarty}, year = {2008}, title = {{ML} Modules and Haskell Type Classes: {A} Constructive Comparison}, editor = {G. Ramalingam}, booktitle = {Programming Languages and Systems, 6th Asian Symposium, {APLAS} 2008, Bangalore, India, December 9-11, 2008. Proceedings}, series = {Lecture Notes in Computer Science}, volume = {5356}, publisher = {Springer}, pages = {188--204}, doi = {10.1007/978-3-540-89330-1\_14}, ) @inproceedings(DBLP:conf/flops/YallopW14, author = {Jeremy Yallop and Leo White}, year = {2014}, title = {Lightweight Higher-Kinded Polymorphism}, editor = {Michael Codish and Eijiro Sumii}, booktitle = {Functional and Logic Programming - 12th International Symposium, {FLOPS} 2014, Kanazawa, Japan, June 4-6, 2014. Proceedings}, series = {Lecture Notes in Computer Science}, volume = {8475}, publisher = {Springer}, pages = {119--135}, doi = {10.1007/978-3-319-07151-0\_8}, )