Skip to main content
Article thumbnail
Location of Repository

Controlling Effects

By Andrzej Filinski


Many computational effects, such as exceptions, state, or nondeterminism, can be conveniently specified in terms of monads. We investigate a technique for uniformly adding arbitrary such effects to ML-like languages, without requiring any structural changes to the programs themselves. Instead, we use monadic reflection, a new language construct for explicitly converting back and forth between representations of effects as behavior and as data. Using monadic reflection to characterize concisely all effects expressible with a given monad, we can give a precise meaning to the notion of simulating one effect by another, more general one. We isolate a simple condition allowing such a simulation, and in particular show that any monadic effect can be simulated by a continuation monad. In other words, under relatively mild assumptions on the base language (allowing formation of a suitably large answer type), control becomes a universal effect. Concluding the development, we show that this universal effect can itsel

Topics: monads, continuations, computational e ects, monadic re ection, logical relations, Scheme, ML
Year: 1996
OAI identifier: oai:CiteSeerX.psu:
Provided by: CiteSeerX
Download PDF:
Sorry, we are unable to provide the full text but you may find it at the following location(s):
  • (external link)
  • (external link)
  • Suggested articles

    To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.