[Haskell-cafe] Nix for Hackage/Cabal

apfelmus apfelmus at quantentunnel.de
Fri Jul 6 10:47:52 EDT 2007



"Nix is a purely functional package manager. This means that it treats
packages like values in purely functional programming languages such as
Haskell - they are built by functions that don't have side-effects, and
they never change after they have been built."

To me, it sounds like the ideal solution to package/make/build
management in general and Cabal/Hackage/Cabal-install in particular.
After all, compilation is just a _pure_ function

  compile :: Source -> Dependencies -> Object

So, the suggestion is to use Nix for Hackage/Cabal. This way, we get
package installation/deinstallation for free. I didn't look into it, but
it seems that the package description language can express most content
from .cabal files and I guess that it even eliminates the need for most
of Cabal's functionality like finding compilers and such.

The only drawback is that Nix uses a home-brew functional language for
package descriptions. Of course, it would be ideal to have a Haskell DSL
for that :)


More information about the Haskell-Cafe mailing list