<div dir="ltr"><div><div>GHC consciously varies from the existing language standard in a number of ways.</div><div><br><div>Most of the variances are in things like parsing or typechecking corner cases.</div><div><br>The classes Num, Bits, Read, Floating all have variations from the existing standard to fix stuff a very slow moving standard just never seems to get around to fixing or for practical performance concerns.</div><div><br></div><div>Applicative as a superclass of Monad and generalizing the Prelude to Foldable/Traversable are the most egregious such examples.</div><div><br></div></div>What you're looking for<b> should</b> be included in <a href="https://downloads.haskell.org/~ghc/master/users-guide/bugs.html">https://downloads.haskell.org/~ghc/master/users-guide/bugs.html</a></div><div><br></div><div>Alas, a sub-section describing the AMP and Foldable/Traversable changes as a variation on the report appears to be missing. <br><br>It isn't unique in this regard. Floating has some new members for avoiding precision loss when exponentiating and taking logs, as well. This is also missing. (We go out of our way to call out the extra Read members in there after all.) For consistency (<$) being in Functor maybe should be called out as well?</div><div><div><br>It seems there are two calls to action and a decision to make here:<br></div><div><br></div><div><div>1.) We should definitely do a better job of keeping the infelicities section of the documentation up to date. Adding notes on the Applicative/Monad changes, Foldable/Traversable changes, the incorporation of Monoid. Adding the variation in the Floating class member list..<br></div><div><br></div><div>2.) We're fixing the language standard. A Haskell Prime committee has been formed to this (and other) ends. My understanding from talking with Herbert is that the current process delegates responsibility for the library portion of the upcoming report to the core libraries committee, so we have some language to draft.</div><div><br></div><div><div>Finally, we just need to decide if having the section in the documentation where it is is enough, or if it needs some kind of better linkage.</div><div><br></div><div>-Edward<br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 23, 2017 at 10:59 AM, Dylan Thurston <span dir="ltr"><<a href="mailto:dpt@bostoncoop.net" target="_blank">dpt@bostoncoop.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Pardon me if this is a stupid/frequently asked question...<br>
<br>
The GHC Prelude has some extensions to the Prelude in Haskell 98 or<br>
Haskell 2010. For instance, it has the Applicative type class, whose<br>
bindings overlap with some old code of mine. Where are these<br>
non-standard extensions documented? The Applicative class is<br>
documented at<br>
<br>
  <a href="https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base-4.9.0.0/Prelude.html" rel="noreferrer" target="_blank">https://downloads.haskell.org/<wbr>~ghc/latest/docs/html/<wbr>libraries/base-4.9.0.0/<wbr>Prelude.html</a><br>
<br>
but it's not picked out as something non-standard.<br>
<br>
I didn't find it documented where I would have expected in the GHC docs at<br>
<br>
  <a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/bugs.html#haskell-standards-vs-glasgow-haskell-language-non-compliance" rel="noreferrer" target="_blank">https://downloads.haskell.org/<wbr>~ghc/latest/docs/html/users_<wbr>guide/bugs.html#haskell-<wbr>standards-vs-glasgow-haskell-<wbr>language-non-compliance</a><br>
<br>
nor did I see a way to get a standards-compliant prelude?<br>
<br>
In this particular case I'll probably rework my code, as Applicative<br>
seems like a reasonable core addition. (I am a little annoyed that it<br>
uses so many short infix operators; I was using (*>).) I'm just<br>
surprised not to see it documented anywhere.<br>
<br>
Thanks,<br>
        Dylan Thurston<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><br></div>