<div dir="ltr"><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">> avoiding these subtle bugs requires at least a full GHC release cycle</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">Now that GHC is on a 6 month release cycle this seems preferable to waiting 3-5 years.</div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 13, 2018 at 2:52 PM, David Feuer <span dir="ltr"><<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>It would let us have some cake. Users would be able to test against 0.9, in theory. But they'd have to do it intentionally. And Stack-based projects would probably need some shenanigans to deal with a version of containers that doesn't come with GHC. So I really think that avoiding these subtle bugs requires at least a full GHC release cycle.<span class=""><br><div class="gmail_extra"><br><div class="gmail_quote">On Feb 13, 2018 5:48 PM, "Herbert Valerio Riedel" <<a href="mailto:hvriedel@gmail.com" target="_blank">hvriedel@gmail.com</a>> wrote:<br type="attribution"><blockquote class="m_7479105726757502914quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div class="m_7479105726757502914quoted-text"><br>
On 2018-02-13 at 17:41:25 -0500, David Feuer wrote:<br>
> We may not have to be *quite* as long-winded as I initially suggested,<br>
> but I don't think your way is sufficiently long-winded. The advantage<br>
> of removing the instances first and then adding them back is that the<br>
> version(s) without the instances will make compilation of every single<br>
> package that uses them fail. The way you suggest, if someone has a<br>
> package using containers or unordered-containers, they don't even have<br>
> a simple way to find out whether they need to make changes. On the<br>
> opposite side, Chris Wong's suggestion would let us be very explicit,<br>
> with a type error that warns users that the instance is missing<br>
> *because it is changing* and that no code using the instance will work<br>
> for both 0.* and 1.* versions.<br>
<br>
</div>Alright, then let's do a little Gedankenexperiment; what if you release<br>
a containers-0.9.0.0 (which drops the instances) and a<br>
containers-1.0.0.0 (which 'adds back' the desired new instances) on the<br>
same day!<br>
<br>
...wouldn't this allow us to have the cake and eat it too? ;-)<br>
</blockquote></div><br></div></span></div></div>
<br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>