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.lockfile, 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.