Combining effects and coeffects via grading

M Gaboardi, S Katsumata, D Orchard, F Breuvart… - ACM SIGPLAN …, 2016 - dl.acm.org
Effects and coeffects are two general, complementary aspects of program behaviour. They
roughly correspond to computations which change the execution context (effects) versus …

Liberating effects with rows and handlers

D Hillerström, S Lindley - Proceedings of the 1st International Workshop …, 2016 - dl.acm.org
Algebraic effects and effect handlers provide a modular abstraction for effectful
programming. They support user-defined effects, as in Haskell, in conjunction with direct …

Effects as sessions, sessions as effects

D Orchard, N Yoshida - ACM SIGPLAN Notices, 2016 - dl.acm.org
Effect and session type systems are two expressive behavioural type systems. The former is
usually developed in the context of the lambda-calculus and its variants, the latter for the pi …

A typechecker plugin for units of measure: Domain-specific constraint solving in GHC Haskell

A Gundry - ACM SIGPLAN Notices, 2015 - dl.acm.org
Typed functional programming and units of measure are a natural combination, as F# ably
demonstrates. However, encoding statically-checked units in Haskell's type system leads to …

[HTML][HTML] Session-ocaml: A session-based library with polarities and lenses

K Imai, N Yoshida, S Yuen - Science of Computer Programming, 2019 - Elsevier
We propose session-ocaml, a novel library for session-typed concurrent/distributed
programming in OCaml. Our technique solely relies on parametric polymorphism, which can …

Effect systems revisited—control-flow algebra and semantics

A Mycroft, D Orchard, T Petricek - … and Calculi: Essays Dedicated to Hanne …, 2016 - Springer
Abstract Effect systems were originally conceived as an inference-based program analysis
to capture program behaviour—as a set of (representations of) effects. Two orthogonal …

Data-flow analyses as effects and graded monads

A Ivašković, A Mycroft, D Orchard - 5th International Conference on …, 2020 - kar.kent.ac.uk
In static analysis, two frameworks have been studied extensively: monotone data-flow
analysis and type-and-effect systems. Whilst both are seen as general analysis frameworks …

Effects and Coeffects in Call-by-Push-Value

C Torczon, E Suárez Acevedo, S Agrawal… - Proceedings of the …, 2024 - dl.acm.org
Effect and coeffect tracking integrate many types of compile-time analysis, such as cost,
liveness, or dataflow, directly into a language's type system. In this paper, we investigate the …

Associated Effects: Flexible Abstractions for Effectful Programming

M Lutze, M Madsen - Proceedings of the ACM on Programming …, 2024 - dl.acm.org
We present associated effects, a programming language feature that enables type classes to
abstract over the effects of their function signatures, allowing each type class instance to …

Error Localization for Sequential Effect Systems (Extended Version)

CS Gordon, C Yun - arXiv preprint arXiv:2307.15777, 2023 - arxiv.org
We describe a new concrete approach to giving predictable error locations for sequential
(flow-sensitive) effect systems. Prior implementations of sequential effect systems rely on …