Recompiling doesn't notice re-exports being removed
Ian Lynagh
igloo at earth.li
Tue Jul 19 18:23:47 EDT 2005
Recompiling doesn't notice re-exports being removed:
$ cat A.hs
module A where
foo :: Int
foo = 4
$ cat B.hs
module B (foo) where
import A (foo)
$ cat C.hs
module Main (main) where
import B (foo)
main :: IO ()
main = print foo
$ ghc --make C -o c
Chasing modules from: C
Compiling A ( ./A.hs, ./A.o )
Compiling B ( ./B.hs, ./B.o )
Compiling Main ( C.hs, C.o )
Linking ...
$ sed -i "s/foo//" B.hs
$ cat B.hs
module B () where
import A ()
$ ghc --make C -o c
Chasing modules from: C
Skipping A ( ./A.hs, ./A.o )
Compiling B ( ./B.hs, ./B.o )
Skipping Main ( C.hs, C.o )
Linking ...
$ # -------- compilation above should have failed, as below
$ rm *.o *.hi c
$ ghc --make C -o c
Chasing modules from: C
Compiling A ( ./A.hs, ./A.o )
Compiling B ( ./B.hs, ./B.o )
Compiling Main ( C.hs, C.o )
C.hs:4:10: Module `B' does not export `foo'
$
Thanks
Ian
More information about the Glasgow-haskell-bugs
mailing list