Monadic Encapsulation of Effects: A Revised Approach (Extended Version) (1999)
Cached
Download Links
- [www.cs.indiana.edu]
- [www.disi.unige.it]
- [www.disi.unige.it]
- [www.disi.unige.it]
- [www.dcs.ed.ac.uk]
- [www.disi.unige.it]
- [www.disi.unige.it]
- DBLP
Other Repositories/Bibliography
| Venue: | Journal of Functional Programming |
| Citations: | 27 - 4 self |
BibTeX
@ARTICLE{Moggi99monadicencapsulation,
author = {E. Moggi and Amr Sabry},
title = {Monadic Encapsulation of Effects: A Revised Approach (Extended Version)},
journal = {Journal of Functional Programming},
year = {1999},
volume = {11},
pages = {2001}
}
Years of Citing Articles
OpenURL
Abstract
Launchbury and Peyton Jones came up with an ingenious idea for embedding regions of imperative programming in a pure functional language like Haskell. The key idea was based on a simple modification of Hindley-Milner's type system. Our first contribution is to propose a more natural encapsulation construct exploiting higher-order kinds, which achieves the same encapsulation effect, but avoids the ad hoc type parameter of the original proposal. The second contribution is a type safety result for encapsulation of strict state using both the original encapsulation construct and the newly introduced one. We establish this result in a more expressive context than the original proposal, namely in the context of the higher-order lambda-calculus. The third contribution is a type safety result for encapsulation of lazy state in the higher-order lambda-calculus. This result resolves an outstanding open problem on which previous proof attempts failed. In all cases, we formalize the intended implementations as simple big-step operational semantics on untyped terms, which capture interesting implementation details not captured by the reduction semantics proposed previously. 1







