content: module T11071 where
  
  import Data.List (lines)
  import qualified Data.Map as M ()
  import qualified Data.IntMap as M ()
  import qualified Data.IntMap as M () -- just to see if this confused the code
  
  import qualified Data.Ord as Ord hiding (Down)
  
  import qualified Data.Map as M' hiding (size, filter)
  import qualified Data.Map as M' hiding (size)
  import qualified Data.IntMap as M' hiding (size)
  import qualified System.IO as M' () -- unrelated
  
  ignore :: a -> IO ()
  ignore = const (return ())
  
  main = do
      ignore NoSuchModule.foo  -- no such module
      ignore Data.List.foobar  -- does not exist (one import)
      ignore M.foobar          -- does not exist (two imports)
      ignore M'.foobar         -- does not exist (three imports)
      ignore Data.List.sort    -- needs import
      ignore Data.List.unlines -- needs import, similar to imported
      ignore M.size            -- multiple modules to import from
      ignore M.valid           -- only one module to import from
      ignore Ord.Down          -- explicit hiding
      ignore M'.size           -- hidden and/or missing in import list
  