<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 2, 2021, at 2:10 PM, Alex Rozenshteyn <<a href="mailto:rpglover64@gmail.com" class="">rpglover64@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Oh, I see. That's because this would need to introduce `pack ... as ...` and `open ...` into the core term language, right?</div></div></div></blockquote><div><br class=""></div><div>Exactly, yes.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">My sense is that it shouldn't negatively affect runtime performance of programs without existentials even if implemented naively; does that seem accurate? Not that implementing it, even naively, is a small task. <br class=""></div></div></div></blockquote><div><br class=""></div><div>I would agree with this, too.</div><div><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><blockquote type="cite" class=""><div class="">On Sep 2, 2021, at 2:21 PM, john.ericson <<a href="mailto:john.ericson@obsidian.systems" class="">john.ericson@obsidian.systems</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div class="" style="font-size: 10pt; font-family: Verdana, Arial, Helvetica, sans-serif;"><div id="message" class=""></div>This reminds me...can we do newtype GADTs in certain situations as a stepping stone? I would think that would be purely easier — more nominal, no nice projections but only `case` and skolems which cannot escape.<div class=""><br class=""></div><div class="">Newtype GADTs we're long deemed impossible IIRC, but surely the paper demonstrates that at least some cases should work?<br class=""></div></div></div></div></blockquote><div><br class=""></div><div>I don't quite see how this relates to existentials. Note that the paper does not address e.g. packing equalities in existentials, which would be needed for interacting with GADTs.</div><div><br class=""></div><div>Glad folks are enjoying the paper! :)</div><div><br class=""></div><div>Richard</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><div class="" style="font-size: 10pt; font-family: Verdana, Arial, Helvetica, sans-serif;"><div class=""><div class=""><br id="br3" class=""><div id="signature" class=""></div><div id="content" class=""><br class="">---- On Thu, 02 Sep 2021 14:10:34 -0400 <b class=""><a href="mailto:rpglover64@gmail.com" class="">rpglover64@gmail.com</a> </b>wrote ----<br class=""><br class=""><blockquote class="" style="border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 6px; margin-left: 5px;"><div class=""><div dir="ltr" class=""><div class="">Oh, I see. That's because this would need to introduce `pack ... as ...` and `open ...` into the core term language, right?</div><div class=""><br class=""></div><div class="">My sense is that it shouldn't negatively affect runtime performance of programs without existentials even if implemented naively; does that seem accurate? Not that implementing it, even naively, is a small task. <br class=""></div></div><br class=""><div class="x_104942589gmail_quote"><div dir="ltr" class="x_104942589gmail_attr">On Thu, Sep 2, 2021 at 1:44 PM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>> wrote:<br class=""></div><blockquote class="x_104942589gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class="x_104942589gmail-m_-6333882910795901190WordSection1"><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 36pt;">Of course not. The same was true for QuickLook, though, wasn't it?<u class=""></u><u class=""></u></p><p class="MsoNormal"><span class="">No, not at all.   QuickLook required zero changes to GHC’s intermediate language – it impacted only the type inference system.   Adding existentials will entail a substantial change to the intermediate language, affecting every optimisation pass.<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">Simon<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><div class="" style="border-color: currentcolor currentcolor currentcolor blue; border-style: none none none solid; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;"><div class=""><div class="" style="border-color: rgb(225, 225, 225) currentcolor currentcolor; border-style: solid none none; border-width: 1pt medium medium; padding: 3pt 0cm 0cm;"><p class="MsoNormal"><b class="">From:</b><span class=""> Alex Rozenshteyn <<a href="mailto:rpglover64@gmail.com" target="_blank" class="">rpglover64@gmail.com</a>> <br class=""><b class="">Sent:</b> 02 September 2021 18:13<br class=""><b class="">To:</b> Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>><br class=""><b class="">Cc:</b> GHC developers <<a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a>><br class=""><b class="">Subject:</b> Re: New implementation for `ImpredicativeTypes`<u class=""></u><u class=""></u></span></p></div></div><p class="MsoNormal"><u class=""></u> <u class=""></u></p><div class=""><blockquote class="" style="border-color: currentcolor currentcolor currentcolor rgb(204, 204, 204); border-style: none none none solid; border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;"><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm;">So it’s not just a question of saying “just add that paper to GHC and voila job done”. <u class=""></u><u class=""></u></p></blockquote><div class=""><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm;"><u class=""></u> <u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm;">Of course not. The same was true for QuickLook, though, wasn't it?<u class=""></u><u class=""></u></p></div></div><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm;"><u class=""></u> <u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm;">On Thu, Sep 2, 2021 at 12:42 PM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>> wrote:<u class=""></u><u class=""></u></p></div><blockquote class="" style="border-color: currentcolor currentcolor currentcolor rgb(204, 204, 204); border-style: none none none solid; border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;"><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt; margin-left: 36pt;">If I understand correctly, the recent ICFP paper "<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdl.acm.org%2Fdoi%2Fpdf%2F10.1145%2F3473569&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328916809%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=kioGsomPn8BuvBLQx6KEr5glMTPvw6m93DK%2BGA0lM08%3D&reserved=0" target="_blank" class="">An Existential Crisis Resolved</a>" finally enables this; is that right?<u class=""></u><u class=""></u></p><p class="MsoNormal">It describes one way to include existentials in GHC’s intermediate language, which is a real contribution. <i class="">But it is not a small change</i>.  So it’s not just a question of saying “just add that paper to GHC and voila job done”.<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">Simon<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class="" style="border-style: none none none solid; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt; border-color: currentcolor currentcolor currentcolor blue;"><div class=""><div class="" style="border-style: solid none none; border-width: 1pt medium medium; padding: 3pt 0cm 0cm; border-color: currentcolor;"><p class="MsoNormal"><b class="">From:</b><span class=""> Alex Rozenshteyn <<a href="mailto:rpglover64@gmail.com" target="_blank" class="">rpglover64@gmail.com</a>> <br class=""><b class="">Sent:</b> 02 September 2021 17:10<br class=""><b class="">To:</b> Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>><br class=""><b class="">Cc:</b> GHC developers <<a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a>><br class=""><b class="">Subject:</b> Re: New implementation for `ImpredicativeTypes`</span><u class=""></u><u class=""></u></p></div></div><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">If I understand correctly, the recent ICFP paper "<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdl.acm.org%2Fdoi%2Fpdf%2F10.1145%2F3473569&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328926803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=DtcIgtgrp3zJygorYY32WBKhF40rYtAOhMOOmPWf6pc%3D&reserved=0" target="_blank" class="">An Existential Crisis Resolved</a>" finally enables this; is that right?<u class=""></u><u class=""></u></p></div><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">On Mon, Sep 9, 2019 at 12:00 PM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>> wrote:<u class=""></u><u class=""></u></p></div><blockquote class="" style="border-style: none none none solid; border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin: 5pt 0cm 5pt 4.8pt; border-color: currentcolor currentcolor currentcolor rgb(204, 204, 204);"><div class=""><div class=""><p class="MsoNormal" style="margin-left: 36pt;">Suppose Haskell <i class="">did</i> have existentials;<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">Yes, I think that’s an interesting thing to work on!  I’m not sure what the implications would be.  At very least we’d need to extend System FC (GHC’s intermediate language) with existential types and the corresponding pack and unpack syntactic forms.<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">I don’t know of any work studying that question specifically, but others may have pointers.<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">simon<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class="" style="border-style: none none none solid; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt; border-color: currentcolor currentcolor currentcolor blue;"><div class=""><div class="" style="border-style: solid none none; border-width: 1pt medium medium; padding: 3pt 0cm 0cm; border-color: currentcolor;"><p class="MsoNormal"><b class="">From:</b><span class=""> Alex Rozenshteyn <<a href="mailto:rpglover64@gmail.com" target="_blank" class="">rpglover64@gmail.com</a>> <br class=""><b class="">Sent:</b> 06 September 2019 15:21<br class=""><b class="">To:</b> Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>><br class=""><b class="">Cc:</b> Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" target="_blank" class="">trupill@gmail.com</a>>; GHC developers <<a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a>><br class=""><b class="">Subject:</b> Re: New implementation for `ImpredicativeTypes`</span><u class=""></u><u class=""></u></p></div></div><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Hi Simon,<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">You're exactly right, of course. My example is confusing, so let me see if I can clarify.<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">What I want in the ideal is <code class="">map show [1, 'a', "b"]</code>. That is, minimal syntactic overhead to mapping a function over multiple values of distinct types that results in a homogeneous list. As the reddit thread points out, there are workarounds involving TH or wrapping each element in a constructor or using bespoke operators, but when it comes down to it, none of them actually allows me to say what I <i class="">mean</i>; the TH one is closest, but I reach for TH only in times of desperation.<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">I had thought that one of the things preventing this was lack of impredicative instantiation, but now I'm not sure. Suppose Haskell <i class="">did</i> have existentials; would <code class="">map show @(exists a. Show a => a) [1, 'a', "b"]</code> work in current Haskell and/or in quick-look?<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Tangentially, do you have a reference for what difficulties arise in adding existentials to Haskell? I have a feeling that it would make working with GADTs more ergonomic.<u class=""></u><u class=""></u></p></div></div><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">On Fri, Sep 6, 2019 at 12:33 AM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>> wrote:<u class=""></u><u class=""></u></p></div><blockquote class="" style="border-style: none none none solid; border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin: 5pt 0cm 5pt 4.8pt; border-color: currentcolor currentcolor currentcolor rgb(204, 204, 204);"><div class=""><div class=""><p class="MsoNormal">I’m confused.   Char does not have the type (forall a. Show a =>a), so our example is iill-typed in System F, never mind about type inference.  Perhaps there’s a typo?   I think you may have ment<u class=""></u><u class=""></u></p><p class="MsoNormal">               exists a. Show a => a<u class=""></u><u class=""></u></p><p class="MsoNormal">which doesn’t exist in Haskell.  You can write existentials with a data type<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">data Showable where<u class=""></u><u class=""></u></p><p class="MsoNormal">   S :: forall a. Show a => a -> Showable<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">Then<u class=""></u><u class=""></u></p><p class="MsoNormal">               map show [S 1, S ‘a’, S “b”]<u class=""></u><u class=""></u></p><p class="MsoNormal">works fine today (without our new stuff), provided you say<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">               instance Show Showable where<u class=""></u><u class=""></u></p><p class="MsoNormal">                 show (S x) = show x<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">Our new system can only type programs that can be written in System F.   (The tricky bit is inferring the impredicative instantiations.)<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><p class="MsoNormal">Simon<u class=""></u><u class=""></u></p><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class="" style="border-style: none none none solid; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt; border-color: currentcolor currentcolor currentcolor blue;"><div class=""><div class="" style="border-style: solid none none; border-width: 1pt medium medium; padding: 3pt 0cm 0cm; border-color: currentcolor;"><p class="MsoNormal"><b class="">From:</b><span class=""> ghc-devs <<a href="mailto:ghc-devs-bounces@haskell.org" target="_blank" class="">ghc-devs-bounces@haskell.org</a>> <b class="">On Behalf Of </b>Alex Rozenshteyn<br class=""><b class="">Sent:</b> 06 September 2019 03:31<br class=""><b class="">To:</b> Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" target="_blank" class="">trupill@gmail.com</a>><br class=""><b class="">Cc:</b> GHC developers <<a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a>><br class=""><b class="">Subject:</b> Re: New implementation for `ImpredicativeTypes`</span><u class=""></u><u class=""></u></p></div></div><p class="MsoNormal"> <u class=""></u><u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">I didn't say anything when you were requesting use cases, so I have no right to complain, but I'm still a little disappointed that this doesn't fix my (admittedly very minor) issue:<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fhaskell%2Fcomments%2F3am0qa%2Fexistentials_and_the_heterogenous_list_fallacy%2Fcsdwlp2%2F%3Fcontext%3D8%26depth%3D9&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328936796%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=IFOf9nl11qhDksPnK9jf2HxcHm7QMhVUGJZX%2F%2FOVim4%3D&reserved=0" target="_blank" class="">https://www.reddit.com/r/haskell/comments/3am0qa/existentials_and_the_heterogenous_list_fallacy/csdwlp2/?context=8&depth=9</a><u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">For those who don't want to click on the reddit link: I would like to be able to write something like<code class=""> map show ([1, 'a', "b"] :: [forall a. Show a => a])</code><code class=""><span class="" style="font-size: 10pt; font-family: Arial, sans-serif;">, and have it work.</span></code><u class=""></u><u class=""></u></p></div></div><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">On Wed, Sep 4, 2019 at 8:13 AM Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" target="_blank" class="">trupill@gmail.com</a>> wrote:<u class=""></u><u class=""></u></p></div><blockquote class="" style="border-style: none none none solid; border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin: 5pt 0cm 5pt 4.8pt; border-color: currentcolor currentcolor currentcolor rgb(204, 204, 204);"><div class=""><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Hi all,<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">As I mentioned some time ago, we have been busy working on a new implementation of `ImpredicativeTypes` for GHC. I am very thankful to everybody who back then sent us examples of impredicativity which would be nice to support, as far as we know this branch supports all of them! :)<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">If you want to try it, at<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Ftrupill%2Fghc%2Fcommit%2Fa3f95a0fe0f647702fd7225fa719a8062a4cc0a5%2Fpipelines%3Fref%3Dquick-look-build&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328936796%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=eR1k8ntH2aGT5nTFOQxd86hGr5OxDSjmkxFpy09fGlg%3D&reserved=0" target="_blank" class="">https://gitlab.haskell.org/trupill/ghc/commit/a3f95a0fe0f647702fd7225fa719a8062a4cc0a5/pipelines?ref=quick-look-build</a> you can find the result of the pipeline, which includes builds for several platforms (click on the "Artifacts" button, the one which looks like a cloud, to get them). The code is being developed at <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Ftrupill%2Fghc&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328946794%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=RdfPCIqvBF8VyeuGKmtOBJsnwcPl%2Bya%2B4KLi%2BWfrT3E%3D&reserved=0" target="_blank" class="">https://gitlab.haskell.org/trupill/ghc</a>.<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Any code should run *unchanged* except for some eta-expansion required for some specific usage patterns of higher-rank types. Please don't hesitate to ask any questions or clarifications about it. A merge request for tracking this can be found at <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2Fmerge_requests%2F1659&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328956787%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=aR6Lq4teuUmPe4o%2FOHp878Zm8OBfXVxoMrn0WqcN4fM%3D&reserved=0" target="_blank" class="">https://gitlab.haskell.org/ghc/ghc/merge_requests/1659</a><u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;"> <u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Kind regards,<u class=""></u><u class=""></u></p></div><div class=""><p class="MsoNormal" style="margin-bottom: 6pt;">Alejandro<u class=""></u><u class=""></u></p></div></div><p class="MsoNormal" style="margin-bottom: 6pt;">_______________________________________________<br class="">ghc-devs mailing list<br class=""><a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a><br class=""><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=04%7C01%7Csimonpj%40microsoft.com%7Cc0f0a66e10f94a6f17d508d96e34f2ae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637661997328956787%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=IUsQu1gDuNetafA6ljvQwNBEYq%2F%2B2NFYqwT5Ytpal24%3D&reserved=0" target="_blank" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><u class=""></u><u class=""></u></p></blockquote></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></blockquote></div>_______________________________________________<br class="">ghc-devs mailing list<br class=""><a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a><br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" target="_blank" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br class=""></div></blockquote></div></div></div></div><br class=""></div>_______________________________________________<br class="">ghc-devs mailing list<br class=""><a href="mailto:ghc-devs@haskell.org" class="">ghc-devs@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs<br class=""></div></blockquote><div class=""><div class=""><br class=""></div></div></div></div></body></html>