On Thu, Jan 31, 2013 at 10:05 PM, Michael Snoyman <span dir="ltr"><<a href="mailto:michael@snoyman.com" target="_blank">michael@snoyman.com</a>></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'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 "How to split a package" and a "How to merge two packages" 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>