haskell.nix
polysemy
Our great sponsors
haskell.nix | polysemy | |
---|---|---|
15 | 7 | |
518 | 1,019 | |
1.7% | 0.2% | |
9.7 | 5.5 | |
about 17 hours ago | 9 days ago | |
Nix | Haskell | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
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.
haskell.nix
-
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
-
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's all the hype with Nix?
I also prefer stack for development, but I use nix to deploy to production. This way, I can install ad-hoc system dependencies locally and play with them during development as well as enjoy the bits and pieces of Haskell ergonomics stack affords, and once I'm happy with what I have, I "nixify" those dependencies as part of the project nix configuration and send them to production without fear. I use IOHK's excellent haskell.nix infrastructure to nixify my stack-based Haskell project, which makes it trivial to maintain a nix configuration that's always in sync with my stack configuration.
-
Monthly Hask Anything (June 2021)
And stuff like haskell.nix is supposed to let you configure things with stack or cabal or whatever tool you find most convenient, and let nix do the rest.
-
Another Haskell and Nix setup
/u/ItsNotMineISwear mentioned haskell.nix, which does generate a Haskell package set based on either a stack.yaml file, or the Cabal solver. This would solve some of your problems, but then possibly introduce others.
polysemy
-
Functional Declarative Design: A Comprehensive Methodology for Statically-Typed Functional Programming Languages
Thirdly, composing arbitrary effects without losing state is really, really difficult. Things are fine when you limit yourself to State and Reader, sure, but once you start with nondeterminism you’ll discover it’s shockingly easy to produce behaviors that are baffling unless you’ve spent a preposterous amount of time thinking about this stuff. (I’ve been bitten in prod by silent state-dropping bugs, and rarely have I been more flummoxed.) Consider this example, which produces silent changes in the semantics of <|> depending on whether you use it inside or outside of a higher-order effect. Every single effect library (besides the still-unreleased eff) gets certain combinations of effects + nondeterminism wrong. You could make the argument that most people don’t use nondeterministic monads, but eDSLs really shine when you have access to them, as you can turn a concrete interpreter to an abstract one fairly easily.
-
Introduction to Doctests in Haskell
Looking for a few projects that make use of it, I found accelerate, hawk, polysemy and pretty-simple, so I'll be interested to poke around in their code and see how they have things set up.
-
ReaderT pattern is just extensible effects
Right, I think I'll just give it a shot to see. Polysemy is nice but I'm still having trouble getting what I want out of it (which may very well be entirely a fault of my own understanding)
-
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.
- Monthly Hask Anything (June 2021)
-
Structuring Code with ZIO & ZLayers
*But I'm not terribly well versed in Scala's other DI offerings. I came from Haskell and didn't find anything in Scala that clicked with me until I found ZIO. It reminded me a lot of my favorite way of writing Haskell programs (https://github.com/polysemy-research/polysemy)—albeit with a completely different implementation.
What are some alternatives?
Cabal - Official upstream development repository for Cabal and cabal-install
fused-effects - A fast, flexible, fused effect system for Haskell
purescript - A strongly-typed language that compiles to JavaScript
freer-simple - A friendly effect system for Haskell
Exercism - Scala Exercises - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
ast-monad - A library for constructing AST by using do-notation
nix-doom-emacs - doom-emacs packaged for Nix
static-haskell-nix - easily build most Haskell programs into fully static Linux executables
ghc - Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).
frp-zoo - Comparing many FRP implementations by reimplementing the same toy app in each.
nixpkgs - Nix Packages collection & NixOS
eff - 🚧 a work in progress effect system for Haskell 🚧