I have a little question about the following two modules. Suppose you want to write your own variant of the prelude that redefines a couple of names but leaves all the rest unchanged. The Haskell report says that the following should work: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ module BUG2A (module BUG2A, module Prelude) where import Prelude hiding (head) head = "HEAD" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This overrides the definition of head and should reexport head along with everything imported from the Prelude. Hugs98/feb2001 loads it happily and says head :: [Char] Now, I want to use this module as an alternative prelude: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ module BUG2B where import qualified Prelude import BUG2A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Unfortunately, this does not behave as (I think) it should: Reading file "BUG2B.hs": Parsing........................................................................ ERROR "BUG2B.hs": Entity "head" imported from module "BUG2A" already defined in module "Prelude" However, this should be legal from my reading of the report. Any help appreciated. -Peter