<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div>What about dependency interactions? If you depend on foo and bar there might be versions of foo and bar that don&#39;t build together that you might not discover by varying their versions independently.</div>

</div></blockquote><div><br>Indeed.  But assuming for a moment that foo &amp; bar have correctly specified their own dependency bounds won&#39;t the constraint solver make up for some of this deficiency?  I.e. you specify too low a version for foo but the range gets further restricted by cabal&#39;s constraint solver and you end up ok?<br>

<br>I proposed the greedy approach just because I think given current compile times it wouldn&#39;t be possible to try all combinations ;-). **<br><br>Though I suppose a decent heuristic would compute the total # of combinations and -- if it is manageable -- do them all.  If not, either resort to greedy/independent testing or bring out the more complex strategies for sampling the version space... <br>

<br>But enough idle speculation!  I know people have studied this problem in earnest and I haven&#39;t read any of that.<br><br>-Ryan<br><br>** P.S. If one could carefully control how the compiler output is managed I guess you could cut way down on the number of actual module compilations to explore a given set of combinations.  (A particular module should only need to be compiled once for each unique combination of its own dependencies present in the set of combinations being examined, right?)<br>

</div></div>