This package provides an implementation of Extensible Effects. We follow the approach presented in the paper Freer Monads, More Extensible Effects which already has an Haskell implementation as well as a Scala implementation.
This Julia implementation is massively simplified, and hence can also serve as a good introduction to get to know the details behind Extensible Effects.
Many effects are provided, ranging from Option
, which can be handled very simple, to the very limit of what can be supported by ExtensibleEffects - the State
effect. Still, all the implementations are short and easy to follow, so look into the instances.jl
file to see how to write your own Effect handlings.
The package was presented at JuliaCon 2021.