I know, I know, the world does not need yet another introduction to monads (or yet another article complaining that world does not need yet another introduction to monads). So you’ll be glad to know this isn’t one of those, in the sense that it’s not new
Elegant, instructive examples of functional programming. Supposed to be fun, and teach important programming techniques and fundamental design principles. Traditionally appear in Journal of Functional Programming, and at ICFP and affiliated workshops.
E. Meijer, and J. Jeuring. Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text, page 228--266. London, UK, UK, Springer-Verlag, (1995)