An easy to use, performant extensible effects library with seamless integration with the existing Haskell ecosystem.
Go to file
2021-06-11 15:44:52 +02:00
.github/workflows Initial commit 2021-06-11 14:17:19 +02:00
bench Benchmark all variants of the State effect 2021-06-11 14:40:31 +02:00
examples Update description 2021-06-11 15:44:52 +02:00
src Initial commit 2021-06-11 14:17:19 +02:00
.gitignore Initial commit 2021-06-11 14:17:19 +02:00
cabal.haskell-ci Initial commit 2021-06-11 14:17:19 +02:00
CHANGELOG.md Initial commit 2021-06-11 14:17:19 +02:00
effective.cabal Update description 2021-06-11 15:44:52 +02:00
LICENSE Initial commit 2021-06-11 14:17:19 +02:00
README.md Update description 2021-06-11 15:44:52 +02:00

effective

Build Status

A simple, yet powerful extensible effects library.

Main features:

  1. Very fast.

  2. Internals of the library are easy to reason about.

  3. Correct semantics in presence of runtime exceptions (no more lost or discarded state).

  4. Seamless integration with existing Haskell ecosystem (exceptions, monad-control, unliftio-core, resourcet).

  5. Effects can be defined for either static (as fast as it gets, single interpretation) or dynamic (slower, multiple interpretations) dispatch depending on your needs.

Example

A Filesystem effect with two handlers, one that runs in IO and another that uses an in-memory virtual file system can be found here.

Resources

Resources that inspired the rise of this library and had a lot of impact on its design.

Talks:

Blog posts: