On Thu, Jan 31, 2013 at 10:05 PM, Michael Snoyman <span dir="ltr">&lt;<a href="mailto:michael@snoyman.com" target="_blank">michael@snoyman.com</a>&gt;</span> wrote:<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div class="gmail_extra">Many users won&#39;t be able to upgrade to the new network library immediately. However, adding an extra dependency on (an essentially empty) network-uri is perfectly feasible. My approach makes it possible for library authors to make their code compatible with both network 1.4 and 1.5 with just a single line change.</div>



<div class="gmail_extra"><br></div><div class="gmail_extra">If you want to see examples that were more painful from the author perspective, consider the previous merging of network and network-bytestring, or the blaze-markup/blaze-html split. Both of them required adding cabal flags and conditionals to every user package that wanted to work with both versions, which definitely caused some headaches.</div>

</div></blockquote><div><br></div><div>Someone ought to write a &quot;How to split a package&quot; and a &quot;How to merge two packages&quot; guide that carefully lists out the steps and the pros and cons of the approach.</div>

<div><br></div><div>-- Johan</div><div> </div></div>