<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 5 4 2 2 2 2 2 4;}
@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;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
        {font-family:"IBM Plex Mono";
        panose-1:2 11 5 9 5 2 3 0 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:10.0pt;
        font-family:"Courier New";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 70.85pt 56.7pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><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'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><i>Anselm Schüler<o:p></o:p></i></p><p class=MsoNormal><i><span style='color:#4472C4'><a href="http://www.anselmschueler.com"><span style='color:#4472C4'>www.anselmschueler.com</span></a></span></i><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:goemansrowan@gmail.com">Rowan Goemans</a><br><b>Sent: </b>Tuesday, August 4, 2020 19:59<br><b>To: </b><a href="mailto:ghc-devs@haskell.org">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><o:p> </o:p></p><p>Just as a heads up. You can achieve what you want already by doing:</p><p><tt><span style='font-size:10.0pt'>f @_ @([String]) <i><span style='color:#767171'>:: forall a. (a, [String]) -> ([String], a</span></i></span></tt><i><span style='font-size:13.5pt;font-family:"IBM Plex Mono",serif;color:#767171'>) </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:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Thank you for the nice introduction :) !<o:p></o:p></p><p class=MsoNormal>I will check out the GHC proposals site.<o:p></o:p></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.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>The idea is to extend type application syntax to enable explicit assignment of types to specific type variables.<o:p></o:p></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><o:p></o:p></p><p class=MsoNormal><span style='font-family:"IBM Plex Mono",serif'>f @([String]) <i><span style='color:#767171'>:: forall b. ([String], b) -> (b, [String]) </span></i></span><o:p></o:p></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>?<o:p></o:p></p><p class=MsoNormal>I propose the following syntax:<o:p></o:p></p><p class=MsoNormal><span style='font-family:"IBM Plex Mono",serif'>f @{b = [String]} <i><span style='color:#767171'>:: forall a. ([String], b) -> (b, [String])</span></i></span><o:p></o:p></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.<o:p></o:p></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>?).<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></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">open-source</a>.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><i>Anselm Schüler</i><o:p></o:p></p><p class=MsoNormal><i><span style='color:#4472C4'><a href="http://www.anselmschueler.com"><span style='color:#4472C4'>www.anselmschueler.com</span></a></span></i><o:p></o:p></p><p class=MsoNormal><i><span style='color:#4472C4'><a href="mailto:mail@anselmschueler.com"><span style='color:#4472C4'>mail@anselmschueler.com</span></a></span></i><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:simonpj@microsoft.com">Simon Peyton Jones</a><br><b>Sent: </b>Tuesday, August 4, 2020 18:44<br><b>To: </b><a href="mailto:rae@richarde.dev">Richard Eisenberg</a>; <a href="mailto:conversation@anselmschueler.com">"Anselm Schüler (conversations subemail)"</a><br><b>Cc: </b><a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br><b>Subject: </b>RE: Hi. I'm new to this mailing list and have a few questions.<o:p></o:p></p></div><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span lang=EN-GB>Welcome Anselm.  ghc-devs is a very informal mailing list, and we welcome newcomers.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='margin-left:1.0in'><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><o:p></o:p></p><p class=MsoNormal><span lang=EN-GB> </span><o:p></o:p></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><o:p></o:p></p><p class=MsoNormal><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-GB>Simon</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-GB> </span><o:p></o:p></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='margin-left:.5in'><b>From:</b> ghc-devs <a href="mailto:ghc-devs-bounces@haskell.org"><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"><conversation@anselmschuelercom></a><br><b>Cc:</b> <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br><b>Subject:</b> Re: Hi. I'm new to this mailing list and have a few questions.<o:p></o:p></p></div></div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB>Hi Anselm,</span><o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB>Welcome!</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><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">https://mail.haskell.org/pipermail/ghc-devs/</a>.</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><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">https://github.com/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">https://gitlab.haskell.org/ghc/ghc/</a>.</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB>I hope this is helpful!</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span lang=EN-GB>Richard</span><o:p></o:p></p></div><div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span lang=EN-GB> </span><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:50pt'><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB>On Aug 4, 2020, at 8:59 AM, Anselm Schüler (conversations subemail) <<a href="mailto:conversation@anselmschueler.com">conversation@anselmschueler.com</a>> wrote:</span><o:p></o:p></p></div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB> </span><o:p></o:p></p><div><div><p class=MsoNormal style='margin-left:1.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><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB>When subscribed to the mailing list, do you get<span class=apple-converted-space> </span><i>every</i><span class=apple-converted-space> </span>message, or are some discussions hidden?</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.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><o:p></o:p></p></div><div><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 (that might be wrong). Is it alright if I submit that here or should I use some other forum?</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB>Thank you in advance for the answers.</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><i><span lang=EN-GB>Anselm Schüler</span></i><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><i><span lang=EN-GB style='color:#4472C4'><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"><span style='color:#4472C4'>www.anselmschueler.com</span></a></span></i><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.5in'><i><span lang=EN-GB style='color:#4472C4'><a href="mailto:mail@anselmschueler.com"><span style='color:#4472C4'>mail@anselmschueler.com</span></a></span></i><o:p></o:p></p></div><p class=MsoNormal style='margin-left:1.5in'><span lang=EN-GB style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>_______________________________________________<br>ghc-devs mailing list<br></span><span lang=EN-GB><a href="mailto:ghc-devs@haskell.org"><span style='font-size:90.0pt;font-family:"Helvetica",sans-serif'>ghc-devs@haskell.org</span></a></span><span lang=EN-GB style='font-size:9.0pt;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"><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</span></a></span><o:p></o:p></p></div></blockquote></div></div></div><p class=MsoNormal><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><br><br><o:p></o:p></p><pre>_______________________________________________</pre><pre>ghc-devs mailing list</pre><pre><a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a></pre></blockquote><pre style='mso-margin-top-alt:0in;margin-right:.5in;margin-bottom:5.0pt;margin-left:.5in'><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a></pre><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p></div></body></html>