When I have a collection of files to compile and (1) I use --make to compile them together; (2) they are recursive it works the first time, but when I try to compile them the second time I get messages about bogus duplicate instance declarations, for example:
Skipping GlobalRegistry ( GlobalRegistry.hs, GlobalRegistry.o )
Duplicate instance declarations: In module CodedValue: Control.Monad.Trans.MonadIO CodedValue.CodingMonad In module CodedValue: Control.Monad.Trans.MonadIO CodedValue.CodingMonad
Duplicate instance declarations: In module CodedValue: GHC.Base.Monad CodedValue.CodingMonad In module CodedValue: GHC.Base.Monad CodedValue.CodingMonad
Duplicate instance declarations: In module CodedValue: CodedValue.HasCodedValue ty In module CodedValue: CodedValue.HasCodedValue ty
It looks as if GHC 6.2.1 includes a new clever feature by which when a module is imported using import {-# SOURCE #-}, it looks at the corresponding .hi file (if one is available). I would guess that it is somehow importing the instances from this .hi file; however this gets it muddled so that it thinks instances are really being duplicated when they are not.
Unfortunately I have given up (after about half an hour of trying) in my attempts to reduce this to a small test case. If the Glasgow Haskell people can't guess what is going on from the above description, I'll happily explain to them how to obtain and compile the current workbench sources (it's not as painful as it used to be) and hopefully it'll be possible to demonstrate the problem. _______________________________________________ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs