Cabal and simultaneous installations of the same package

Miëtek Bak mietek at
Mon Mar 23 15:28:14 UTC 2015

On 2015-03-23, at 09:52, Simon Peyton Jones <simonpj at> wrote:

> The point is that I may need to install a bunch of packages to build a program.  If I’m using Cabal, none of those newly installed packages need be exposed; I simply need them there so I can compile my program (using Cabal).   But at the moment I can’t do that.

Do you mean that you may need to install a bunch of packages to build a _build-tool_ (such as alex, happy, c2hs, cpps…), in order to compile your program?

If yes, then one way to avoid having these packages pollute your build environment is building each Haskell program in a separate sandbox.

There are some tools which attempt to simplify this process.  Halcyon goes a bit further — 

Halcyon allows you to declare other Haskell programs to be installed as build-time (or run-time!) dependencies for your program.  If needed, they will be built on-the-fly; otherwise, they will be restored from previously-built archives.

This works around long-standing cabal-install issues:

See the Haskell Language source code for an example:

See the Halcyon reference for details:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4203 bytes
Desc: not available
URL: <>

More information about the ghc-devs mailing list