programming. Prentice Hall, 1988. 2. R.M. Burstall, D.B MacQueen, and D.T. Sanella. Hope: An experimental applica- tive language. In The 1980 LISP Conference, pages 136–143, Stanford, August 1980. 3. L. Damas and R. Milner. Principal type schemes for functional programs. In 9th Annual ACM Symposium on Principles of Programming languages, pages 207–212, Albuquerque, N.M., January 1982. 4. David Espinosa. Modular denotational semantics. Unpublished manuscript, De- cember 1993. 5. David Espinosa. Building interpreters by transforming stratified monads. Unpub- lished manuscript, June 1994. 6. R. Hindley. The principal type-scheme of an object in combinatory logic. Trans- actions of the American Mathematical Society, 146:29–60, December 1969. 7. P. Hudak, S. Peyton Jones, and P. Wadler (editors). Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.2). ACM SIGPLAN Notices, 27(5), May 1992. 8. Geraint Jones and Jeremy Gibbons. Linear-time breadth-first tree algorithms, an exercise in the arithmetic of folds and zips. Programming Research Group, Oxford, December 1992. 9. Mark P. Jones. Computing with lattices: An application of type classes. Journal of Functional Programming, 2(4), October 1992. 10. Mark P. Jones. A system of constructor classes: overloading and implicit higher- order polymorphism. In FPCA ’93: Conference on Functional Programming Lan- guages and Computer Architecture, Copenhagen, Denmark, New York, June 1993. ACM Press. 11. Mark P. Jones. Dictionary-free overloading by partial evaluation. In ACM SIG- PLAN Workshop on Partial Evaluation and Semantics-Based Program Manipula- tion, Orlando, Florida, June 1994. To appear. 12. Mark P. Jones. The implementation of the Gofer functional programming system. Research Report YALEU/DCS/RR-1030, Yale University, New Haven, Connecti- cut, USA, May 1994. 13. M.P. Jones and L. Duponcheel. Composing monads. Research Report YALEU/DCS/RR-1004, Yale University, New Haven, Connecticut, USA, Decem- ber 1993. 14. D.J. King and P. Wadler. Combining monads. In Proceedings of the Fifth Annual Glasgow Workshop on Functional Programming, Ayr, Scotland, 1992. Springer Ver- lag Workshops in Computer Science. 15. Sheng Liang, Paul Hudak, and Mark Jones. Monad transformers and modular interpreters. In Conference record of POPL ’95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA, January 1995. 16. S. MacLane. Categories for the working mathematician. Graduate texts in math- ematics, 5. Springer-Verlag, 1971. 17. Erik Meijer, Maarten Fokkinga, and Ross Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. In 5th ACM conference on Functional Programming Languages and Computer Architecture, pages 124–144, New York, 1991. Springer-Verlag. Lecture Notes in Computer Science, 523.