Extensible effects to manage side effects in functional programs

Note

Extensible effects is an alternative to monad transformers for managing stack of effects in a functional style architecture. The main idea is to have a base monad (Eff for example) that consists of a list of effects to execute. The effects can be used (or interpreted) one by one and naturally composed unlike monads. It also avoids stacking monads one on top the other that leads to quite unreadable code.

Links

Extensible effects