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

Reply via email to