<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jan 31, 2013 at 3:28 PM, Herbert Valerio Riedel <span dir="ltr">&lt;<a href="mailto:hvr@gnu.org" target="_blank">hvr@gnu.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Michael Snoyman &lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt; writes:<br>
<br>
<br>
[...]<br>
<div class="im"><br>
&gt; * Release a new version of network (1.5) that does not include the<br>
&gt; Network.URI module.<br>
&gt; * Create a network-uri package that uses conditionals in the cabal file.<br>
&gt;     * If it&#39;s compiled against network version 1.4 or earlier, it doesn&#39;t<br>
&gt; provide any modules.<br>
&gt;     * If it&#39;s compiled against network 1.5 or later, it provides the<br>
&gt; Network.URI module.<br>
&gt;<br>
&gt; This way, there&#39;s only ever one package which is providing Network.URI.<br>
<br>
</div>Alas, this causes some of the conditional-API issues mentioned in [1],<br>
specifically the following situation:<br>
<br>
Say, I have a package which specifies only its dependancy on<br>
&#39;network-uri&#39; (but not &#39;network&#39;) for its &#39;Network.URI&#39; module, then the<br>
package compilation breaks depending on the actual version of the<br>
&#39;network&#39; package linked against.<br>
<br>
<br>
<br>
 [1]: <a href="http://www.haskell.org/pipermail/libraries/2012-November/018750.html" target="_blank">http://www.haskell.org/pipermail/libraries/2012-November/018750.html</a><br>
</blockquote></div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra" style>That&#39;s true, but I don&#39;t think we have *any* means at our disposal of creating a migration plan that has zero impact on users. The reason I suggested my approach is that the only change users would need to make is to add network-uri to their dependency list. You&#39;re correct that it&#39;s possible that a user could depend exclusively on network-uri and thereby cause trouble for users of the older network package, but I would argue that&#39;s an acceptable tradeoff in this case.</div>

<div class="gmail_extra" style><br></div><div class="gmail_extra" style>Michael</div></div>