Допустим, у меня не установлена программа HsColour и я устанавливаю QuickCheck.
$ cd /tmp/
$ cabal get QuickCheck
$ cd QuickCheck
$ cabal install
...
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
...
Installed QuickCheck-2.7.6
Если я снова установлю QuickCheck, он не перекомпилируется, то есть я не вижу строк
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
но если я установлю текущую версию HsColour (1.20.3) и снова установлю QuickCheck, QuickCheck будет перекомпилирован.
QuickCheck также перекомпилируется, если
- Устанавливаю HsColour,
- Я устанавливаю QuickCheck,
- Я удалил двоичный файл HsColour и
- Устанавливаю QuickCheck.
Я тестировал это поведение с помощью GHC 7.8.3, Cabal 1.20.0.2 и cabal-install 1.20.0.3, а также разрабатываемых версий Cabal и cabal-install (используя https://github.com/haskell/cabal/commit/5ef7d84bb25cc5d53ad124978922f2c96bedb7d4).