Lightweight Monadic Programming in ML
- đ¤ Speaker: Michael Hicks, University of Maryland
- đ Date & Time: Friday 01 July 2011, 14:00 - 15:00
- đ Venue: Room FW11, Computer Laboratory, William Gates Building
Abstract
Many useful programming constructions can be expressed as monads. Examples include probabilistic computations, time-varying expressions, parsers, and information flow tracking, not to mention effectful features like state and I/O. In this paper, we present a type-based rewriting algorithm to make programming with arbitrary monads as easy as using ML’s built-in support for state and I/O. Developers write programs using monadic values of type M t as if they were of type t, and our algorithm inserts the necessary binds, units, and monad-to-monad morphisms so that the program typechecks. Our algorithm is based on Jones’ qualified types and enjoys three useful properties:
- principal types, i.e., the rewriting we perform is the most general;
- coherence, i.e., thanks to the monad and morphism laws, all instances of the principal rewriting have the same semantics;
- decidability; i.e., the solver for generated constraints will always terminate.
Throughout the paper we present simple examples from the domains listed above. Our most complete example, which illustrates the expressive power of our system, proves that ML programs rewritten by our algorithm to use the information flow monad are equivalent to programs in FlowCaml, a domain-specific information flow tracking language.
This is joint work with Nataliya Guts (Maryland), Nikhil Swamy and Daan Leijen (MSR Redmond). A draft paper is available from http://www.cs.umd.edu/~mwh/papers/mwh.html.
Series This talk is part of the Logic and Semantics Seminar (Computer Laboratory) series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge talks
- Computing and Mathematics
- Department of Computer Science and Technology talks and seminars
- Interested Talks
- Logic and Semantics Seminar (Computer Laboratory)
- Martin's interesting talks
- Room FW11, Computer Laboratory, William Gates Building
- School of Technology
- tcw57âs list
- Trust & Technology Initiative - interesting events
- yk373's list
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)


Friday 01 July 2011, 14:00-15:00