<div><div dir="auto">All good :) , complicated stuff is hard to communicate.  I and likely others always benefit from more practice and folks comfortably asking questions spurred by ambiguity </div></div><div dir="auto"><br></div><div dir="auto">By migration in this context I think we all mean / desire a way to change a name / definition in such a way that the new name / interface works,  but also that all previous code still works, as well as code that’s a combination of both old and new also works.  </div><div dir="auto"><br></div><div dir="auto">Such a mechanism or set of such tools (vaguely described as they are here ), is what I mean. </div><div dir="auto"><br></div><div dir="auto">So  we mean migration of meaning or underlying language spec, while not breaking perfectly great code </div><div><br><div class="gmail_quote"><div dir="ltr">On Sat, Feb 9, 2019 at 3:19 PM Elliot Cameron <<a href="mailto:eacameron@gmail.com">eacameron@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto"></div>In that case I must have misunderstood what the automatic migration would be. </div><div dir="auto"><br><div class="gmail_quote"><div dir="ltr">On Sat, Feb 9, 2019, 2:56 PM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" rel="noreferrer" target="_blank">carter.schonwald@gmail.com</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir="auto">No... the point of such an extension would be that no code that already works would need to change.  Except to the extent </div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">If I’m not understanding your misapprehension,</div><div dir="auto">Could you lay out a specific micro example ?</div></div><div><br><div class="gmail_quote"><div dir="ltr">On Sat, Feb 9, 2019 at 8:07 AM Elliot Cameron <<a href="mailto:eacameron@gmail.com" rel="noreferrer noreferrer" target="_blank">eacameron@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Even with a tool to automate it I know many authors would be very disturbed by such a huge diff in their code. On larger teams with many active branches this kind of sweeping change is quite difficult to maneuver.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 8, 2019, 4:42 PM Bardur Arantsson <<a href="mailto:spam@scientician.net" rel="noreferrer noreferrer" target="_blank">spam@scientician.net</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 08/02/2019 19.45, Edward Kmett wrote:<br>
> If we had a way (say a pragma or other syntactic form) to say that fmap<br>
> and map were somehow the 'same name' or something and so that defining<br>
> one was the same as defining the other, so that this tax didn't exist, I<br>
> could see how we might get there.<br>
> <br>
<br>
+1 for "the way"<br>
<br>
Most of these 'migrations' which are mostly syntactic should be<br>
automatable and really should be *automated* via some sort of tool<br>
support. I still haven't experienced a language where this sort of thing<br>
"just works", but IMO gofix and scalafix have sort of the right idea.<br>
<br>
(In Haskell we have the luxury of 'only' having to guarantee source<br>
compatibility.)<br>
<br>
If people are worried about having to add CPP sections, then I would<br>
submit it's very possible to convert diffs (between pre-fix to post-fix)<br>
to CPP. That, or one can usually create a *-compat library which<br>
contains the CPP and just use that as a dependency. Ugly, yes, but in<br>
practical terms it seems to be quite simple.<br>
<br>
Regards,<br>
<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>