1. Jon Bentley (1984): Programming Pearls: Algorithm Design Techniques. Communications of the ACM 27(9), pp. 865–873, doi:10.1145/358234.381162.
  2. Jon Bentley (1986): Programming Pearls. Addison-Wesley.
  3. Richard Bird, Oege de Moor & Paul Hoogendijk (1996): Generic Functional Programming with Types and Relations. Journal of Functional Programming 6(1), pp. 1–28, doi:10.1017/S0956796800001556.
  4. Richard S. Bird (1987): An Introduction to the Theory of Lists. In: Manfred Broy: Logic of Programming and Calculi of Discrete Design. Springer-Verlag, pp. 3–42. Available at NATO ASI Series F Volume 36.
  5. Richard S. Bird (1988): Lectures on Constructive Functional Programming. In: Manfred Broy: Constructive Methods in Computer Science. Springer-Verlag, pp. 151–218. Available at NATO ASI Series F Volume 55.
  6. Richard S. Bird (1989): Algebraic Identities for Program Calculation. Computer Journal 32(2), pp. 122–126, doi:10.1093/comjnl/32.2.122.
  7. Richard S. Bird (1998): Introduction to Functional Programming Using Haskell. Prentice-Hall.
  8. Richard S. Bird & Oege de Moor (1996): Algebra of Programming. International Series in Computer Science. Prentice-Hall.
  9. E. F. Codd (1970): A Relational Model of Data for Large Shared Data Banks. Communications of the ACM 13, pp. 377–387, doi:10.1145/362384.362685.
  10. Jeremy Gibbons (1998): Polytypic Downwards Accumulations. In: Johan Jeuring: Proceedings of Mathematics of Program Construction, Lecture Notes in Computer Science 1422. Springer-Verlag, Marstrand, Sweden, pp. 207–233, doi:10.1007/BFb0054292. Available at
  11. Jeremy Gibbons (2000): Generic Downwards Accumulations. Science of Computer Programming 37, pp. 37–65, doi:10.1016/S0167-6423(99)00022-2. Available at
  12. Jeremy Gibbons (2003): Origami Programming. In: Gibbons & de Moor, pp. 41–60. Available at
  13. Jeremy Gibbons & Oege de Moor (2003): The Fun of Programming. Cornerstones in Computing. Palgrave. ISBN 1-4039-0772-2.
  14. Jeremy Gibbons & Bruno César dos Santos Oliveira (2009): The Essence of the Iterator Pattern. Journal of Functional Programming 19(3,4), pp. 377–402, doi:10.1017/S0956796809007291. Available at
  15. Paul Hudak (1996): Building Domain-Specific Embedded Languages. ACM Computing Surveys 28, doi:10.1145/242224.242477.
  16. John Hughes (1995): The Design of a Pretty-Printing Library. In: Johan Jeuring & Erik Meijer: Advanced Functional Programming, Lecture Notes in Computer Science 925. Springer-Verlag, pp. 53–96, doi:10.1007/3-540-59451-5_3. Lecture notes from the First International Spring School on Advanced Functional Programming Techniques, Båstad, Sweden.
  17. S. Kazem Lellahi & Val Tannen (1997): A Calculus for Collections and Aggregates. In: Eugenio Moggi & Giuseppe Rosolini: Category Theory and Computer Science, Lecture Notes in Computer Science 1290. Springer, pp. 261–280, doi:10.1007/BFb0026993.
  18. Conor McBride & Ross Paterson (2008): Applicative Programming with Effects. Journal of Functional Programming 18(1), pp. 1–13, doi:10.1017/S0956796807006326.
  19. Lambert Meertens (1992): Paramorphisms. Formal Aspects of Computing 4(5), pp. 413–424, doi:10.1007/BF01211391. Available at
  20. Erik Meijer, Maarten Fokkinga & Ross Paterson (1991): Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. In: John Hughes: Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science 523. Springer-Verlag, pp. 124–144, doi:10.1007/3540543961_7.
  21. Ross Paterson (2005): Data.Foldable library for Haskell. Available at
  22. Simon Peyton Jones (2003): The Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, doi:10.1017/S0956796803000315. Available at
  23. Ondřej Rypáček (2010): Labelling Polynomial Functors: A Coherent Approach. Available at Manuscript.
  24. Philip Wadler (2003): A Prettier Printer. In: Gibbons & de Moor, pp. 223–243. Available at ISBN 1-4039-0772-2.

Comments and questions to:
For website issues: