para mac instalar descargar haskell cabal

haskell - mac - instalar cabal



Conjunto independiente de paquetes cabal (1)

Cabal se está moviendo a un modelo más similar al NPM, lo que hará que la resolución de dependencia sea mucho más simple. Cada paquete instalado guardará una copia local de sus dependencias, intercambiando un poco de espacio en disco para el dolor de cabeza de la instalación de múltiples paquetes globales con demandas de versiones de paquetes mutuamente excluyentes.

Según este modelo, el subconjunto de paquetes requeridos para instalar un conjunto de paquetes == ese conjunto. Aunque uno puede ser una dependencia del otro, cada copia instalada guardará su propia copia local de sus dependencias, por lo que Cabal ya no considerará la dependencia instalada de esa manera.

Dado un conjunto de paquetes cabal, ¿hay alguna manera de calcular automáticamente un subconjunto de paquetes independientes? En otras palabras, subconjunto de paquetes que serán suficientes para instalarlos todos.

Para [network,parsec] la respuesta es [network] porque la network depende de parsec .

Para [network,containers] la respuesta es [network,containers] porque:

  • network no depende de los containers
  • todas las dependencias de la network no dependen de los containers
  • containers no depende de la network
  • todas las dependencias de los containers no dependen de la network

No es difícil encontrar la respuesta para 2 paquetes. Lo que es realmente interesante es encontrar un conjunto independiente para [containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck] .

De la respuesta espero alguna función basada en la biblioteca cabal como ∷ [Packages] → IO [Packages] .