coup is a simple program for managing library dependencies in Haskell cabal projects and building your cabal packages. It lets you specify an exact list of Haskell library versions that the project is allowed to use, and maintains a local ghc database and cabal settings for that list.
- works relatively seamlessly around cabal.
- projects are uniquely identified by the package list provided by the user.
- only packages from the project’s package list may be installed.
- any number of versions of a project may exist, each one with its own package list.
- separate ghc database and settings for each project.
- shared package cache between all projects, to avoid downloading duplicate tarballs.
- identical installed libraries are shared between projects.
coup requires a patched version of Cabal and cabal-install, available as submodules in the coup repository.