<div dir="ltr">_ already has the meaning of a type wildcard (generalized from its use as a wildcard in patterns), so this<div>is consistent with its use in other type signatures. The problem I see with your proposal is that it assumes</div><div>you know the names of the type variables in the original declaration.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 4, 2020 at 2:12 PM Anselm Schüler (conversations subemail) <<a href="mailto:conversation@anselmschueler.com">conversation@anselmschueler.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6468933952147526455WordSection1"><p class="MsoNormal">And also, it’s really weird and seems like a feature that should be removed IMO. It kind of looks like the type variable <span style="font-family:"IBM Plex Mono",serif">_</span> is always in-scope, and it’s unclear if the type of the resulting function is just type variables without an explicit forall or if <span style="font-family:"IBM Plex Mono",serif">_</span> has a special meaning.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><i>Anselm Schüler<u></u><u></u></i></p><p class="MsoNormal"><i><span style="color:rgb(68,114,196)"><a href="http://www.anselmschueler.com" target="_blank"><span style="color:rgb(68,114,196)">www.anselmschueler.com</span></a></span></i><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:conversation@anselmschueler.com" target="_blank">Anselm Schüler (conversations subemail)</a><br><b>Sent: </b>Tuesday, August 4, 2020 20:09<br><b>To: </b><a href="mailto:goemansrowan@gmail.com" target="_blank">Rowan Goemans</a>; <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br><b>Subject: </b>RE: AW: RE: Hi. I'm new to this mailing list and have a few questions.</p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">True, but this makes the type less readable since <span style="font-family:"IBM Plex Mono",serif">id @_ :: _ -> _</span><span style="font-family:"Calibri Light",sans-serif">.</span> <span style="font-family:"IBM Plex Mono",serif"><u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><i>Anselm Schüler<u></u><u></u></i></p><p class="MsoNormal"><i><span style="color:rgb(68,114,196)"><a href="http://www.anselmschueler.com" target="_blank"><span style="color:rgb(68,114,196)">www.anselmschueler.com</span></a></span></i><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:goemansrowan@gmail.com" target="_blank">Rowan Goemans</a><br><b>Sent: </b>Tuesday, August 4, 2020 19:59<br><b>To: </b><a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br><b>Subject: </b>Re: AW: RE: Hi. I'm new to this mailing list and have a few questions.<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><p>Just as a heads up. You can achieve what you want already by doing:</p><p><tt><span style="font-size:10pt">f @_ @([String]) <i><span style="color:rgb(118,113,113)">:: forall a. (a, [String]) -> ([String], a</span></i></span></tt><i><span style="font-size:13.5pt;font-family:"IBM Plex Mono",serif;color:rgb(118,113,113)">) </span></i></p><p>Best regards,</p><p>Rowan Goemans</p><p>On 8/4/20 7:45 PM, Anselm Schüler (conversations subemail) wrote:</p><blockquote style="margin-top:5pt;margin-bottom:5pt"><p class="MsoNormal">Thank you for the nice introduction :) !<u></u><u></u></p><p class="MsoNormal">I will check out the GHC proposals site.<u></u><u></u></p><p class="MsoNormal">And following Simon’s (I hope addressing with first name is OK) suggestion, I’m going to give an outline of the idea.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The idea is to extend type application syntax to enable explicit assignment of types to specific type variables.<u></u><u></u></p><p class="MsoNormal">For instance, say I have <span style="font-family:"IBM Plex Mono",serif">f :: forall a b. (a, b) -> (b, a)</span>, and I want to apply the type <span style="font-family:"IBM Plex Mono",serif">[String]</span><span style="font-family:"Calibri Light",sans-serif"> to it. My only option is to do</span><u></u><u></u></p><p class="MsoNormal"><span style="font-family:"IBM Plex Mono",serif">f @([String]) <i><span style="color:rgb(118,113,113)">:: forall b. ([String], b) -> (b, [String]) </span></i></span><u></u><u></u></p><p class="MsoNormal">—but what if, instead, I want a function of type <span style="font-family:"IBM Plex Mono",serif">forall a. (a, [String]) -> ([String], a)</span>?<u></u><u></u></p><p class="MsoNormal">I propose the following syntax:<u></u><u></u></p><p class="MsoNormal"><span style="font-family:"IBM Plex Mono",serif">f @{b = [String]} <i><span style="color:rgb(118,113,113)">:: forall a. ([String], b) -> (b, [String])</span></i></span><u></u><u></u></p><p class="MsoNormal">This wouldn’t break any existing programs since using record syntax here is already disallowed and met with an error message.<u></u><u></u></p><p class="MsoNormal">A question is of course the symbol used for assignment (<span style="font-family:"IBM Plex Mono",serif">~</span>, <span style="font-family:"IBM Plex Mono",serif">=</span>, <span style="font-family:"IBM Plex Mono",serif">::</span>, or <span style="font-family:"IBM Plex Mono",serif">-></span>?).<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I hope the code shows up as a monospace font on your end. I used the IBM Plex Mono font, which is <a href="https://github.com/IBM/plex" target="_blank">open-source</a>.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><i>Anselm Schüler</i><u></u><u></u></p><p class="MsoNormal"><i><span style="color:rgb(68,114,196)"><a href="http://www.anselmschueler.com" target="_blank"><span style="color:rgb(68,114,196)">wwwanselmschueler.com</span></a></span></i><u></u><u></u></p><p class="MsoNormal"><i><span style="color:rgb(68,114,196)"><a href="mailto:mail@anselmschueler.com" target="_blank"><span style="color:rgb(68,114,196)">mail@anselmschueler.com</span></a></span></i><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:simonpj@microsoft.com" target="_blank">Simon Peyton Jones</a><br><b>Sent: </b>Tuesday, August 4, 2020 18:44<br><b>To: </b><a href="mailto:rae@richarde.dev" target="_blank">Richard Eisenberg</a>; <a href="mailto:conversation@anselmschueler.com" target="_blank">"Anselm Schüler (conversations subemail)"</a><br><b>Cc: </b><a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br><b>Subject: </b>RE: Hi. I'm new to this mailing list and have a few questions.<u></u><u></u></p></div><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB">Welcome Anselm  ghc-devs is a very informal mailing list, and we welcome newcomers.</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:1.5in"><span lang="EN-GB">For example, I have a feature idea in the back of my mind, which I imagine would be easy to implement</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB">What Richard says is right, but you should feel free to fly the kite on this list if you want – or on Haskell Café – to get some idea of whether others seem warm about the idea, before writing a full proposal.  </span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB">Simon</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p><div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0in 0in 0in 4pt"><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal" style="margin-left:1in"><b>From:</b> ghc-devs <a href="mailto:ghc-devs-bounces@haskell.org" target="_blank"><ghc-devs-bounces@haskell.org></a> <b>On Behalf Of </b>Richard Eisenberg<br><b>Sent:</b> 04 August 2020 16:05<br><b>To:</b> "Anselm Schüler (conversations subemail)" <a href="mailto:conversation@anselmschueler.com" target="_blank"><conversation@anselmschuelercom></a><br><b>Cc:</b> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br><b>Subject:</b> Re: Hi. I'm new to this mailing list and have a few questions.<u></u><u></u></p></div></div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">Hi Anselm,</span><u></u><u></u></p><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">Welcome!</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">A good way of getting used to a list like this one is to wait a little while and observe what kind of messages others send; this will give you a feel for how the list is used. If you're impatient, you can also check out the archives at <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fpipermail%2Fghc-devs%2F&data=02%7C01%7Csimonpj%40microsoft.com%7Ce68e6131af494519061c08d83887d962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637321503404154244&sdata=w4QIMTGeMQ35bEo4xkOn2rIj8z02iMVje4Ar9AXM22k%3D&reserved=0" target="_blank">https://mail.haskell.org/pipermail/ghc-devs/</a>.</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">As for a feature request: if your feature changes the language GHC accepts (most do), the right place to post is at <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fghc-proposals%2Fghc-proposals&data=02%7C01%7Csimonpj%40microsoft.com%7Ce68e6131af494519061c08d83887d962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637321503404164244&sdata=ogVVk5kRFXPc81dZ%2FiyGV9FbgQoQUtzazpFGcrAKUXA%3D&reserved=0" target="_blank">https://githubcom/ghc-proposals/ghc-proposals</a>. There is a description of how to proceed on that page. Proposals submitted there get debated within the community and then eventually sent to a GHC Steering Committee for a vote on acceptance or rejection. Then, we worry about implementing it. If you have a suggestion that does not change the language GHC accepts, you can post an Issue at <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2F&data=02%7C01%7Csimonpj%40microsoft.com%7Ce68e6131af494519061c08d83887d962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637321503404164244&sdata=tg40q%2B9%2BW5KcVzHsPx9oCP7wdw5ipdZCOOdFnzUz3mU%3D&reserved=0" target="_blank">https://gitlab.haskell.org/ghc/ghc/</a>.</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">I hope this is helpful!</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:1in"><span lang="EN-GB">Richard</span><u></u><u></u></p></div><div><div><p class="MsoNormal" style="margin-right:0in;margin-bottom:12pt;margin-left:1in"><span lang="EN-GB"> </span><u></u><u></u></p><blockquote style="margin-top:5pt;margin-bottom:500pt"><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">On Aug 4, 2020, at 8:59 AM, Anselm Schüler (conversations subemail) <<a href="mailto:conversation@anselmschueler.com" target="_blank">conversation@anselmschueler.com</a>> wrote:</span><u></u><u></u></p></div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB"> </span><u></u><u></u></p><div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">First of all, in general, I’m new to mailing lists (as used for discussions) in general, so a question about that:</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">When subscribed to the mailing list, do you get<span class="gmail-m_6468933952147526455apple-converted-space"> </span><i>every</i><span class="gmail-m_6468933952147526455apple-converted-space"> </span>message, or are some discussions hidden?</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">Second of all, I’d like to know what kinds of messages are appropriate here. I’m not familiar with coding compilers or anything of the like, so I’m somewhat afraid of offering unhelpful comments or being just woefully underqualified to participate here.</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">For example, I have a feature idea in the back of my mind, which I imagine would be easy to implement (that might be wrong). Is it alright if I submit that here or should I use some other forum?</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB">Thank you in advance for the answers.</span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB"> </span><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><i><span lang="EN-GB">Anselm Schüler</span></i><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><i><span lang="EN-GB" style="color:rgb(68,114,196)"><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.anselmschueler.com%2F&data=02%7C01%7Csimonpj%40microsoft.com%7Ce68e6131af494519061c08d83887d962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637321503404164244&sdata=WJBJ3P%2BFUnTmVs9Z97DHLat9mHr6vC22l0mQ36nafGc%3D&reserved=0" target="_blank"><span style="color:rgb(68,114,196)">www.anselmschueler.com</span></a></span></i><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:2.5in"><i><span lang="EN-GB" style="color:rgb(68,114,196)"><a href="mailto:mail@anselmschueler.com" target="_blank"><span style="color:rgb(68,114,196)">mail@anselmschueler.com</span></a></span></i><u></u><u></u></p></div><p class="MsoNormal" style="margin-left:2.5in"><span lang="EN-GB" style="font-size:9pt;font-family:Helvetica,sans-serif">_______________________________________________<br>ghc-devs mailing list<br></span><span lang="EN-GB"><a href="mailto:ghc-devs@haskell.org" target="_blank"><span style="font-size:90pt;font-family:Helvetica,sans-serif">ghc-devs@haskell.org</span></a></span><span lang="EN-GB" style="font-size:9pt;font-family:Helvetica,sans-serif"><br></span><span lang="EN-GB"><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7Ce68e6131af494519061c08d83887d962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637321503404174237&sdata=9y99aKPjfvm7WIH5Xv9JDlN7TIXdVPJZF%2BvAgbUvBUU%3D&reserved=0" target="_blank"><span style="font-size:9pt;font-family:Helvetica,sans-serif">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</span></a></span><u></u><u></u></p></div></blockquote></div></div></div><p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal" style="margin-bottom:120pt"><u></u> <u></u></p><pre>_______________________________________________</pre><pre>ghc-devs mailing list</pre><pre><a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a></pre></blockquote><pre style="margin-right:0.5in;margin-bottom:5pt;margin-left:0.5in"><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a></pre><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></div></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>brandon s allbery kf8nh</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a></div></div></div></div></div>