<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Just as a heads up. You can achieve what you want already by
doing:</p>
<p><span style="font-family:"IBM Plex Mono""><font
size="+1"><tt>f @_ @([String]) </tt></font><i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><font
size="+1"><tt>:: forall a. (a, </tt></font></span></i></span><span
style="font-family:"IBM Plex Mono""><i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><font
size="+1"><tt><span style="font-family:"IBM Plex
Mono""><i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><font
size="+1"><tt>[String]</tt></font></span></i></span>)
-> (</tt></font></span></i></span><span
style="font-family:"IBM Plex Mono""><i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><font
size="+1"><tt><span style="font-family:"IBM Plex
Mono""><i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><font
size="+1"><tt>[String]</tt></font></span></i></span>,
a</tt>) </font><br>
</span></i></span></p>
<p>Best regards,</p>
<p> Rowan Goemans</p>
<p>On 8/4/20 7:45 PM, Anselm Schüler (conversations subemail) wrote:<br>
</p>
<blockquote type="cite"
cite="mid:1F3EEFFF-DABA-433F-921D-49D28EEF3A1A@hxcore.ol">
<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:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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;}
span.apple-converted-space
{mso-style-name:apple-converted-space;}
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;}
/* List Definitions */
@list l0
{mso-list-id:7950896;
mso-list-type:hybrid;
mso-list-template-ids:-1946140076 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F06E;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:Calibri;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style>
<div class="WordSection1">
<p class="MsoNormal">Thank you for the nice introduction :) !</p>
<p class="MsoNormal">I will check out the GHC proposals site.</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.</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.</p>
<p class="MsoNormal">For instance, say I have <span
style="font-family:"IBM Plex Mono"">f :: forall a
b. (a, b) -> (b, a)</span>, and I want to apply the type
<span style="font-family:"IBM Plex Mono"">[String]</span><span
style="font-family:"Calibri Light",sans-serif"> to
it. My only option is to do<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"IBM Plex
Mono"">f @([String]) <i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%">::
forall b. ([String], b) -> (b, [String]) </span><o:p></o:p></i></span></p>
<p class="MsoNormal">—but what if, instead, I want a function of
type <span style="font-family:"IBM Plex Mono"">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"">f @{b = [String]} <i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%">::
forall a. ([String], b) -> (b, [String])</span></i><span
style="color:#767171;mso-style-textfill-fill-color:#767171;mso-style-textfill-fill-alpha:100.0%"><o:p></o:p></span></span></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"">~</span>, <span style="font-family:"IBM
Plex Mono"">=</span>, <span
style="font-family:"IBM Plex Mono"">::</span>, or
<span style="font-family:"IBM Plex Mono"">-></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" moz-do-not-send="true">open-source</a>.<o:p></o:p></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"
moz-do-not-send="true"><span style="color:#4472C4">www.anselmschueler.com</span></a><o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="color:#4472C4"><a
href="mailto:mail@anselmschueler.com"
moz-do-not-send="true"><span style="color:#4472C4">mail@anselmschueler.com</span></a><o:p></o:p></span></i></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:simonpj@microsoft.com"
moz-do-not-send="true">Simon Peyton Jones</a><br>
<b>Sent: </b>Tuesday, August 4, 2020 18:44<br>
<b>To: </b><a href="mailto:rae@richarde.dev"
moz-do-not-send="true">Richard Eisenberg</a>; <a
href="mailto:conversation@anselmschueler.com"
moz-do-not-send="true">"Anselm Schüler (conversations
subemail)"</a><br>
<b>Cc: </b><a href="mailto:ghc-devs@haskell.org"
moz-do-not-send="true">ghc-devs@haskell.org</a><br>
<b>Subject: </b>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 class="MsoNormal"><span lang="EN-GB">Welcome Anselm.
ghc-devs is a very informal mailing list, and we welcome
newcomers.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.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<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></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. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Simon<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></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"><b>From:</b> ghc-devs
<a class="moz-txt-link-rfc2396E" 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 class="moz-txt-link-rfc2396E" href="mailto:conversation@anselmschueler.com"><conversation@anselmschueler.com></a><br>
<b>Cc:</b> <a class="moz-txt-link-abbreviated" 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"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Hi Anselm,<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Welcome!<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><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"
moz-do-not-send="true">https://mail.haskell.org/pipermail/ghc-devs/</a>.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><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"
moz-do-not-send="true">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"
moz-do-not-send="true">https://gitlab.haskell.org/ghc/ghc/</a>.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">I hope this is
helpful!<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB">Richard<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span
lang="EN-GB"><o:p> </o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB">On Aug 4, 2020, at 8:59 AM, Anselm
Schüler (conversations subemail) <<a
href="mailto:conversation@anselmschueler.com"
moz-do-not-send="true">conversation@anselmschueler.com</a>>
wrote:<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:.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:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.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?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.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?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB">Thank you in advance for the
answers.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span
lang="EN-GB"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span
lang="EN-GB">Anselm Schüler</span></i><span
lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span
style="color:#4472C4" lang="EN-GB"><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"
moz-do-not-send="true"><span
style="color:#4472C4">www.anselmschueler.com</span></a></span></i><span
lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span
style="color:#4472C4" lang="EN-GB"><a
href="mailto:mail@anselmschueler.com"
moz-do-not-send="true"><span
style="color:#4472C4">mail@anselmschueler.com</span></a></span></i><span
lang="EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif"
lang="EN-GB">_______________________________________________<br>
ghc-devs mailing list<br>
</span><span lang="EN-GB"><a
href="mailto:ghc-devs@haskell.org"
moz-do-not-send="true"><span
style="font-size:90pt;font-family:"Helvetica",sans-serif">ghc-devs@haskell.org</span></a></span><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif"
lang="EN-GB"><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"
moz-do-not-send="true"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</span></a><o:p></o:p></span></p>
</div>
</blockquote>
</div>
</div>
</div>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
ghc-devs mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a>
</pre>
</blockquote>
</body>
</html>