<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I had another thought on my drive home: why do we need to sort out Constraint v Type for 8.2? I have the patch, and it's essentially all set. But it weakens equality in a way that's troublesome for D2038 and introduces heterogeneous axioms, which are strange, ill-understood beasts. And I don't think we need it.</div><div class=""><br class=""></div><div class="">On the other hand, D2038 is essential for the new Typeable, because it's the only way we can give (->) a proper kind.</div><div class=""><br class=""></div><div class="">So, I propose:</div><div class=""> 1. Hold off on Constraint v Type until after the branch is cut.</div><div class=""> 2. Do what we can to mitigate Constraint v Type confusion vis-a-vis Typeable. (For example, make sure that there aren't Typeable instances for both, and have TcTypeable provide the Type instance whenever the Constraint instance is requested.)</div><div class=""> 3. Advertise that GHC will be a little confused on this point, and that, as far as Typeable is concerned, Constraint and Type are synonymous.</div><div class=""> 4. On the Constraint v Type patch, restore the full power of KindCo. This makes the type system broken, but I don't think the sky will come crashing down.</div><div class=""> 5. Merge Constraint v Type after the branch is cut. This will make GHC HEAD unsound in a new way, but no one will notice unless they try.</div><div class=""> 6. File a priority-highest bug to eliminate newtype-classes (which beget heterogeneous axioms in the Constraint/=Type world).</div><div class=""> 7. Finish the first-class reification design and implement before 8.4.</div><div class=""> 8. Remove newtype-classes, thus eliminating heterogeneous axioms and the unsoundness mentioned in (5).</div><div class=""><br class=""></div><div class="">This route seems, to me, far preferable to monkeying around with roles and such in ways that we have no assurances are sound. (Remember, roles are there to keep the type system safe and sound. They were not added simply to annoy everyone, though they accomplish that goal quite nicely.)</div><div class=""><br class=""></div><div class="">What do we think? It's not ideal, but I think it's the best of suboptimal alternatives. And it's no worse than 8.0 w.r.t. Constraint v Type.</div><div class=""><br class=""></div><div class="">Richard</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 31, 2017, at 5:56 PM, Richard Eisenberg <<a href="mailto:rae@cs.brynmawr.edu" class="">rae@cs.brynmawr.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On Jan 31, 2017, at 5:41 PM, Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" class="">simonpj@microsoft.com</a>> wrote:</div><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-family: Calibri, sans-serif; font-size: 11pt;"> </span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">But that can only happen if `(->)` has suitable roles.<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">What if it doesn’t?</span></div></div></div></blockquote><div class=""><br class=""></div><div class="">The “correct” roles for (->) of the kind you gave is `nominal nominal nominal nominal representational representational`. That is, the dependent arguments are nominal, and the others are representational. This is because all kind-level coercions are nominal. You seem to be suggesting giving (->) different roles. I honestly don’t know what that would mean -- normally, GHC prevents you from specifying a weaker role than it would infer. It smells pretty foul to me, but I can’t quite put my finger on what would go wrong at the moment.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">What if we just had an axiom<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class="">axArrow v :: (->) Vanilla v<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class=""> ~R (->) Constraint v</span></div></div></div></blockquote><div class=""><br class=""></div><div class="">I think we’d also need one for results... but maybe not.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class=""><o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">or something like that. Then we get<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class="">[W] g : (->) Vanilla Vanilla Ptr Ptr (C a) Int<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class=""> ~R (->) Constraint Vanilla Ptr Ptr a Int<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">We decompose partly and solve thus<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class="">g = (axArrow Vanilla) <Ptr> <Ptr> axC <Int></span></div></div></div></blockquote><div class=""><br class=""></div><div class="">And this works only if we weaken (->)’s roles.</div><div class=""><br class=""></div><div class="">This whole road just feels like the wrong way, as soon as we started contemplating a heterogeneous axiom, which are ruled out in the literature, even when we have kind equalities.</div><div class=""><br class=""></div><div class="">I think the Right Answer is to get rid of newtype-classes & fix reify, and I’m worried that anything short of that will fail catastrophically at some point. Otherwise, it’s patches on top of patches.</div><div class=""><br class=""></div><div class="">I don’t think there is disagreement here, but there is the question about what to do for 8.2.... and unless we’re ready to roll out the new reify, I think the best course of action is to delay the new Typeable and all this Constraint v Type stuff until 8.4. (The new levity polymorphism stuff already committed is hunky-dory.)</div><div class=""><br class=""></div><div class="">Richard</div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="" style="margin: 0cm 0cm 0.0001pt 36pt; font-size: 10pt; font-family: 'Courier New';"><span class=""><o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">Simon<o:p class=""></o:p></span></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><a name="_MailEndCompose" class=""><span class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></a></div><span class=""></span><div class="" style="border-style: none none none solid; border-left-color: blue; border-left-width: 1.5pt; padding: 0cm 0cm 0cm 4pt;"><div class=""><div class="" style="border-style: solid none none; border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: 3pt 0cm 0cm;"><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b class=""><span lang="EN-US" class="" style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span lang="EN-US" class="" style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span><a href="mailto:noreply@phabricator.haskell.org" class="" style="color: purple; text-decoration: underline;">noreply@phabricator.haskell.org</a><span class="Apple-converted-space"> </span>[<a href="mailto:noreply@phabricator.haskell.org" class="" style="color: purple; text-decoration: underline;">mailto:noreply@phabricator.haskell.org</a>]<span class="Apple-converted-space"> </span><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>31 January 2017 12:51<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" class="" style="color: purple; text-decoration: underline;">simonpj@microsoft.com</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>[Differential] [Commented On] D2038: [WIP] TysPrim: Generalize kind of (->)<o:p class=""></o:p></span></div></div></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p class=""> </o:p></div><table class="MsoNormalTable" border="0" cellspacing="5" cellpadding="0"><tbody class=""><tr class=""><td class="" style="padding: 0.75pt;"><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 12pt; font-family: 'Times New Roman', serif;">goldfire added a comment.<span class="Apple-converted-space"> </span><o:p class=""></o:p></p><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><a href="https://phabricator.haskell.org/D2038" class="" style="color: purple; text-decoration: underline;"><b class=""><span class="" style="color: rgb(70, 76, 92); background-color: rgb(247, 247, 249); text-decoration: none;">View Revision</span></b></a><o:p class=""></o:p></div></td></tr></tbody></table><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></p><div class=""><div class=""><blockquote class="" style="border-style: none none none solid; border-left-color: rgb(140, 152, 184); border-left-width: 2.25pt; padding: 0cm 0cm 0cm 9pt; margin: 3pt 0cm 9pt;"><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 12pt; font-family: 'Times New Roman', serif; background-color: rgb(248, 249, 252);"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif; color: rgb(107, 116, 140);">In<span class="Apple-converted-space"> </span><a href="https://phabricator.haskell.org/D2038#89360" class="" style="color: purple; text-decoration: underline;"><b class=""><span class="" style="border: 1pt none windowtext; padding: 0cm; background-color: rgb(231, 231, 231); text-decoration: none;">D2038#89360</span></b></a>,<span class="Apple-converted-space"> </span><a href="https://phabricator.haskell.org/p/simonpj/" class="" style="color: purple; text-decoration: underline;"><b class=""><span class="" style="color: rgb(25, 85, 141); border: 1pt none windowtext; padding: 0cm; background-color: rgb(241, 247, 255);">@simonpj</span></b></a><span class="Apple-converted-space"> </span>wrote:<o:p class=""></o:p></span></p></div><div class=""><p class="" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif; background-color: rgb(248, 249, 252);"><i class=""><span class="" style="color: rgb(107, 116, 140);">To avoid being able to extract<span class="Apple-converted-space"> </span></span></i><tt class="" style="font-family: 'Courier New';"><i class=""><span class="" style="font-size: 10pt; color: rgb(107, 116, 140); background-color: rgb(235, 235, 235);">ContraintRep ~R LiftedPtrRep</span></i></tt><i class=""><span class="" style="color: rgb(107, 116, 140);"><span class="Apple-converted-space"> </span>we decided to weaken one of the coercion constructors, the one that gets a kind coercion from a type coercion. We don't need it, and it's awkward here.<o:p class=""></o:p></span></i></p></div></blockquote><p class="" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif;">The problem is that we need it with this patch. I was able to weaken this coercion constructor (<tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">KindCo</span></tt>) in my patch<a href="https://phabricator.haskell.org/D3023" class="" style="color: purple; text-decoration: underline;"><b class=""><span class="" style="border: 1pt none windowtext; padding: 0cm; background-color: rgb(231, 231, 231); text-decoration: none;">D3023</span></b></a>, but this patch uses it in a fundamental way that we can't get around. To wit:<o:p class=""></o:p></p><div class="" style="margin-top: 9pt; margin-bottom: 9pt;"><pre class="" style="margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New'; line-height: 11.25pt;"><span class="" style="font-size: 8.5pt; font-family: Consolas;">class C a where<o:p class=""></o:p></span></pre><pre class="" style="margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New'; line-height: 11.25pt;"><span class="" style="font-size: 8.5pt; font-family: Consolas;"> meth :: a<o:p class=""></o:p></span></pre><pre class="" style="margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New'; line-height: 11.25pt;"><span class="" style="font-size: 8.5pt; font-family: Consolas;"><o:p class=""> </o:p></span></pre><pre class="" style="margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New'; line-height: 11.25pt;"><span class="" style="font-size: 8.5pt; font-family: Consolas;">axC :: (C a :: Constraint) ~R (a :: Type)<o:p class=""></o:p></span></pre></div><p class="" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif;">Now, we wish to cast<span class="Apple-converted-space"> </span><tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">C a -> a</span></tt><span class="Apple-converted-space"> </span>to<span class="Apple-converted-space"> </span><tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">a -> a.</span></tt>. This cast will look like<span class="Apple-converted-space"> </span><tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">(->) ?? <LiftedRep> axC <a></span></tt>. What goes in the<tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">??</span></tt>? It's got to be something involving<span class="Apple-converted-space"> </span><tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">KindCo axC</span></tt>, which is disallowed as per our earlier decision. Therein lies the problem.<o:p class=""></o:p></p><p class="" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif;">As for<span class="Apple-converted-space"> </span><tt class="" style="font-family: 'Courier New';"><span class="" style="font-size: 10pt; background-color: rgb(235, 235, 235);">reify</span></tt>: Yes, I'm agreed with that email. But is that implemented yet? Is a design settled on? I don't see a ghc-proposal. Are we wiling to take a dependency on that work in order to get this done?<o:p class=""></o:p></p><p class="" style="margin-right: 0cm; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman', serif;">To be clear, my chief worry isn't that these problems cannot be solved by any means -- I'm just worried about the timing of this all and our desire to get 8.2 out the door.<o:p class=""></o:p></p></div></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong class=""><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">REPOSITORY</span></strong><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""></o:p></span></div><div class=""><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">rGHC Glasgow Haskell Compiler<o:p class=""></o:p></span></div></div></div></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong class=""><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">REVISION DETAIL</span></strong><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""></o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><a href="https://phabricator.haskell.org/D2038" class="" style="color: purple; text-decoration: underline;">https://phabricator.haskell.org/D2038</a><o:p class=""></o:p></span></div></div></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong class=""><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">EMAIL PREFERENCES</span></strong><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""></o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><a href="https://phabricator.haskell.org/settings/panel/emailpreferences/" class="" style="color: purple; text-decoration: underline;">https://phabricator.haskell.org/settings/panel/emailpreferences/</a><o:p class=""></o:p></span></div></div></div><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></span></div><div class=""><div class="" style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong class=""><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">To:<span class="Apple-converted-space"> </span></span></strong><span class="" style="font-size: 10pt; font-family: Calibri, sans-serif;">bgamari, goldfire, austin<br class=""><strong class=""><span class="" style="font-family: Calibri, sans-serif;">Cc:<span class="Apple-converted-space"> </span></span></strong>simonpj, RyanGlScott, thomie</span></div></div></div></div></div></blockquote></div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ghc-devs mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:ghc-devs@haskell.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">ghc-devs@haskell.org</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a></div></blockquote></div><br class=""></body></html>