[[  My point is on cabal, but I had to give some examples. I&#39;m very sorry for the authors of the packages listed below. ]]<br>The story is :<br>  I was trying to install a package from hackage [holumbus-mapreduce]. I use ghc-7.2.1 and had a hard time to install the packages that depends on.<br>
  [holumbus-mapreduce] depends on [holumbus-distribution]. [holumbus-distribution] depends on [hxt] and [hxt-regex-xmlschema]. etc.. There are tens of depends that drive me into an infinite &#39;step in&#39;.<br clear="all">
  If the dependence mechanism of cabal packages is good enough and the author of the package built it, the success can be repeat. but it not.<br>a example:<br>   1.<br>      There are hxt packages with version 9.* in hackage now.<br>
       [holumbus-distribution] says that it depends on    &quot;hxt &gt;= 8.2&quot;.<br>      But I had to add &quot;&lt; 9&quot; to make it compiled. Maybe when holumbus-distribution was released, there was no hxt 9.*.<br>
   2.<br>      some packages depends on &quot;haskell98 &lt;2&quot;<br>      I just removed this line, and it compiled, and id I use &quot;haskell98&quot;, the newer &quot;haskell98-2.*&quot; will clash with new &quot;base&quot;<br>
   3.<br>       here is a piece of message from `runhaskell Setup configure`<br>       &quot;&quot;&quot; <br>       Configuring Holumbus-Distribution-0.1.1...<br>       Warning: This package indirectly depends on multiple versions of the same<br>
       package readline-1.0.1.0 requires process-1.0.1.5<br>       package hslogger-1.1.5 requires process-1.0.1.5<br>       package haskell98-2.0.0.0 requires process-1.1.0.0<br>       &quot;&quot;&quot;<br>    but finally I found that &quot;readline&quot; does not refuse to be compiled with newer &quot;process&quot; at all, I use --reinstall to adjust &quot;readline&quot; and &quot;hslogger&quot; play with &quot;process-1.1.0.0&quot;<br>
    It is like C++&#39;s multi-deriving or something like that, I&#39;m not sure of the technique word.   A what to contain B,C ; B contains D&#39; and C contains D&#39;&#39; ; but there can be only One D in A.<br><br>All I did is download the all packages, edit its depends: and compile and install it.<br>
<br>If Cabal can remember some certain package-version combination of the successful builds, Sure It will make hackage more available to users.<br>based on some success build, it can also try to make promotion to depends-packages, and provides newest &amp; can build packages.<br>
<br>Cheers!<br><br>-- <br><br>       Wu Xingbo<br><br>