# \[ANN\] effectful - an easy to use, performant extensible effects library

**URL:** <https://discourse.haskell.org/t/ann-effectful-an-easy-to-use-performant-extensible-effects-library/4774>\
**Category:** Announcements\
**Created:** [July 15, 2022, 3:15pm UTC](https://discourse.haskell.org/t/ann-effectful-an-easy-to-use-performant-extensible-effects-library/4774 "2022-07-15T15:15:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![arybczak](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/arybczak/32/2527_2.png) [@arybczak](https://discourse.haskell.org/u/arybczak)\
**Post date:** [July 15, 2022, 3:15pm UTC](https://discourse.haskell.org/t/ann-effectful-an-easy-to-use-performant-extensible-effects-library/4774/1 "2022-07-15T15:15:15Z")

</div>

Hey everyone,

It’s taken ages, but finally the initial release of the [effectful](https://hackage.haskell.org/package/effectful) library is here 🎉

For people unfamiliar with it, it’s an extensible effects library that:

- Is very fast (see [benchmarks](https://github.com/haskell-effectful/effectful/blob/master/benchmarks/README.md)) 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](https://hackage.haskell.org/package/unliftio-core-0.2.0.1/docs/Control-Monad-IO-Unlift.html#t:MonadUnliftIO)).
- Fixes [subtle issues](https://github.com/haskell-effectful/effectful/blob/master/transformers.md) 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` vs `unliftio-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](https://hackage.haskell.org/package/resourcet-effectful) is already released and several are brewing [here](https://github.com/haskell-effectful)).
