# Research papers/Generics

From HaskellWiki

## Contents

## Overview

- Comparing Approaches to Generic Programming in Haskell
- Ralf Hinze, Johan Jeuring, and Andres Löh. To appear in Roland Backhouse, Jeremy Gibbons, Ralf Hinze, and Johan Jeuring, editors, Lecture notes of the Spring School on Datatype-Generic Programming 2006, © Springer-Verlag.

- Comparing Libraries for Generic Programming in Haskell
- Alexey Rodriguez Yakushev, Johan Jeuring, Patrik Jansson, Alex Gerdes, Oleg Kiselyov, Bruno C. d. S. Oliviera. In Andy Gill, editor, Proceedings of the ACM SIGPLAN Haskell Symposium 2008, pages 111-122, and available as an extended version: Technical report Utrecht University UU-CS-2008-010, 2008.

- Generic programming with C++ concepts and Haskell type classes - a comparison
- Jean-Philippe Bernardy, Patrik Jansson, Marcin Zalewski, and Sibylle Schupp. JFP, 2010. In press. An earlier and shorter version was published in Proc. ACM SIGPLAN Workshop on Generic Programming (WGP), pages 37-48. ACM, 2008 as [A comparison of C++ concepts and Haskell type classes -> http://doi.acm.org/10.1145/1411318.1411324]

- Generic Programming -- An Introduction
- Roland Backhouse, Patrik Jansson, Johan Jeuring and Lambert Meertens. Advanced Functional Programming (S. Doaitse Swierstra, editor), LNCS 1608, pp. 28-115, 1999.

- PolyLib - a polytypic function library
- Patrik Jansson and Johan Jeuring. Workshop on Generic Programming, Marstrand, June 1998.

- Polytypic programming
- J. Jeuring and P. Jansson. In J. Launchbury et al., editors, Advanced Functional Programming '96, volume 1129 of LNCS, pages 68-114. Springer-Verlag, 1996.

## Scrap your boilerplate!

- Scrap your boilerplate: a practical approach to generic programming
- Ralf Laemmel and Simon Peyton Jones, Proc ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2003), New Orleans, pp26-37, Jan 2003.

- Scrap more boilerplate: reflection, zips, and generalised casts
- Ralf Laemmel and Simon Peyton Jones. appeared in Proceedings of ICFP 2004, ACM Press

- Scrap your boilerplate with class: extensible generic functions
- Ralf Laemmel and Simon Peyton Jones. appeared in Proceedings of ICFP 2005, ACM Press

- "Scrap Your Boilerplate" Reloaded
- Ralf Hinze, Andres Löh and Bruno C. d. S. Oliveira. In Philip Wadler and Masimi Hagiya, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), 24-26 April 2006, Fuji Susono, Japan.

- RecLib - A Recursion and Traversal Library for Haskell (Or: Scrap Your Boilerplate Systematically)
- Deling Ren and Martin Erwig, Haskell Workshop 2006

- Uniplate - Uniform Boilerplate and List Processing
- Neil Mitchell and Colin Runciman, Haskell Workshop 2007

## Generic Haskell

- Generic Haskell: Applications
- Ralf Hinze and Johan Jeuring. Technical Report UU-CS-2003-16, Department of Computer Science, Utrecht University, 2003.

- Generic Haskell: a language for generic programming
- Johan Jeuring et al

- Generic Haskell: Practice and theory
- R Hinze, J Jeuring - lecture notes of the Summer School on Generic Programming, 2002 - Springer

- Generic views on data types
- Stefan Holdermans, Johan Jeuring, Andres Löh, and Alexey Rodriquez. In Tarmo Uustalu, editor, Mathemetics of Program Construction, 8th International Conference, MPC 2006, Kuressaare, Estonia, July 3—5, 2006, Proceedings, volume 4014 of Lecture Notes in Computer Science, pages 209—234. Springer-Verlag, 2006.

- Inferring type isomorphisms generically
- Frank Atanassow and Johan Jeuring. In Proc. Mathematics of Program Construction (MPC) 2004.

### Applications of Generic Haskell

- Scripting XML with Generic Haskell
- Frank Atanassow, Dave Clarke and Johan Jeuring. In Proc. 7th Brazilian Symposium on Programming Languages (SBLP) 2003.

- UUXML: A Type-Preserving XML SchemaHaskell Data Binding
- Frank Atanassow, Dave Clarke and Johan Jeuring. In Proc. Practical Aspects of Declarative Languages (PADL) 2004.

## Testing

- Testing properties of generic functions
- Patrik Jansson, Johan Jeuring, and students of the Utrecht University Generic Programming class. In Zoltan Horvath, editor, Proceedings of IFL 2006, volume 4449 of LNCS, pages 217-234. Springer-Verlag, 2007.

- Testing polymorphic properties
- Jean-Philippe Bernardy, Patrik Jansson, and Koen Claessen. In Proceedings of ESOP 2010, volume 6012 of LNCS. Springer, 2010.

## DSL / applications / C++

- Generic libraries in C++ with concepts from high-level domain descriptions in Haskell: A DSL for computational vulnerability assessment.
- Daniel Lincke, Patrik Jansson, Marcin Zalewski, and Cezar Ionescu. In IFIP Working Conf. on Domain Specific Languages, volume 5658/2009 of LNCS, pages 236{261, 2009.

- Polytypic data conversion programs
- Patrik Jansson and Johan Jeuring. Science of Computer Programming, 43(1):35-75, 2002. An earlier version was published as "Polytypic compact printing and parsing" in Doaitse Swierstra, editor, ESOP'99: European Symposium on Programming, volume 1576 of LNCS, pages 273-287. Springer-Verlag, 1999.

- A framework for polytypic programming on terms, with an application to rewriting
- Patrik Jansson and Johan Jeuring. In Workshop on Generic Programming. Utrecht University, 2000. UU-CS-2000-19.

- Functional pearl: Polytypic unification
- Patrik Jansson and Johan Jeuring. J. Funct. Program., 8(5):527-536, 1998.

## Theory, cata, etc.

- Parametricity and dependent types
- Jean-Philippe Bernardy, Patrik Jansson, and Ross Paterson. In Proceedings of ICFP 2010, pages 345-356, Baltimore, Maryland, 2010. ACM.

- Algebra of programming in Agda: dependent types for relational program derivation
- Shin-Cheng Mu, Hsiang-Shang Ko, and Patrik Jansson. J. Funct. Program., 19:545-579, 2009. Earlier version published as "Algebra of programming using dependent types" in Mathematics of Program Construction, volume 5133/2008 of LNCS, pages 268-283. Springer-Verlag, 2008.

- Universes for generic programs and proofs in dependent type theory
- Marcin Benke, Peter Dybjer, and Patrik Jansson. Nordic Journal of Computing, 10(4)
- 265{289, 2003.

- PolyP - a polytypic programming language extension
- P. Jansson and J. Jeuring. In Proc. POPL'97: Principles of Programming Languages, pages 470-482. ACM Press, 1997.

## Other

- Prototyping generic programming in Template Haskell
- Ulf Norell and Patrik Jansson. In Dexter Kozen, editor, Mathematics of Program Construction, volume 3125 of LNCS, pages 314-333. Springer-Verlag, 2004.

- Polytypic programming in Haskell
- Ulf Norell and Patrik Jansson. In Phil Trinder, Greg Michaelson, and Ricardo Peña, editors, Implementation of Functional Languages 2003, 15th International Workshop, volume 3145 of LNCS, pages 168-184. Springer-Verlag, 2004.

- Functional Polytypic Programming
- Patrik Jansson. PhD thesis, Computing Science, Chalmers University of Technology and Göteborg University, Sweden, May 2000.

- Generics for the masses
- Ralf Hinze. In Kathleen Fisher, editor, Proceedings of the 2004 International Conference on Functional Programming, Snowbird, Utah, September 19-22, 2004.

- A Lightweight Implementation of Generics and Dynamics
- James Cheney and Ralf Hinze. In Manuel Chakravarty, editor, Proceedings of the ACM SIGPLAN 2002 Haskell Workshop, Pittsburgh, PA, USA, October 3, 2002, pp 90-104.

- Type-indexed data types
- Ralf Hinze, Johan Jeuring, Andres Löh. In Eerke Boiten, Bernhard Möller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002. Lecture Notes in Computer Science 2386, pp. 148-174.

- Memo functions, polytypically!
- Ralf Hinze. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000.

- Efficient Generalized Folds
- Ralf Hinze. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000.

- Polytypic values possess polykinded types
- Ralf Hinze. In Roland Backhouse, J.N. Oliveira, editors, Proceedings of the Fifth International Conference on Mathematics of Program Construction (MPC 2000), Ponte de Lima, Portugal, July 3-5, 2000.

- A New Approach to Generic Functional Programming
- Ralf Hinze. In Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, January 19-21, 2000.

- Polytypic Programming with Ease
- Ralf Hinze. In 4th Fuji International Symposium on Functional and Logic Programming (FLOPS'99), Tsukuba, Japan, November 1999, pp. 21-36. Lecture Notes in Computer Science 1722.

- A Generic Programming Extension for Haskell
- Ralf Hinze. In Erik Meijer, editor, Proceedings of the Third Haskell Workshop, Paris, France, September 1999. The proceedings appear as a technical report of Universiteit Utrecht, UU-CS-1999-28.

- Polytypic Functions Over Nested Datatypes
- Ralf Hinze. In Rafael Dueire Lins, editor, 3rd Latin-American Conference on Functional Programming (CLaPF'99), March 1999.

- Generic Programs and Proofs
- Ralf Hinze. Habilitationsschrift, Universitt Bonn, October 2000.

- Type-indexed data types
- Ralf Hinze, Johan Jeuring, and Andres Löh. Technical Report UU-CS-2002-11, Department of Computer Science, Utrecht University, 2002.

- Combining generics and dynamics
- Peter Achten and Ralf Hinze. Technical Report NIII-R0206, Nijmegen Institute for Computing and Information Sciences, University of Nijmegen, July 2002.

- Programmable rewriting strategies in Haskell
- Ralf Lämmel, Invited paper, Proceedings of WRS 2004 13 pages To appear in ENTCS, 2004

- A Strafunski Application Letter
- Ralf Lämmel and Joost Visser, Proc. of Practical Aspects of Declarative Programming (PADL'03), LNCS 2562, 2003, 357--375.

- Dealing with Large Bananas
- Ralf Lämmel and Joost Visser and Jan Kort, 46--59, WGP00 Proceedings of WGP'2000, Technical Report, Universiteit Utrecht

- Strategic polymorphism requires just two combinators!
- Ralf Lämmel and Joost Visser, arXiv, cs.PL/0212048, 2002

- Type-safe Functional Strategies
- Ralf Lämmel and Joost Visser, draft proceedings of SFP'00, St Andrews, 2000.

- TypeCase: A Design Pattern for Type-Indexed Functions
- Bruno C. d. S. Oliveira and Jeremy Gibbons (2005). Haskell Workshop, September 2005.

- Design Patterns as Higher-Order Datatype-Generic Programs
- Jeremy Gibbons (2006). Submitted for publication.

- Functor Pulling
- Lambert Meertens. Proceedings of the International Workshop on Generic Programming (WGP'98), Marstrand, Sweden, June 1998.

- Calculemus Igitur!
- Lambert Meertens, Presented at The Fun of Programming, a Symposium in honour of Richard Bird's 60th birthday

- Calculate Polytypically!
- Lambert Meertens, Programming Languages: Implementations Logics, and Programs, Proceedings PLILP '96 (Herbert Kuchen and S. Doaitse Swierstra, editors), LNCS 1140, pp. 1--16, 1996.

- Category Theory for Program Construction
- Lambert Meertens, Lecture Notes for ESSLLI '95, Barcelona, Catalunya.

- RepLib: A Library for Derivable Type Classes
- Stephanie Weirich. Haskell Workshop, Portland, OR, USA, September 2006.

- Type-safe Runtime Polytypic Programming
- Stephanie Weirich. To appear in Journal of Functional Programming, 2006.

- Parametric datatype-genericity
- Jeremy Gibbons and Ross Paterson. Submitted for publication.