Moggi’s Computational Monads and Power et al ’s equivalent notion of Freyd category have captured a large range of computational effects present in programming languages such as exceptions, side-effects, input/output and continuations. We present generalisations of both constructs, which we call parameterised monads and parameterised Freyd categories, that also capture computational effects with parameters. Examples of such are composable continuations, side-effects where the type of the state varies and input/output where the range of inputs and outputs varies. By also considering monoidal parameterisation, we extend the range of effects to cover separated side-effects and multiple independent streams of I/O.We also present two typed λ-calculi that soundly and completely model our categorical definitions — with and without monoidal parameterisation—and act as prototypical languages with parameterised effects.
Content
Author and article information
Contributors
Robert Atkey
Conference
Publication date:
July
2006
Publication date
(Print):
July
2006
Pages: 1-15
Affiliations
[0001]Laboratory for Foundations of Computer Science, School of Informatics, University
of Edinburgh
Mayfield Road, Edinburgh EH9 3JZ, UK