Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Claessen, K.: Parallel Parsing Processes. Journal of Functional Programming 14(6), 741–757 (2004)
Diatchki, I.: Monadlib, http://www.galois.com/~diatchki/monadLib/
Gill, A.: Monad transformer library, http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl-1.1.0.2
Hinze, R.: Deriving backtracking monad transformers. In: ICFP, pp. 186–197 (2000)
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)
Hutton, G., Meijer, E.: Monadic Parsing in Haskell. Journal of Functional Programming 8(4), 437–444 (1998)
Jaskelioff, M.: Monatron, http://www.cs.nott.ac.uk/~mjj/monatron
Jaskelioff, M.: Modular monad transformers. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 64–79. Springer, Heidelberg (2009)
Jones, M.P.: First-class polymorphism with type inference. In: POPL, pp. 483–496. ACM Press, New York (1997)
Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: POPL, pp. 71–84 (1993)
Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: the Revised Report. Cambridge University Press, Cambridge (2003)
Mac Lane, S.: Categories for the Working Mathematician, 2nd edn. Graduate Texts in Mathematics, vol. 5. Springer, Heidelberg (1971)
Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: POPL, pp. 333–343 (1995)
Moggi, E.: Notions of computation and monads. Information and Computation 93(1), 55–92 (1991)
Stewart, D., Sjanssen, S.: Xmonad. In: Haskell Workshop, Freiburg, Germany, pp. 119–119. ACM, New York (2007)
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)
Wadler, P.: The essence of functional programming. In: POPL, pp. 1–14 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jaskelioff, M. (2011). Monatron: An Extensible Monad Transformer Library. In: Scholz, SB., Chitil, O. (eds) Implementation and Application of Functional Languages. IFL 2008. Lecture Notes in Computer Science, vol 5836. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24452-0_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-24452-0_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24451-3
Online ISBN: 978-3-642-24452-0
eBook Packages: Computer ScienceComputer Science (R0)