Hey everyone,
It’s taken ages, but finally the initial release of the effectful library is here
For people unfamiliar with it, it’s an extensible effects library that:
- Is very fast (see benchmarks) when compared to other effect libraries and MTL as it’s internally a ReaderT over IO.
- Has flexible and easy to use API for higher order effects (similar to MonadUnliftIO).
- Fixes subtle issues of popular monad transformers.
- Makes it easy to integrate with the existing ecosystem of libraries.
I started working on it after the eff
effort was stalled due to a few unresolved issues.
Over the years of writing Haskell professionally I got more and more tired of:
- Boilerplate related to mtl style effects (along with complexity of
monad-control
) - Subtle issues of monad transformers that people new to the language were re-encountering over and over again.
- The
monad-control
vsunliftio-core
split that made it not possible to use some libraries together.
effectful
(as far as I know) solves these problems.
FYI, there are already a few adapters for existing libraries (resourcet-effectful is already released and several are brewing here).