The Eff monad, one monad to rule them all!Eric Torreborre
schedule 3 months agoSold Out!
Monad transformers are a neat way to compose effectful computations: pass some configuration, read/write from disk, track errors... However they can be a bit cumbersome to deal with, especially if you want to use different stacks sharing some common effects: for example a stack to interact with AWS and another one for Hadoop computations.
This talk will shortly introduce monad transformers in Scala and their drawbacks then present the Eff monad.
The Eff monad has some really interesting properties:
- effects can be developed completely independently from each other
- effects can be interpreted in different ways and the interpreters can be composed together
- it is based on an efficient "Free monad" (avoiding the issue of quadratic flatMaps)
- with the Eff monad you will never have to re-implement the Monad operations (point / flatMap) again!