Skip to main content

Embedding effect systems in Haskell

Orchard, Dominic and Petricek, Tomas (2014) Embedding effect systems in Haskell. In: Proceedings of the 2014 ACM SIGPLAN symposium on Haskell. ICFP International Conference on Functional Programming . ACM, New York, USA, pp. 13-24. ISBN 978-1-4503-3041-1. (doi:10.1145/2633357.2633368) (KAR id:57487)

PDF Author's Accepted Manuscript
Language: English
Download (278kB) Preview
Official URL


Monads are now an everyday tool in functional programming for abstracting and delimiting effects. The link between monads and effect systems is well-known, but in their typical use, monads provide a much more coarse-grained view of effects. Effect systems capture fine-grained information about the effects, but monads provide only a binary view: effectful or pure.

Recent theoretical work has unified fine-grained effect systems with monads using a monad-like structure indexed by a monoid of effect annotations (called parametric effect monads). This aligns the power of monads with the power of effect systems.

This paper leverages recent advances in Haskell's type system (as provided by GHC) to embed this approach in Haskell, providing user-programmable effect systems. We explore a number of practical examples that make Haskell even better and safer for effectful programming. Along the way, we relate the examples to other concepts, such as Haskell's implicit parameters and coeffects.

Item Type: Book section
DOI/Identification number: 10.1145/2633357.2633368
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Dominic Orchard
Date Deposited: 05 May 2017 13:30 UTC
Last Modified: 23 Sep 2019 11:43 UTC
Resource URI: (The current URI for this page, for reference purposes)
Orchard, Dominic:
  • Depositors only (login required):


Downloads per month over past year