in M. Broy, editor, *Marktoberdorf Summer School on Program Design
Calculi*, Springer Verlag, NATO ASI Series F: Computer and systems
sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer,
-editors, *Advanced Functional Programming*, Springer Verlag, LNCS 925,
-1995. Some errata fixed August 2001. This paper has a great first
-line: *Shall I be pure, or impure?*...
+editors, *Advanced Functional Programming*, Springer Verlag,
+LNCS 925, 1995. Some errata fixed August 2001. This paper has a great first
+line: **Shall I be pure, or impure?**
<!-- The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or non-determinism. Three case studies are looked at in detail: how monads ease the modification of a simple evaluator; how monads act as the basis of a datatype of arrays subject to in-place update; and how monads can be used to build parsers.-->
* [Philip Wadler. The essence of functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps):