Learn Nix

Nix is a general-purpose build tool, like a modern reinvention of Make that uses file hashes instead of timestamps. As Haskell fans we love it because the configuration language, a (mostly) pure lazy lambda calculus, has a familiar feel.

This foundation gives Nix so much expressive power that it can build an entire Linux distribution (NixOS) with a single command. You can also use it as a build tool for your Haskell applications. No mutable state in the build process means no need for anything like “make clean,” and generally much less room to make mistakes. And provisioning a VM in the cloud with NixOS is just as easy as running NixOS on your laptop.

We use and promote the set of things that are joined together under the name Nix, for very similar reasons to the reasons we like Haskell. This section of the site will be devoted to all things Nix, from the basics through practical and sometimes novel applications such as how we’ve used Nix in building LaTeX projects and this web site. (This site is mainly written in Haskell, but Nix plays an important role.)

Join Type Classes for courses and projects to get you started and make you an expert in FP with Haskell.