input-output-hk/haskell.nix

Alternative Haskell Infrastructure for Nixpkgs

632

stars

1,743

commits

Nix

primary language

Sep 11, 2026

updated

input-output-hk.github.io/haskell.nix
build-tool
hacktoberfest
haskell
infrastructure
nix
nix-expressions
Browse cluster: Haskell development tools and environments

README

haskell.nix is infrastructure for building Haskell packages with Nix

haskell.nix can automatically translate your Cabal or Stack project and its dependencies into Nix code.

Documentation

Help! Something isn't working

The #1 problem that people have when using haskell.nix is that they find themselves building GHC. This should not happen, but you must follow the haskell.nix setup instructions properly to avoid it. If you find this happening to you, please check that you have followed the getting started instructions and consult the corresponding troubleshooting section.

The troubleshooting documentation also contains some help for other common issues. If you're still stuck open an issue.

Compiler CI status

haskell.nix publishes prebuilt GHCs (and boot libraries) to two binary caches:

  • cache.iog.io only holds the GHC versions currently in use by IOG's own projects, so it does not cover every compiler haskell.nix supports.
  • cache.zw3rk.com holds all the compiler versions currently tested in haskell.nix CI — including cross-compilers — so configuring it as an extra substituter is the surest way to avoid building GHC yourself.

The table below is generated automatically from the latest master builds on ci.zw3rk.com and shows the build status of GHC itself (the roots.ghc job) for each compiler and platform. A ✅ means that compiler/platform is built and cached for the current master (a build only counts once it is part of the latest evaluation, so a green never reflects a stale build).

Legend: ✅ built & cached · ⚠️ dependency failed · ❌ failed · ⚪ aborted/cancelled · 🕓 building

NixpkgsHost → Targetghc967ghc984ghc9103ghc9124ghc9141ghc9141llvm
unstablex86_64-linux
unstablex86_64-linux → static·
unstablex86_64-linux → musl64
unstablex86_64-linux → musl32·
unstablex86_64-linux → aarch64
unstablex86_64-linux → aarch64-musl
unstablex86_64-linux → android/aarch64···
unstablex86_64-linux → android/armv7a···
unstablex86_64-linux → javascript··
unstablex86_64-linux → wasm····
unstablex86_64-linux → windows/mingwW64·
unstablex86_64-linux → windows/ucrt64·
unstableaarch64-darwin
unstableaarch64-darwin → javascript··
unstableaarch64-darwin → wasm····
unstablex86_64-darwin······
unstablex86_64-darwin → javascript······
R2511x86_64-linux······
R2511aarch64-darwin······
R2511x86_64-darwin······

The haskell.nix repository contains the runtime system for building Haskell packages in Nix. It depends on other repos, which are:

[!NOTE] For commercial support, please don't hesitate to reach out at devx@iohk.io

Contributors

(top 30 of 152)

hamishmack

790 commits

angerman

298 commits

rvl

151 commits

michaelpj

47 commits

input-output-hk/haskell.nix

Alternative Haskell Infrastructure for Nixpkgs

632

stars

1,743

commits

Nix

primary language

Sep 11, 2026

updated

input-output-hk.github.io/haskell.nix
build-tool
hacktoberfest
haskell
infrastructure
nix
nix-expressions
Browse cluster: Haskell development tools and environments

README

haskell.nix is infrastructure for building Haskell packages with Nix

haskell.nix can automatically translate your Cabal or Stack project and its dependencies into Nix code.

Documentation

Help! Something isn't working

The #1 problem that people have when using haskell.nix is that they find themselves building GHC. This should not happen, but you must follow the haskell.nix setup instructions properly to avoid it. If you find this happening to you, please check that you have followed the getting started instructions and consult the corresponding troubleshooting section.

The troubleshooting documentation also contains some help for other common issues. If you're still stuck open an issue.

Compiler CI status

haskell.nix publishes prebuilt GHCs (and boot libraries) to two binary caches:

  • cache.iog.io only holds the GHC versions currently in use by IOG's own projects, so it does not cover every compiler haskell.nix supports.
  • cache.zw3rk.com holds all the compiler versions currently tested in haskell.nix CI — including cross-compilers — so configuring it as an extra substituter is the surest way to avoid building GHC yourself.

The table below is generated automatically from the latest master builds on ci.zw3rk.com and shows the build status of GHC itself (the roots.ghc job) for each compiler and platform. A ✅ means that compiler/platform is built and cached for the current master (a build only counts once it is part of the latest evaluation, so a green never reflects a stale build).

Legend: ✅ built & cached · ⚠️ dependency failed · ❌ failed · ⚪ aborted/cancelled · 🕓 building

NixpkgsHost → Targetghc967ghc984ghc9103ghc9124ghc9141ghc9141llvm
unstablex86_64-linux
unstablex86_64-linux → static·
unstablex86_64-linux → musl64
unstablex86_64-linux → musl32·
unstablex86_64-linux → aarch64
unstablex86_64-linux → aarch64-musl
unstablex86_64-linux → android/aarch64···
unstablex86_64-linux → android/armv7a···
unstablex86_64-linux → javascript··
unstablex86_64-linux → wasm····
unstablex86_64-linux → windows/mingwW64·
unstablex86_64-linux → windows/ucrt64·
unstableaarch64-darwin
unstableaarch64-darwin → javascript··
unstableaarch64-darwin → wasm····
unstablex86_64-darwin······
unstablex86_64-darwin → javascript······
R2511x86_64-linux······
R2511aarch64-darwin······
R2511x86_64-darwin······

The haskell.nix repository contains the runtime system for building Haskell packages in Nix. It depends on other repos, which are:

[!NOTE] For commercial support, please don't hesitate to reach out at devx@iohk.io

Contributors

(top 30 of 152)

hamishmack

790 commits

angerman

298 commits

rvl

151 commits

michaelpj

47 commits

Languages

Nix

82.8%

Haskell

16.0%