<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div style="" class="markdown-here-wrapper"
data-md-url="Thunderbird">
<p style="margin: 1.2em 0px ! important;">I agree, it’s a bit too
heavy. In fact, since most users probably won’t ever ever ever
need that type, let’s only impose it on those who explicitly
agree to see it:</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 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; padding: 0.5em; color: rgb(51, 51, 51); background: rgb(248, 248, 255) none repeat scroll 0% 0%;" class="hljs language-haskell">> :t ($)
<span class="hljs-comment">-- Note: the actual type is slightly more generic; set -fshow-levity</span>
<span class="hljs-comment">-- or use :t# instead of :t to see the fully generic form.</span>
($) :: (a -> b) -> a -> b
</code></pre>
<p style="margin: 1.2em 0px ! important;">On 02/06/2016 03:06 AM,
Mihai Maruseac wrote:</p>
<p style="margin: 1.2em 0px ! important;"></p>
<div class="markdown-here-exclude">
<p></p>
<blockquote
cite="mid:CAOMsUMKjCnmUO9VSOVDj3iMnQhcmrR_CjTUYjqbjTzVJYqid1A@mail.gmail.com"
type="cite">
<pre wrap="">On Fri, Feb 5, 2016 at 6:22 PM, Artyom <a class="moz-txt-link-rfc2396E" href="mailto:yom@artyom.me"><yom@artyom.me></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Why not just make GHCi output a comment whenever the type involves levity?
</pre>
<blockquote type="cite">
<pre wrap="">:t ($)
</pre>
</blockquote>
<pre wrap="">-- Note: the actual type is more generic:
--
-- ($) :: forall (w :: GHC.Types.Levity) a (b :: TYPE w). (a -> b) -> a
-> b
--
-- For the absolute majority of purposes the simpler type is correct.
-- See GHC Guide chapter X point Y to learn more about this.
($) :: (a -> b) -> a -> b
</pre>
</blockquote>
<pre wrap="">Wouldn't this look like a scary error to some users? Though, users can
get accustomed to this and this solution seems to be the best of both
worlds.
</pre>
<br>
<br>
</blockquote>
<p></p>
</div>
<p style="margin: 1.2em 0px ! important;"></p>
<div
title="MDH:SSBhZ3JlZSwgaXQncyBhIGJpdCB0b28gaGVhdnkuIEluIGZhY3QsIHNpbmNlIG1vc3QgdXNlcnMgcHJvYmFibHkgd29uJ3QgZXZlciBldmVyIGV2ZXIgbmVlZCB0aGF0IHR5cGUsIGxldCdzIG9ubHkg
aW1wb3NlIGl0IG9uIHRob3NlIHdobyBleHBsaWNpdGx5IGFncmVlIHRvIHNlZSBpdDo8YnI+PGJy
Pn5+fiBoYXNrZWxsPGJyPiZndDsgOnQgKCQpPGJyPi0tIE5vdGU6IHRoZSBhY3R1YWwgdHlwZSBp
cyBzbGlnaHRseSBtb3JlIGdlbmVyaWM7IHNldCAtZnNob3ctbGV2aXR5PGJyPi0tIG9yIHVzZSA6
dCMgaW5zdGVhZCBvZiA6dCB0byBzZWUgdGhlIGZ1bGx5IGdlbmVyaWMgZm9ybS48YnI+KCQpIDo6
IChhIC0mZ3Q7IGIpIC0mZ3Q7IGEgLSZndDsgYjxicj5+fn48YnI+PGJyPjxkaXYgY2xhc3M9Im1v
ei1jaXRlLXByZWZpeCI+T24gMDIvMDYvMjAxNiAwMzowNiBBTSwgTWloYWkgTWFydXNlYWMgd3Jv
dGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNpdGU9Im1pZDpDQU9Nc1VNS2pDbm1VTzlWU09WRGoz
aU1uUWhjbXJSX0NqVFVZanFialR6VkpZcWlkMUFAbWFpbC5nbWFpbC5jb20iIHR5cGU9ImNpdGUi
PjxwcmUgd3JhcD0iIj5PbiBGcmksIEZlYiA1LCAyMDE2IGF0IDY6MjIgUE0sIEFydHlvbSAmbHQ7
eW9tQGFydHlvbS5tZSZndDsgd3JvdGU6PGJyPjwvcHJlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi
PjxwcmUgd3JhcD0iIj5XaHkgbm90IGp1c3QgbWFrZSBHSENpIG91dHB1dCBhIGNvbW1lbnQgd2hl
bmV2ZXIgdGhlIHR5cGUgaW52b2x2ZXMgbGV2aXR5Pzxicj48YnI+PC9wcmU+PGJsb2NrcXVvdGUg
dHlwZT0iY2l0ZSI+PHByZSB3cmFwPSIiPjp0ICgkKTxicj48L3ByZT48L2Jsb2NrcXVvdGU+PHBy
ZSB3cmFwPSIiPi0tIE5vdGU6IHRoZSBhY3R1YWwgdHlwZSBpcyBtb3JlIGdlbmVyaWM6PGJyPi0t
PGJyPi0tICAgICAoJCkgOjogZm9yYWxsICh3IDo6IEdIQy5UeXBlcy5MZXZpdHkpIGEgKGIgOjog
VFlQRSB3KS4gIChhIC0mZ3Q7IGIpIC0mZ3Q7IGE8YnI+LSZndDsgYjxicj4tLTxicj4tLSBGb3Ig
dGhlIGFic29sdXRlIG1ham9yaXR5IG9mIHB1cnBvc2VzIHRoZSBzaW1wbGVyIHR5cGUgaXMgY29y
cmVjdC48YnI+LS0gU2VlIEdIQyBHdWlkZSBjaGFwdGVyIFggcG9pbnQgWSB0byBsZWFybiBtb3Jl
IGFib3V0IHRoaXMuPGJyPjxicj4oJCkgOjogKGEgLSZndDsgYikgLSZndDsgYSAtJmd0OyBiPGJy
Pjxicj48L3ByZT48L2Jsb2NrcXVvdGU+PHByZSB3cmFwPSIiPldvdWxkbid0IHRoaXMgbG9vayBs
aWtlIGEgc2NhcnkgZXJyb3IgdG8gc29tZSB1c2Vycz8gVGhvdWdoLCB1c2VycyBjYW48YnI+Z2V0
IGFjY3VzdG9tZWQgdG8gdGhpcyBhbmQgdGhpcyBzb2x1dGlvbiBzZWVtcyB0byBiZSB0aGUgYmVz
dCBvZiBib3RoPGJyPndvcmxkcy48YnI+PGJyPjwvcHJlPjxicj48YnI+PC9ibG9ja3F1b3RlPjxi
cj48YnI+"
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div>
</div>
</body>
</html>