
1) Here is the story: we have a module `Haskell' that imports both `Atom' and `Prettier' both of which define `string'.
module Haskell ( module Haskell, module Atom ) where import Atom hiding ( string ) import qualified Atom import Prettier
Now, does `Haskell' export the identifier `string'? GHC says no, nhc98 says yes. Honestly, I don't know whether GHC or nhc98 is wrong as I did not follow all the postings concerning the module system.
Here is a patch for this bug. Regards, Malcolm Index: src/compiler98/PreImport.hs =================================================================== RCS file: /usr/src/master/nhc/src/compiler98/PreImport.hs,v retrieving revision 1.15 diff -u -r1.15 PreImport.hs --- src/compiler98/PreImport.hs 2001/10/18 16:53:52 1.15 +++ src/compiler98/PreImport.hs 2001/11/01 13:40:19 @@ -414,5 +414,9 @@ [] -> st postidanots -> -} - iextractVarsType reExport q postidanots ctxs typ () st + iextractVarsType (\q tid idkind -> + if imported tid && not (q tid) + then reExport q tid idkind + else IEnone) + q postidanots ctxs typ () st