An easy to use, performant extensible effects library with seamless integration with the existing Haskell ecosystem.
Go to file
2021-06-11 15:18:43 +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 Add README and an example 2021-06-11 15:18:43 +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 Initial commit 2021-06-11 14:17:19 +02:00
LICENSE Initial commit 2021-06-11 14:17:19 +02:00
README.md Add README and an example 2021-06-11 15:18:43 +02:00

effective

Build Status

An effect system based on the ReaderT design pattern.

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.