(to appear in ICFP 2011)
Date: 01 August 2011 Time: 12:00 - 13:30
Location: Stelios Orphanoudakis Seminar Room
Host: Polyvios Pratikakis
Many useful programming constructions can be expressed as monads. Examples include probabilistic modeling, functional reactive programming, parsing, and information flow tracking, not to mention effectful functionality like state and I/O. 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 τ as if they were of type τ, and our algorithm inserts the necessary binds, units, and monad-to-monad morphisms so that the program type checks. Coco is a prototype implementation of our approach for core ML. We will demonstrate how to take advantage of Coco to facilitate using monadic libraries in practice.
Nataliya Guts is a PostDoctoral researcher, working with Mike Hicks at the Programming Languages group of the University of Maryland. She obtained a PhD at the MSR-INRIA Joint Centre, and a License d'Informatique and Master's MPRI from the University Paris 6. Her research interests focus on typed programming languages and security.