modules and re-export

Johan Nordlander nordland@cse.ogi.edu
Wed, 21 Mar 2001 14:26:56 -0800


Sigbjorn Finne wrote:
> 
> Peter Thiemann thiemann@informatik.uni-freiburg.de writes:
> >
> > 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"
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ....
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 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.
> 
> Hi Peter,
> 
> yep, that's right, and it is a known wrinkle in Hugs' implementation of
> modules.
> I submitted a source fix which addresses just this a couple of weeks ago,
> 
>   http://haskell.cs.yale.edu/pipermail/hugs-bugs/2001-March/000184.html
> 
> hopefully it will be included in future releases of Hugs98.
> 
> hth
> --sigbjorn

Hi all,

The fix will indeed be included in the next Hugs release (thanks
Sigbjorn!); in fact it can be tried right away by checking out the
latest revision from the cvs repository.  See http://cvs.haskell.org/
for further details.

Cheers,
Johan