cabal sandboxというのはPythonでいうvenvみたいなもの。グローバルのライブラリとかパッケージとかを汚染せずに、そのプロジェクトだけのisolateされた環境の中でパッケージのインストールとかを行える。
公式サイトの説明は以下。 https://github.com/creswick/cabal-dev Cabal User Guide
使い方は簡単で、プロジェクトのフォルダで(IntelliJ上で開発している場合はプロジェクトのルートフォルダの直下で)
cabal sandbox init
とすると.cabal-sandbox
というディレクトリとcabal.sandbox.config
というコンフィグファイルが作られて、ここでcabalするぶんにはすべてのパッケージが.cabal-sandbox以下にインストールされてコンピュータのグローバルなパッケージ環境には影響しない。
プロジェクトのcabalファイルにパッケージは羅列してあるはずなので後はいつもどおり
cabal install --only-dependencies
とすればいつもどおり必要なパッケージがするするとインストールされていく。
IntelliJのHaskellプラグインでも これ標準になんないかなあ。