<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body>
<p>On 6/16/21 12:00 PM, Simon Peyton Jones via ghc-devs wrote:<br>
</p>
<blockquote type="cite"
cite="mid:AM5PR83MB03535D5EF2252800C1C66143AD0F9@AM5PR83MB0353.EURPRD83.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}.MsoPapDefault
{mso-style-type:export-only;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;}div.WordSection1
{page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p>I’m sorry to hear that Chris.
It’s exactly backwards from what I would expect – the typing
rules with simple subsumption are, well, simpler than those
for complicated subsumption, and so one might hope that your
intuition had fewer complexities to grapple with.<o:p></o:p>
</p>
</div>
</blockquote>
<p>In <a class="moz-txt-link-freetext" href="https://richarde.dev/papers/2021/stability/stability.pdf">https://richarde.dev/papers/2021/stability/stability.pdf</a> it is
written</p>
<blockquote>
<p><span style="left: 75.8817px; top: 855.205px; font-size:
16.6043px; font-family: sans-serif; transform:
scaleX(0.802469);" dir="ltr">The analysis around stability in
this paper strongly suggests that GHC should use the lazy,
shallow </span><span style="left: 76.38px; top: 875.132px;
font-size: 16.6043px; font-family: sans-serif; transform:
scaleX(0.787734);" dir="ltr">approach to instantiation. Yet
the struggles with lazy instantiation above remain. In order
to simplify </span><span style="left: 76.38px; top:
895.057px; font-size: 16.6043px; font-family: sans-serif;
transform: scaleX(0.790701);" dir="ltr">the implementation,
GHC has recently (for GHC 9.0) switched to use exclusively
eager instantiation.</span><span style="left: 75.8817px; top:
914.982px; font-size: 16.6043px; font-family: sans-serif;
transform: scaleX(0.816653);" dir="ltr">This choice sacrifices
stability for convenience in implementation.</span></p>
</blockquote>
<p>I think the principles outlined in the paper are very good, and
explain the queasiness some users may feel in 9.0<br>
</p>
<blockquote type="cite"
cite="mid:AM5PR83MB03535D5EF2252800C1C66143AD0F9@AM5PR83MB0353.EURPRD83.prod.outlook.com">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:36.0pt">But wouldn't it
be possible to choose a desugaring with seq that doesn't do
so?<o:p></o:p></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">I
just don’t know how to do that. Maybe someone else does.
</span></p>
</div>
</blockquote>
<p>Is it not</p>
<p> f `seq` \x -> f x</p>
<p>and similar? I haven't thought about the issue in a while or in
very much depth, but when I first discussed the proposal years
back with some other people at work, they spit-balled the same
counter-proposal.</p>
<p>----</p>
<p>Having little "skin in the game" as I haven't yet ported any
serious programs over to 9.0, I suppose I am glad the
experimentation with QuickLook is happening, and OK that our
accepting on-par fewer programs now opens design space for later
(i.e. we got the breakage out of the way.) But I certainly think
there are improvements in the spirit outlined in Richard's paper
to be done down the road.</p>
<p>John<br>
</p>
</body>
</html>