Simon Peyton-Jones,  if you say:<br>      &quot;Under Plan A, some Hackage packages will become un-compilable,<br>
       and will require source code changes to fix them.  I do not have<br>
        any idea how many Hackage packages would fail in this way.&quot;<br>If you don&#39;t have any idea &quot;how many Hackage packages would fail this way&quot; then it doesn&#39;t make sense to this Noob to go Plan A.  I would prefer everything is &quot;explicit&quot; rather than some &quot;implicit&quot; and some &quot;explicit&quot;. It will be very frustrating to debug in such case (implicit/explicit).   Thank you. Simon.  <br>
<br><div class="gmail_quote">2011/6/17 Jacques Carette <span dir="ltr">&lt;<a href="mailto:carette@mcmaster.ca">carette@mcmaster.ca</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 17/06/2011 10:47 AM, Simon Peyton-Jones wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
But Plan A is simpler. And by breaking packages it will encourage [force] libraries that use a mixture of H98 and more modern modules to move towards the more modern story.<br>
</blockquote>
<br></div>
I favour Plan A.<br>
<br>
Reasoning:<br>
For many years of my previous professional life, I had to live with extreme backwards compatibility in the code base.  This introduced a huge amount of inertia, to the point where past design mistakes became entrenched as &#39;features&#39;.  Forward progress became glacial.  Very bad.<br>

<br>
Your plan A on the other hand strikes a really good balance: the only libraries affected are those which mix H98 and more modern modules.  This means that the authors are already beyond Haskell 98, and realize that there is real value to go beyond that.  So they should be reasonably amenable to continue to move forward.<br>

<br>
On the other hand, those who were very careful to stick to pure Haskell 98 (for whatever reason), have a very clear path for their code to continue to stay functional.  They get all the backwards compatibility they desired when they chose to stick to pure Haskell 98.  Plan B is actually more fragile in that respect, in that if they forget to be really really explicit about their code being pure Haskell 98, the resulting compilation errors do not make it obvious that that is actually the problem.  This will in fact only get worse as time goes by.<br>
<font color="#888888">
<br>
Jacques</font><div><div></div><div class="h5"><br>
<br>
<br>
______________________________<u></u>_________________<br>
Glasgow-haskell-users mailing list<br>
<a href="mailto:Glasgow-haskell-users@haskell.org" target="_blank">Glasgow-haskell-users@haskell.<u></u>org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/glasgow-<u></u>haskell-users</a><br>
</div></div></blockquote></div><br>