>   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



Reply via email to