Monatron: An Extensible Monad Transformer Library

  • Mauro Jaskelioff
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5836)


Monads are pervasive in functional programming. In order to reap the benefits of their abstraction power, combinator libraries for monads are necessary. Monad transformers provide the basis for such libraries, and are based on a design that has proved to be successful. In this article, we show that this design has a number of shortcomings and provide a new design that builds on the strengths of the traditional design, but addresses its problems.


Combinator Library Correction Function Functional Programming Traditional Design Exception Handling 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Benton, N., Hughes, J., Moggi, E.: Monads and effects. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 42–122. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Claessen, K.: Parallel Parsing Processes. Journal of Functional Programming 14(6), 741–757 (2004)Google Scholar
  3. 3.
  4. 4.
  5. 5.
    Hinze, R.: Deriving backtracking monad transformers. In: ICFP, pp. 186–197 (2000)Google Scholar
  6. 6.
    Hughes, J.: The Design of a Pretty-printing Library. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 53–96. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  7. 7.
    Hutton, G., Meijer, E.: Monadic Parsing in Haskell. Journal of Functional Programming 8(4), 437–444 (1998)CrossRefzbMATHGoogle Scholar
  8. 8.
    Jaskelioff, M.: Monatron,
  9. 9.
    Jaskelioff, M.: Modular monad transformers. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 64–79. Springer, Heidelberg (2009)Google Scholar
  10. 10.
    Jones, M.P.: First-class polymorphism with type inference. In: POPL, pp. 483–496. ACM Press, New York (1997)CrossRefGoogle Scholar
  11. 11.
    Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: POPL, pp. 71–84 (1993)Google Scholar
  12. 12.
    Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: the Revised Report. Cambridge University Press, Cambridge (2003)Google Scholar
  13. 13.
    Mac Lane, S.: Categories for the Working Mathematician, 2nd edn. Graduate Texts in Mathematics, vol. 5. Springer, Heidelberg (1971)CrossRefzbMATHGoogle Scholar
  14. 14.
    Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: POPL, pp. 333–343 (1995)Google Scholar
  15. 15.
    Moggi, E.: Notions of computation and monads. Information and Computation 93(1), 55–92 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Stewart, D., Sjanssen, S.: Xmonad. In: Haskell Workshop, Freiburg, Germany, pp. 119–119. ACM, New York (2007)CrossRefGoogle Scholar
  17. 17.
    Voigtländer, J.: Asymptotic improvement of computations over free monads. In: Audebaud, P., Paulin-Mohring, C. (eds.) MPC 2008. LNCS, vol. 5133, pp. 388–403. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
    Wadler, P.: The essence of functional programming. In: POPL, pp. 1–14 (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Mauro Jaskelioff
    • 1
  1. 1.Functional Programming LaboratoryUniversity of NottinghamUnited Kingdom

Personalised recommendations