Haskell Package Publishing

Horizon Haskell Handbook

Horizon Haskell is a publishing system for creating and maintaining Stable Package Sets for Haskell on Nix.

Stable Package Sets save development time by providing collections of packages known to build and work together. Horizon allows you to compute custom stable package sets for Nix and store them as reusable inputs for your Haskell projects.

Horizon excels in recovery of packages that have fallen out of date, and can ensure that they continue to build into the future by scouting potential compatibility issues ahead of major GHC releases.

We regularly build over 500 packages against GHC master, and combined total of over 1100 packages against the latest GHC release. All horizon package sets are API-compatible with nixpkgs’ haskellPackages, so you can try Horizon with any nixpkgs compatible Haskell project.

Use the links on the sidebar to browse the manual, or read the QuickStart or the FAQ section. For any direct queries, try our matrix or twitter. Otherwise, click one of the following options.

User Stories

Horizon Haskell has made Nix builds for the http://flora.pm project more reliable and eased the task of updating dependencies for the maintainers, who are not trained in taking care of Nix setups.

The Flora team does not need to interact with the Nix setup during most of the development cycle, which allows us to focus on product development.

The reactivity and reliability of the Horizon team has made it a clear choice for our needs, and we greatly appreciate each interaction with them.

Théophile Choutri — Project lead for the Flora package index project.

horizon-advance lets me test my code against upstream versions of GHC and dependencies before those land in any stable channels. This way I can keep my code forward-compatible to prevent any future breakages, and fix any breakages with confidence.

Tom Sydney Kerchove - Author of feedback, smos and sydtest.