eff
🚧 a work in progress effect system for Haskell 🚧 (by hasura)
haskell.nix
Alternative Haskell Infrastructure for Nixpkgs (by input-output-hk)
Our great sponsors
eff | haskell.nix | |
---|---|---|
18 | 15 | |
546 | 524 | |
0.9% | 1.7% | |
0.0 | 9.7 | |
12 months ago | 7 days ago | |
Haskell | Nix | |
ISC License | Apache License 2.0 |
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.
eff
Posts with mentions or reviews of eff.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-12.
-
Haskellers who moved to Rust: What has been your experience?
You can swap-out implementations for testing, avoid the crazy N^2 instances issues, etc. They're pretty cool. Currently there are many competing libraries. polysemy and eff both have good examples on their homepages.
-
What are the current hot topics in type theory and static analysis?
Effect systems and Algebraic effects. ocaml has just released a stripped-down effect system. People are also working on Effect systems for Haskell (eff, fused-effects, effet). Koka is a language built with effects first and foremost and it’s rapidly gaining popularity. Unison also has effects.
-
[ANNOUNCE] GHC 9.6.1 is now available
There are also a few subtle issues that arise with delconts related to semantics of higher order effects (see here and here), but they might be solvable.
-
Effectful | Paweł Szulc | Lambda Days 2022
Details are in https://github.com/hasura/eff/issues/12 and https://www.reddit.com/r/haskell/comments/pywuqg/unresolved_challenges_of_scoped_effects_and_what/.
-
Looking for languages that combine algebraic effects with parallel execution
You'll get fearless parallel with STM in the mixture, and GHC is getting a work in progress effect system for Haskell, as Delimited continuation primops has been merged.
-
Should I pick up OCaml or Haskell?
My last example is algebraic effects, some of which have been made possible in a both practical and efficient way thanks to extremely recent research, and that I can use to implement architectures like Ports and Adapters or Clean Architecture and have very maintainable code. (Extensible Effects — An Alternative to Monad Transformers was published in 2013, Effect Handlers in Scope was published in 2014 and they are behind Polysemy, while there is ongoing work on effects with even better performance, like Eff)
-
[ANN] cleff - fast and consise extensible effects
cleff's Eff monad is esentially implemented as a ReaderT IO. [...] This is first done by eff, [...]
-
Opinions on Reader + Continuation-based IO?
Here is link number 1 - Previous text "eff"
-
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.
-
Languages that don't support Error-Catching as a Control Structure?
There are a few languages that have algebraic effect systems, most notably Haskell, but these systems are implemented as libraries, not baked into the language (which can have advantages and disadvantages).
haskell.nix
Posts with mentions or reviews of haskell.nix.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-29.
-
Why does Nix have Haskell packages that are incompatible with GHC for a given version?
I'm not a great haskeller but I found haskell.nix better for Haskell projects, like the commenter on Discourse suggested. I've had a few issued regarding package versions with nixpkgs that haskell.nix solved.
-
Simple GHC stack for a novice
FWIW, there's also libraries like haskell.nix that solve the caching problem.
-
Any up-to-date cross-compiling methods for Raspberry Pi?
I would try haskell.nix.
-
Take the Nix Pill
If you want to hurt your brain, check out haskell.nix. That's some good stuff right there ^^
-
Trying to build a statically linked binary against glibc (Linux)
The haskell.nix framework is good for this.
-
GHC 9.4.1 Windows changes
One cool thing is that this will enable GHC builds using ucrt instead of vscrt in the future. Concretely, together with NixOS/nixpkgs#171418 and its follow-up NixOS/nixpkgs#173498), this will e.g. allow haskell.nix to upgrade to a newer wine pin for TH cross compilation: https://github.com/input-output-hk/haskell.nix/blob/dd13e822529ae5342494969bce8a457522a60100/overlays/wine.nix
-
How to make stack work like it's supposed to
I've been using IOHK's alternative infrastructure for this reason. It has its quirks but I've been happier with it. Before that I think I was using developPackage from the nixpkgs haskell tooling which had some introspection ability. You may consider trying that out. But as I remember this will not abide by your version bounds.
-
Announcing `safe-coloured-text`
There's a lot to like here. Alas, despite minimal dependencies, terminfo is somehow uniquely problematic in haskell.nix.
- A question about the current state of Haskell running natively on Apple silicon:
-
Memory from finished thread is not getting reclaimed
If you are somewhat comfortable with nix: https://github.com/input-output-hk/haskell.nix supports GHCJS 8.10.x (in particular 8.10.7).
What are some alternatives?
When comparing eff and haskell.nix you can also consider the following projects:
freer-simple - A friendly effect system for Haskell
Cabal - Official upstream development repository for Cabal and cabal-install
fused-effects - A fast, flexible, fused effect system for Haskell
nix-doom-emacs - doom-emacs packaged for Nix
frp-zoo - Comparing many FRP implementations by reimplementing the same toy app in each.
static-haskell-nix - easily build most Haskell programs into fully static Linux executables
in-other-words - A higher-order effect system where the sky's the limit
polysemy - :gemini: higher-order, no-boilerplate monads
extensible-effects - Extensible Effects: An Alternative to Monad Transformers
nixpkgs - Nix Packages collection & NixOS