> The Prelude module is imported automatically into all modules as if
> by the statement `import Prelude', if and only if it is not imported
> with an explicit import declaration. This provision for explicit
> import allows values defined in the Prelude to be hidden from the
> unqualified name space.
I've always taken "if it [the Prelude] is not imported with
an explicit import decl" to mean "if the Prelude is not imported with an
explicit import decl [of any form]". So
> > import qualified Prelude
> >
> > main :: IO ()
> > main = print Prelude.True
is invalid. The Prelude is imported with an explicit import decl.
The fact that it's a qualified import decl doesn't matter. Certainly,
the Report doesn't restrict its words to unqualified import.
Simon