JuliaFunctional / ExtensibleEffects.jl

Implementing extensible effects in Julia
MIT License
13 stars 2 forks source link

ExtensibleEffects

Stable Dev Build Status Coverage

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.

Presentation at JuliaCon 2021

The package was presented at JuliaCon 2021.