A few weeks ago I put together a Nix library stacklock2nix
. It enables you to easily build a Stack-based Haskell project with the Haskell infrastructure from Nixpkgs:
stacklock2nix
is an alternative to haskell.nix for projects that:
- you want to build with the Haskell infrastructure in Nixpkgs
- you already have a
stack.yaml.lock
file, and want to generate a package set with package versions based off thestack.yaml.lock
- you don’t need all the functionality provided by haskell.nix
I’m using stacklock2nix
to build a sizeable Haskell project at work, and it seems to be working relatively smoothly. I’ve also written a series of blog posts about packaging various Haskell projects using stacklock2nix
. Each blog post contains some example code using stacklock2nix
:
- building the PureScript compiler
- building Dhall and tools
- building Pandoc (with full static-linking)
The stacklock2nix
repo also has an example Haskell project that can build with stacklock2nix
. Here’s a flake.nix
from that project that you can use to get an idea of stacklock2nix
:
Additional documentation can be found in the stacklock2nix
README.
I also posted about stacklock2nix
on the NixOS Discourse, and there was some interesting discussion there.