Programming with Algebraic Effects and Handlers
Monads for functional programming