mirror of
https://github.com/haskell-effectful/effectful.git
synced 2024-11-23 14:36:11 +03:00
An easy to use, performant extensible effects library with seamless integration with the existing Haskell ecosystem.
.github/workflows | ||
bench | ||
examples | ||
src | ||
.gitignore | ||
cabal.haskell-ci | ||
CHANGELOG.md | ||
effective.cabal | ||
LICENSE | ||
README.md |
effective
An effect system based on the ReaderT design pattern.
Main features:
-
Very fast.
-
Internals of the library are easy to reason about.
-
Correct semantics in presence of runtime exceptions (no more lost or discarded state).
-
Seamless integration with existing Haskell ecosystem (
exceptions
,monad-control
,unliftio-core
,resourcet
). -
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.