cscherrer / ExtensibleEffects.jl

Implementing extensible effects in Julia

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

  • find the video at youtube
  • find the presentation material in this binder 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.

About

Implementing extensible effects in Julia

License:MIT License


Languages

Language:Julia 100.0%