Handling Local State with Global State

Equational reasoning is one of the most important tools of functional programming. To facilitate its application to monadic programs, Gibbons and Hinze have proposed a simple axiomatic approach using laws that characterise the computational effects without exposing their implementation details. At the same time Plotkin and Pretnar have proposed algebraic effects and handlers, a mechanism of layered abstractions by which effects can be implemented in terms of other effects.

[1]  Philip Wadler Monads for Functional Programming , 1995, Advanced Functional Programming.

[2]  Oleg Kiselyov,et al.  Freer monads, more extensible effects , 2015, Haskell.

[3]  G. Hutton,et al.  Chapter 25 Reasoning About Effects : Seeing the Wood Through the Trees , 2008 .

[4]  Gordon D. Plotkin,et al.  Handlers of Algebraic Effects , 2009, ESOP.

[5]  Ralf Hinze,et al.  Prolog's Control Constructs in a Functional Setting - Axioms and Implementation , 2001, Int. J. Found. Comput. Sci..

[6]  Ralf Hinze,et al.  Just do it: simple monadic equational reasoning , 2011, ICFP.

[7]  Tom Schrijvers,et al.  Effect handlers in scope , 2014, Haskell 2014.

[8]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[9]  Matija Pretnar,et al.  Local algebraic effect theories , 2020, J. Funct. Program..

[10]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .

[11]  Andrej Bauer,et al.  An Effect System for Algebraic Effects and Handlers , 2013, CALCO.