主な質問: パッケージの複数のバージョンがインストールされています。依存関係としてパッケージ内のモジュールを持つモジュールを ghc/ghci でコンパイルまたは実行するときに、どのバージョンが使用されているかを知るにはどうすればよいですか?
関連する質問:パッケージの複数のバージョンで満たすことができる依存関係を持つ cabal パッケージをインストールする場合。どのバージョンが使用されますか? 最新バージョン?
ghc は、最新のバージョン (つまり、最も高いバージョン番号) とリンクすることを好みます。
cabal とリンクする場合、.cabal ファイルで指定されているバージョンを解決します (上限が指定されていない場合は新しいバージョンが優先されます)。
制約が与えられない限り、cabal-install は最新バージョンを優先します。
制約が存在する場合、依存関係の解決は NP-completeになり、cabal はソルバーに依存して満足のいくパッケージ割り当てを見つけます。
インストールされているパッケージを実際に確認し、それらが使用されているかどうかを制御するための便利なコマンド:
ghc-pkg list
ghc-pkg register
ghc-pkg unregister