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.
- find the video at youtube
- find the presentation material in this binder . The binder link provides you with a Jupyter environment where you can actually run julia code and explore the ExtensibleEffects further. The link will autostart into the presentation itself, clicking the big X on the top left will exit the presentation mode and bring you to a standard Jupyter notebook.