<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">Dear all,</p>
<p style="margin:0px 0px 1.2em!important">There is a debate which has been held in our heads for quite some time now. But we’ve never really had the conversation. This debate has been raised again in the context of proposal #281. But I’d rather make a separate thread about it.</p>
<p style="margin:0px 0px 1.2em!important">The question is the following:</p>
<p style="margin:0px 0px 1.2em!important">When I write</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-haskell" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%"><span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">f</span> @t
</code></pre>
<p style="margin:0px 0px 1.2em!important">Am I using <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">@</code> as a way to change an invisible argument into a visible argument? Or am I using <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">@</code> to insert a type expression into a term expression?</p>
<hr>
<p style="margin:0px 0px 1.2em!important">The truth is that it’s doing both at the same time. So some of us have taken to believing that the One True Meaning™ of <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">@</code> is to override (in)visibility. While others have taken to believing that the One True Meaning™ of <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">@</code> is to insert types in term.</p>
<p style="margin:0px 0px 1.2em!important">And, in both cases, we believe the other part to be incidental.</p>
<p style="margin:0px 0px 1.2em!important">In favour of types-in-term, there is the pretty-printer for Core, which, if I’m not mistaken, uses <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">@t</code> to denote type applications (and all type applications are visible in Core, so there is no visibility override to be had).</p>
<p style="margin:0px 0px 1.2em!important">Whatever we think about this, it appears that the fact that this meaning ascription is implicit has caused some anguish. So I think that we should have this discussion explicitly for once.</p>
<p style="margin:0px 0px 1.2em!important">I chose to do so in a different thread than the #281 discussion, because this discussion stands on its own.</p>
<p style="margin:0px 0px 1.2em!important">Anyway, the floor is yours.</p>
<p style="margin:0px 0px 1.2em!important">/Arnaud</p>
<div title="MDH:PGRpdj5EZWFyIGFsbCw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoZXJlIGlzIGEgZGViYXRl
IHdoaWNoIGhhcyBiZWVuIGhlbGQgaW4gb3VyIGhlYWRzIGZvciBxdWl0ZSBzb21lIHRpbWUgbm93
LiBCdXQgd2UndmUgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY29udmVyc2F0aW9uLiBUaGlzIGRlYmF0
ZSBoYXMgYmVlbiByYWlzZWQgYWdhaW4gaW4gdGhlIGNvbnRleHQgb2YgcHJvcG9zYWwgIzI4MS4g
QnV0IEknZCByYXRoZXIgbWFrZSBhIHNlcGFyYXRlIHRocmVhZCBhYm91dCBpdC48YnI+PC9kaXY+
PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUgcXVlc3Rpb24gaXMgdGhlIGZvbGxvd2luZzo8L2Rpdj48
ZGl2Pjxicj48L2Rpdj48ZGl2PldoZW4gSSB3cml0ZTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+
YGBgaGFza2VsbDwvZGl2PjxkaXY+ZiBAdDwvZGl2PjxkaXY+YGBgPC9kaXY+PGRpdj48YnI+PC9k
aXY+PGRpdj5BbSBJIHVzaW5nIGBAYCBhcyBhIHdheSB0byBjaGFuZ2UgYW4gaW52aXNpYmxlIGFy
Z3VtZW50IGludG8gYSB2aXNpYmxlIGFyZ3VtZW50PyBPciBhbSBJIHVzaW5nIGBAYCB0byBpbnNl
cnQgYSB0eXBlIGV4cHJlc3Npb24gaW50byBhIHRlcm0gZXhwcmVzc2lvbj88L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48ZGl2Pi0tLTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhlIHRydXRoIGlzIHRo
YXQgaXQncyBkb2luZyBib3RoIGF0IHRoZSBzYW1lIHRpbWUuIFNvIHNvbWUgb2YgdXMgaGF2ZSB0
YWtlbiB0byBiZWxpZXZpbmcgdGhhdCB0aGUgT25lIFRydWUgTWVhbmluZ+KEoiBvZiBgQGAgaXMg
dG8gb3ZlcnJpZGUgKGluKXZpc2liaWxpdHkuIFdoaWxlIG90aGVycyBoYXZlIHRha2VuIHRvIGJl
bGlldmluZyB0aGF0IHRoZSBPbmUgVHJ1ZSBNZWFuaW5n4oSiIG9mIGBAYCBpcyB0byBpbnNlcnQg
dHlwZXMgaW4gdGVybS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFuZCwgaW4gYm90aCBjYXNl
cywgd2UgYmVsaWV2ZSB0aGUgb3RoZXIgcGFydCB0byBiZSBpbmNpZGVudGFsLjwvZGl2PjxkaXY+
PGJyPjwvZGl2PjxkaXY+SW4gZmF2b3VyIG9mIHR5cGVzLWluLXRlcm0sIHRoZXJlIGlzIHRoZSBw
cmV0dHktcHJpbnRlciBmb3IgQ29yZSwgd2hpY2gsIGlmIEknbSBub3QgbWlzdGFrZW4sIHVzZXMg
YEB0YCB0byBkZW5vdGUgdHlwZSBhcHBsaWNhdGlvbnMgKGFuZCBhbGwgdHlwZSBhcHBsaWNhdGlv
bnMgYXJlIHZpc2libGUgaW4gQ29yZSwgc28gdGhlcmUgaXMgbm8gdmlzaWJpbGl0eSBvdmVycmlk
ZSB0byBiZSBoYWQpLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+V2hhdGV2ZXIgd2UgdGhpbmsg
YWJvdXQgdGhpcywgaXQgYXBwZWFycyB0aGF0IHRoZSBmYWN0IHRoYXQgdGhpcyBtZWFuaW5nIGFz
Y3JpcHRpb24gaXMgaW1wbGljaXQgaGFzIGNhdXNlZCBzb21lIGFuZ3Vpc2guIFNvIEkgdGhpbmsg
dGhhdCB3ZSBzaG91bGQgaGF2ZSB0aGlzIGRpc2N1c3Npb24gZXhwbGljaXRseSBmb3Igb25jZS48
L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkgY2hvc2UgdG8gZG8gc28gaW4gYSBkaWZmZXJlbnQg
dGhyZWFkIHRoYW4gdGhlICMyODEgZGlzY3Vzc2lvbiwgYmVjYXVzZSB0aGlzIGRpc2N1c3Npb24g
c3RhbmRzIG9uIGl0cyBvd24uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Bbnl3YXksIHRoZSBm
bG9vciBpcyB5b3Vycy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pi9Bcm5hdWQ8YnI+PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>