Tag. effects
References (41)
Yarrow: Reconciling Effect Handlers and Region-Based Memory Management mathiasen-2026-yarrow
Iris-WasmFX: Modular Reasoning for Wasm Stack Switching legoupil-2026-iris
Syntax and semantics of focalisation with relative monads and comonads mangel-2026-syntax
Modular models of monoids with operations by lifting functors along fibrations yang-2026-modular
An Equational Axiomatization of Dynamic Threads via Algebraic Effects: Presheaves on Finite Relations, Labelled Posets, and Parameterized Algebraic Theories kammar-2026-an
Classical Notions of Computation and the Hasegawa-Thielecke Theorem mangel-2026-classical
Handling Higher-Order Effectful Operations with Judgemental Monadic Laws yang-2026-handling
Linear Effects, Exceptions, and Resource Safety: A Curry-Howard Correspondence for Destructors congard-2026-linear
Context-Dependent Effects and Concurrency in Guarded Interaction Trees stepanenko-2025-context
Scoped Effects, Scoped Operations, and Parameterized Algebraic Theories matache-2025-scoped
The Compositional Essence of Effectful Cost Analyses: Categorical Foundations and Fibered Logical Relations amorim_effcost
Separated and Shared Effects in Higher-Order Languages amorim_hsu_independent
Two-sorted algebraic decompositions of Brookes’s shared-state denotational semantics dvir-2025-two
Notions of Stack-manipulating Computation and Relative Monads jiang_xue_new_2025
Monads provide a simple and concise interface to user-defined computational effects in functional programming languages. This enables equational reasoning about effects, abstraction over monadic interfaces and the development of monad transformer stacks to allow for multiple effects. Compiler implementors and assembly code programmers similarly virtualize effects, and would benefit from similar abstractions if possible. However, the implementation details of effects seem disconnected from the high-level monad interface: at this lower level much of the design is in the layout of the runtime stack, which is not accessible in a high-level programming language.
We demonstrate that the monadic interface can be faithfully adapted from high-level functional programming to a lower level setting with explicit stack manipulation. We use a polymorphic call-by-push-value (CBPV) calculus as a setting that captures the essence of stack-manipulation, with a type system that allows programs to define domain-specific stack structures. Within this setting, we show that the existing category-theoretic notion of a relative monad can be used to model the stack-based implementation of computational effects. To demonstrate generality, we adapt a variety of standard monads to relative monads. Additionally, we show that stack-manipulating programs can benefit from a generalization of do-notation we call “monadic blocks” that allow all CBPV code to be reinterpreted to work with an arbitrary relative monad. As an application, we show that all relative monads extend automatically to relative monad transformers, a process which is not automatic for monads in pure languages.
Context-Dependent Effects in Guarded Interaction Trees stepanenko-2025-contextx
Modular Denotational Semantics for Effects with Guarded Interaction Trees frumin-2024-modular
Decalf: A Directed, Effectful Cost-Aware Logical Framework grodin-2024-decalf
Algebraic Effects Meet Hoare Logic in Cubical Agda kidney-2024-algebraic
Scoped Effects as Parameterized Algebraic Theories lindley-2024-scoped
Modular Models of Monoids with Operations yang-2023-modular
Gradual Typing for Effect Handlers new_giovannini_licata_2023
We present a gradually typed language, GrEff, with effects and handlers that supports migration from unchecked to checked effect typing. This serves as a simple model of the integration of an effect typing discipline with an existing effectful typed language that does not track fine-grained effect information. Our language supports a simple module system to model the programming model of gradual migration from unchecked to checked effect typing in the style of Typed Racket.
The surface language GrEff is given semantics by elaboration to a core language Core GrEff. We equip Core GrEff with an inequational theory for reasoning about the semantic error ordering and desired program equivalences for programming with effects and handlers. We derive an operational semantics for the language from the equations provable in the theory. We then show that the theory is sound by constructing an operational logical relations model to prove the graduality theorem. This extends prior work on embedding-projection pair models of gradual typing to handle effect typing and subtyping.
Fully abstract models for effectful λ-calculi via category-theoretic logical relations kammar-2022-fully
An Algebraic Theory for Shared-State Concurrency dvir-2022-an
Algorithm Design with the Selection Monad hartmann-2022-algorithm
Structured Handling of Scoped Effects yang-2022-structured
Reasoning about effect interaction by fusion yang-2021-reasoning
Recovering purity with comonads and capabilities choudhury-2020-recovering
Doo bee doo bee doo convent-2020-doo
Effect handlers via generalised continuations hillerstrom-2020-effect
Dijkstra monads for all maillard-2019-dijkstra
On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control forster-2019-on
A logical relation for monadic encapsulation of state: proving contextual equivalences in the presence of runST timany-2017-a
Do be do be do lindley-2017-do
Continuation Passing Style for Effect Handlers hillerstrom-2017-continuation
We present Continuation Passing Style (CPS) translations for Plotkin and Pretnar’s effect handlers with Hillerström and Lindley’s row-typed fine-grain call-by-value calculus of effect handlers as the source language. CPS translations of handlers are interesting theoretically, to explain the semantics of handlers, and also offer a practical implementation technique that does not require special support in the target language’s runtime.
We begin with a first-order CPS translation into untyped lambda calculus which manages a stack of continuations and handlers as a curried sequence of arguments. We then refine the initial CPS translation first by uncurrying it to yield a properly tail-recursive translation and second by making it higher-order in order to contract administrative redexes at translation time. We prove that the higher-order CPS translation simulates effect handler reduction. We have implemented the higher-order CPS translation as a JavaScript backend for the Links programming language.