[GHC] #14049: relax -Wmissing-import-lists to allow one module without implicit imports when using NoImplicitPrelude

#14049: relax -Wmissing-import-lists to allow one module without implicit imports when using NoImplicitPrelude -------------------------------------+------------------------------------- Reporter: cdepillabout | Owner: (none) Type: feature | Status: new request | Priority: normal | Milestone: Component: Compiler | Version: Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- It would be nice to modify the `-Wmissing-import-lists` warning flag to allow one module with implicit imports when using the `NoImplicitPrelude` pragma. For example, imagine the following program: {{{#!hs {-# LANGUAGE NoImplicitPrelude #-} module Main where import MyCustomPrelude import Control.Monad.Trans.Reader (Reader, runReader) what :: Reader Int String -> String what x = runReader x 3 main :: IO () main = print "hello" }}} If this program is compiled with the `-Wmissing-import-lists` flag, the following warning will be produced: {{{ example.hs:5:1: warning: [-Wmissing-import-lists] The module ‘MyCustomPrelude’ does not have an explicit import list }}} I think it would be nice if this warning did not appear. Ideally, when using `NoImplicitPrelude` and `-Wmissing-import-lists` together, I would want one import per module to be permitted not to be explicit. This would make it possible to use an alternative Prelude and `-Wmissing-import-lists` at the same time. Alternatively, a new warning flag could be created with the above behavior. Maybe it could be called something like `-Wmulti-implicit- imports` or `-Wmulti-open-imports`. I would appreciate feedback/suggestions for the name. ---- PureScript currently works like I have described above. By default the `Prelude` module is not imported (so you must explicitly import it), and the compiler will warn you if you have more than one implicit import. I really like this combination and it would be nice to be able to get the same thing in Haskell. In case anyone is interested, [https://github.com/purescript/purescript/issues/1869 here] is the issue for PureScript where they talked about making this change. ---- If it seems like this is a good idea and other people are onboard, I'd be willing to implement it. I think it would be a relatively easy change, so it would be good for a first-time contributor. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14049 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14049: relax -Wmissing-import-lists to allow one module with implicit imports when using NoImplicitPrelude -------------------------------------+------------------------------------- Reporter: cdepillabout | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14049#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC