POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monads and composable continuations
Lisp and Symbolic Computation
The type and effect discipline
Information and Computation
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple imperative polymorphism
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
Taming effects with monadic typing
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Science of Computer Programming - Special issue on mathematics of program construction
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Environments, Continuation Semantics and Indexed Categories
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Closed Freyd- and kappa-categories
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
Notions of Computation Determine Monads
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Optimizing ML Using a Hierarchy of Monadic Types
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Using category theory to design implicit conversions and generic operators
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Premonoidal categories and notions of computation
Mathematical Structures in Computer Science
Access control in a core calculus of dependency
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Combining effects: sum and tensor
Theoretical Computer Science - Clifford lectures and the mathematical foundations of programming semantics
Contextual effects for version-consistent dynamic software updating and safe concurrent programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A generic type-and-effect system
Proceedings of the 4th international workshop on Types in language design and implementation
Parameterised notions of computation
Journal of Functional Programming
Categorical semantics for arrows
Journal of Functional Programming
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric effect monads and semantics of effect systems
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Effects are fundamental to programming languages. Even the lambda calculus has effects, and consequently the two famous evaluation strategies produce different semantics. As such, much research has been done to improve our understanding of effects. Since Moggi introduced monads for his computational lambda calculus, further generalizations have been designed to formalize increasingly complex computational effects, such as indexed monads followed by layered monads followed by parameterized monads. This succession prompted us to determine the most general formalization possible. In searching for this formalization we came across many surprises, such as the insufficiencies of arrows, as well as many unexpected insights, such as the importance of considering an effect as a small component of a whole system rather than just an isolated feature. In this paper we present our semantic formalization for producer effect systems, which we call a productor, and prove its maximal generality by focusing on only sequential composition of effectful computations, consequently guaranteeing that the existing monadic techniques are specializations of productors.