BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Lightweight Monadic Programming in ML - Michael Hicks\, University
  of Maryland
DTSTART:20110701T130000Z
DTEND:20110701T140000Z
UID:TALK31497@talks.cam.ac.uk
CONTACT:Bjarki Holm
DESCRIPTION:Many useful programming constructions can be expressed as mona
 ds. Examples include probabilistic computations\, time-varying expressions
 \, parsers\, and information flow tracking\, not to mention effectful feat
 ures 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 monad
 ic values of type M t as if they were of type t\, and our algorithm insert
 s the necessary binds\, units\, and monad-to-monad morphisms so that the p
 rogram typechecks. Our algorithm is based on Jones' qualified types and en
 joys three useful properties: \n\n# principal types\, i.e.\, the rewriting
  we perform is the most general\; \n# coherence\, i.e.\, thanks to the mon
 ad and morphism laws\, all instances of the principal rewriting have the s
 ame semantics\; \n# decidability\; i.e.\, the solver for generated constra
 ints will always terminate. \n\nThroughout the paper we present simple exa
 mples from the domains listed above. Our most complete example\, which ill
 ustrates the expressive power of our system\, proves that ML programs rewr
 itten by our algorithm to use the information flow monad are equivalent to
  programs in FlowCaml\, a domain-specific information flow tracking langua
 ge.\n\nThis 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.
LOCATION:Room FW11\, Computer Laboratory\, William Gates Building
END:VEVENT
END:VCALENDAR
