<div dir="ltr"><div><div>I was basing this solely off the documentation:<br><br><a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/options-sanity.html">https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/options-sanity.html</a><br><br></div>so this may just be a documentation bug.  Someone emailed me off-list and said he reported it:<br><br><a href="https://ghc.haskell.org/trac/ghc/ticket/10386">https://ghc.haskell.org/trac/ghc/ticket/10386</a><br><br></div>Thanks.  --Omari<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 5, 2015 at 12:25 PM, Edward Z. Yang <span dir="ltr"><<a href="mailto:ezyang@mit.edu" target="_blank">ezyang@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Omari,<br>
<br>
Just to double check, could you send us a program which fails<br>
to produce warnings on 7.10, which does produce warnings on 7.8,<br>
and the command line arguments to run it?<br>
I tried the following test:<br>
<br>
[ezyang@hs01 ghc-bisect]$ cat A.hs<br>
module A where<br>
-- f :: Bool -> Bool<br>
-- f x = x && (\x -> x) x<br>
g :: IO ()<br>
g = do  (readLn :: IO Int)<br>
        return ()<br>
[ezyang@hs01 ghc-bisect]$ ghc -c A.hs -Wall -fforce-recomp<br>
<br>
A.hs:5:9: Warning:<br>
    A do-notation statement discarded a result of type ‘Int’<br>
    Suppress this warning by saying ‘_ <- (readLn :: IO Int)’<br>
    or by using the flag -fno-warn-unused-do-bind<br>
[ezyang@hs01 ghc-bisect]$ ghc --version<br>
The Glorious Glasgow Haskell Compilation System, version 7.10.1<br>
<br>
This is 7.10 that is distributed by Arch Linux.  I haven't<br>
tried any other distributions, including the pre-built binaries.<br>
<br>
Cheers,<br>
Edward<br>
<br>
Excerpts from Omari Norman's message of 2015-05-05 07:54:59 -0700:<br>
<div class="HOEnZb"><div class="h5">> I noticed some significant changes to the flags included with -Wall in GHC<br>
> 7.10.  Many flags that were previously included in -Wall are now not<br>
> included.  These include:<br>
><br>
> -fwarn-type-defaults<br>
> -fwarn-name-shadowing<br>
> -fwarn-missing-signatures<br>
> -fwarn-hi-shadowing<br>
> -fwarn-orphans<br>
> -fwarn-unused-do-bind<br>
> -fwarn-trustworthy-safe<br>
><br>
> I can't find any mention in the release notes of this change in behavior.<br>
><br>
> I was wondering what the rationale is for these changes?  Any link to<br>
> relevant discussion would be appreciated if it exists.<br>
><br>
> Also, what opinion do people have?  I previously kept my code -Wall clean,<br>
> but sometimes that would be a pain.  For instance I would munge local names<br>
> so they wouldn't trigger -fwarn-name-shadowing, and I would add signatures<br>
> to integers so they wouldn't trigger -fwarn-type-defaults.  In fact, I only<br>
> noticed this change in behavior in 7.10 because I was considering dumping<br>
> -Wall, and when I looked at the 7.10 manual I saw that it does not enable<br>
> -fwarn-name-shadowing.  (I still use 7.8 but Google pulled the 7.10<br>
> manual.)  Does this change indicate that people were finding -Wall too<br>
> onerous and, thus, not using it?<br>
><br>
> I do remember reading complaints about -fwarn-unused-do-bind being added to<br>
> -Wall, but I previously felt dirty about name shadowing though I wondered<br>
> if munging names to avoid shadowing was actually worse.<br>
</div></div></blockquote></div><br></div>