Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Question: Confusion between `-Wall` and `NamedFieldPuns`
I'm observing an interesting interaction between `-Wall` and `NamedFieldPuns`. Perhaps this is perfectly fine but wanted to double check. I'm using: ``` $ ghc --version The Glorious Glasgow Haskell Compilation System, version 8.6.5 ``` For this program: ```haskell module Test where data F = F { foo :: Int } bar :: F -> IO Int bar f = do foo <- pure (foo f) pure foo ``` I get: ``` $ ghc -c -Wall Test.hs Test.hs:6:12: warning: [-Wname-shadowing] This binding for ‘foo’ shadows the existing binding defined at Test.hs:3:14 | 6 | bar f = do foo <- pure (foo f) | ^^^ ``` which makes perfect sense to me. However, if I add: ```haskell {-# LANGUAGE NamedFieldPuns #-} ``` at the top, then the warning disappears, even though `-Wall` option is still present. Is this the expected behavior? I don't understand how `NamedFieldPuns` interacts with shadowing here.
issue