Учитывая набор пакетов cabal, существует ли способ автоматически вычислять подмножество независимых пакетов? Другими словами, подмножество пакетов, которое будет достаточным для их установки.
Для [network,parsec]
ответ [network]
, потому что он network
зависит от parsec
.
Для [network,containers]
ответ [network,containers]
, потому что:
-
network
не зависит отcontainers
- все
network
зависимости не зависят отcontainers
-
containers
не зависит отnetwork
- все
containers
зависимости не зависят отnetwork
Нетрудно найти ответ на 2 пакета. Что действительно интересно, так это найти независимый набор для [containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck]
.
От ответа я ожидаю некоторую функцию, основанную на библиотеке cabal, например ∷ [Packages] → IO [Packages]
.