cleff
Fast and concise extensible effects (by re-xyr)
fused-effects
A fast, flexible, fused effect system for Haskell (by fused-effects)
cleff | fused-effects | |
---|---|---|
5 | 3 | |
104 | 647 | |
- | 0.5% | |
0.0 | 6.2 | |
over 1 year ago | 3 months ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cleff
Posts with mentions or reviews of cleff.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-01.
-
Implicit parameters vs ReaderT
I ended up using a different approach to guiding inference in my project, but I still thought the IP way was cool
- Comparing ZIO to Haskell effects libraries like Polysemy?
-
Effect Zoo for Scala 3
Consider 2 Haskell projects: Cleff and Effectful. They both are extensible effect systems, built around ReaderT design pattern. At their core, they use fused ReaderT + IO monad, with extensible environment. This architecture is very similar to ZIO's. All 3 even share the same limitation - inability to express nondeterminism (not very relevant fact, but I just want to emphasize the similarity).
-
[ANN] effectful - an easy to use, performant extensible effects library
cleff and effectful are very similar, to the point that I offered to join forces (for the record, majority of the conversation refers to things that are no longer true for both libraries as we inspired each other to fix most quirks :). The main difference is the internal environment - in effectful it's mutable, while in cleff it's immutable. All differences pretty much grow from this. The main ones:
-
[ANN] cleff - fast and consise extensible effects
I'm pleased to announce cleff, a new extensible effects library for Haskell: https://github.com/re-xyr/cleff.
fused-effects
Posts with mentions or reviews of fused-effects.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-11-17.
-
Where's more discussion of the designs of effect systems?
Languages such as Koka only support algebraic effects, not scoping operations such as catch and listen. The Effect Handlers in Scope paper introduces scoping operations, which lead to the Haskell libraries fused-effects and polysemy, but they turned out to have some weird semantics. eff is her effort to fix that.
- Haskell doesn't make sense without pure functions
- Monthly Hask Anything (June 2021)
What are some alternatives?
When comparing cleff and fused-effects you can also consider the following projects:
effectful - An easy to use, fast extensible effects library with seamless integration with the existing Haskell ecosystem.
polysemy - :gemini: higher-order, no-boilerplate monads
effect-zoo - Effect Zoo for Scala
eveff - Efficient Haskell effect handlers based on evidence translation.
effect-zoo - Comparing Haskell effect systems for ergonomics and speed
eff - 🚧 a work in progress effect system for Haskell 🚧
Truth - Changes and Pinafore projects. Pull requests not accepted.
freer-simple - A friendly effect system for Haskell
control-monad-free - Free monads and monad transformers
hpqtypes-effectful - Effectful bindings for hpqtypes
control-monad-exception - Explicitly Typed exceptions as a library