<div dir="ltr"><br><br><div class="gmail_quote">On Tue, Apr 21, 2015 at 12:05 PM Yitzchak Gale <<a href="mailto:gale@sefer.org">gale@sefer.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Michael Snoyman wrote:<br>
> Sorry to confuse this thread with a second Michael.<br>
><br>
> 1) there's a very good use case that's currently excluded by the<br>
> API, and (2) Michael Sloan figured out some great ways to minimize the<br>
> breakage. You could even argue that this proposal has *no* API breakage.<br>
<br>
Perhaps I missed it, but wouldn't this create major breakage<br>
across hackage for 7.8 and before?<br>
<br>
We will certainly be using 7.8 for years to come, at least for<br>
older versions of our products that we must continue to<br>
support. In fact, we are only now able to reduce<br>
our use of 7.6 to a fairly low (but non-zero) level.<br>
<br>
This cycle will likely be even longer than usual for the<br>
7.10 upgrade due to the inclusion of the FTP breaking<br>
changes which make upgrading much more difficult.<br>
<br>
I certainly hope that most of the ecosystem will continue<br>
to support GHC versions going back at least one or two<br>
major versions, as it always has in the past.<br>
<br>
All that said, I am in favor of this change - it is a great<br>
design. But I would strongly oppose doing it immediately<br>
unless there is some plan to allow continued support<br>
of recent pre-7.10 GHC versions in the ecosystem.<br>
<br>
Thanks,<br>
Yitz ("you can call me Michael")<br></blockquote><div><br></div><div>I may also be missing something here, but my read of Michael Sloan's proposal would mean that code written against the GHC 7.8/7.10 (and prior) API would continue to compile against GHC 7.12 and forward. It's true that code using the new functionality added in 7.12 would be unable to compile with 7.10 and earlier, but that's always the case when expanding the API (making this backwards compatible, or in PVP terms a minor version bump).<br></div><div><br></div><div>The only catch here is that the proposal simulates the old API by using pattern synonyms. That means that the data types have in fact changed. But I'm so far unable to come up with an example that compiles with 7.8/7.10 but not with this new API (with the caveat that I'm no expert in pattern synonyms and therefore I may be misunderstanding something).</div><div><br></div><div>I may also not be addressing what you're thinking of as the "major breakage." If so, can you clarify?</div><div><br></div><div>Michael</div></div></div>