(Прежде чем я начну: я собираюсь использовать Cabal для всего, у кого есть Cabal, и имеет какое-то отношение к Haskell.)
У вас был обычный "вам нужно обновить X для установки Y, но на днях это снова вызовет проблему зависимости Z", я подумал, что просто спрошу: почему Cabal не был предназначен для полного менеджера пакетов, особенно со следующими функциями:
- Версии: установите несколько версий пакета рядом друг с другом, дайте пакетам выбрать нужные зависимости. Если версия пакета не указана, используйте последнюю доступную версию.
- Обновить - или лучше, также установите последнюю версию.
- Удалить
- Проверка целостности пакета
Вы видите, куда идет этот список. Прямо сейчас, для меня Cabal чувствует себя как-то сложная система сборки (попробуйте выяснить, какая версия Base для вашего пакета требуется, когда вы хотите начать использовать его в первый раз), который поставляется с установщиком пакетного пакета.
Итак, вопрос снова: Почему Кабал не создал полнофункциональную систему сборки/пакета? Я уверен, что было какое-то дизайнерское решение, которое привело к текущему состоянию.
(Этот вопрос несколько вдохновил набросок на Reddit, но вопреки этому парню не значит никого обижать вышеприведенным. ): -)