Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Notions of computation and monads
Information and Computation
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Notions of Computation Determine Monads
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Possible World Semantics for General Storage in Call-By-Value
CSL '02 Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
A Fully Abstract Game Semantics of Local Exceptions
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Modelling environments in call-by-value programming languages
Information and Computation
Journal of Functional Programming
Call-By-Push-Value: A Functional/Imperative Synthesis (Semantics Structures in Computation, V. 2)
Call-By-Push-Value: A Functional/Imperative Synthesis (Semantics Structures in Computation, V. 2)
Combining effects: sum and tensor
Theoretical Computer Science - Clifford lectures and the mathematical foundations of programming semantics
Combining algebraic effects with continuations
Theoretical Computer Science
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
In this paper, we look at two categorical accounts of computational effects (strong monad as a model of the monadic metalanguage, adjunction as a model of call-by-push-value with stacks), and we adapt them to incorporate global exceptions. In each case, we extend the calculus with a construct, due to Benton and Kennedy, that fuses exception handling with sequencing. This immediately gives us an equational theory, simply by adapting the equations for sequencing. We study the categorical semantics of the two equational theories. In the case of the monadic metalanguage, we see that a monad supporting exceptions is a coalgebra for a certain comonad. We further show, using Beck's theorem, that, on a category with equalizers, the monad constructor for exceptions gives all such monads. In the case of call-by-push-value (CBPV) with stacks, we generalize the notion of CBPV adjunction so that a stack awaiting a value can deal both with a value being returned, and with an exception being raised. We see how to obtain a model of exceptions from a CBPV adjunction, and vice versa by restricting to those stacks that are homomorphic with respect to exception raising.