July 2006
Workshop on Mathematically Structured Functional Programming (MSFP 2006) (MSFP)
Mathematically Structured Functional Programming
2 July 2006
Freyd Categories, Computational Monads, Computational Effects
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.
This work is licensed under a Creative Commons Attribution 4.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/