re-exporting imported modules

Peter Thiemann thiemann@informatik.uni-freiburg.de
14 Feb 2001 21:42:12 +0100


I have the following problem:
I would like to define a non-standard prelude that redefines only a
few names of the standard prelude. The Haskell report suggests that
the following combination should do the job (BUG2A defines the
non-standard prelude and BUG2B tries to use it):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
module BUG2A (module BUG2A, module Prelude) where
import Prelude hiding (head)
head = "HEAD"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
module BUG2B where
import qualified Prelude
import BUG2A
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unfortunately, loading BUG2B into the Jan2001 beta release gives the
following error message:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR BUG2B.hs - Entity "head" imported from module "BUG2A" already defined in module "Prelude"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>From my understanding of the report, the following BUG2C user module
should also do the job, but it gives the same error message:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
module BUG2C where
import Prelude ()
import BUG2A
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Is this a known problem?
Cheers
-Peter