import Prelude -- implicit import Prelude == map in scope due to explicit 'import Prelude' map :: (a -> b) -> [a] -> [b] import Prelude == still in scope, 'import Prelude ()' is subsumed by 'import Prelude' map :: (a -> b) -> [a] -> [b] import Prelude -- implicit == still in scope, implicit import of Prelude map :: (a -> b) -> [a] -> [b] import Prelude () == not in scope now import Prelude -- implicit x :: (a -> b) -> [a] -> [b] :module +*Foo -- added automatically :m -Foo import Prelude -- implicit :m +*Foo :module +*Foo x :: (a -> b) -> [a] -> [b] :module +*Foo import Prelude :module +*Foo import Prelude import Data.Tuple hiding ( swap ) :module +*Foo import Prelude import Data.Tuple hiding ( swap ) import qualified Data.Tuple as Q :module +*Foo import Prelude