Good point. A bug in the newtype deriving mechanism. Now fixed... (In fact the bug you observed was just a symptom of a nastier hidden bug, so it was a good thing you found it.)
Simon | -----Original Message----- | From: Sven Panne [mailto:Sven.Panne@;informatik.uni-muenchen.de] | Sent: 10 November 2002 18:06 | To: cvs-ghc | Cc: [EMAIL PROTECTED] | Subject: Re: FW: GLUT | | After wading through the epic discussion of finali[sz]ers (reading | "War and Peace", "Lord of The Rings", and "The Art of Computer | Programming" (vol. 1-3) simultaneously would probably have taken | less time :-}, I've finally found some more time for the "deriving" | problem. Given the following source files | | -- Bar.hs -------------------------------------------------- | module Bar where | data Int32 = Int32 Int deriving ( Eq ) | newtype CInt = CInt Int32 deriving ( Eq ) | --Foo.hs --------------------------------------------------- | module Foo where | import Bar | newtype Window = Window CInt deriving ( Eq ) | ------------------------------------------------------------ | | "ghc --make" behaves as expected: | | ------------------------------------------------------------ | panne@jeanluc:~> rm -f *.o *.hi ; ghc --make Bar.hs Foo.hs | ghc-5.05: chasing modules from: Bar.hs,Foo.hs | Compiling Bar ( Bar.hs, ./Bar.o ) | Compiling Foo ( Foo.hs, ./Foo.o ) | ------------------------------------------------------------ | | But the (supposedly?!) equivalent | | ------------------------------------------------------------ | panne@jeanluc:~> rm -f *.o *.hi ; ghc -c Bar.hs ; ghc -c Foo.hs | | Foo.hs:3: | No instance for (Eq Int32) | arising from the instance declaration at Foo.hs:3 | In the instance declaration for `Eq Window' | ------------------------------------------------------------ | | fails. Changing the "data" in Bar.hs into "newtype" works, and | if (==)::CInt is used explicitly in Foo.hs, everything is fine, | too. Merging Bar.hs into Foo.hs is OK, too. | | Looks like a task for Simon^2... | | Cheers, | S. | | _______________________________________________ | Cvs-ghc mailing list | [EMAIL PROTECTED] | http://www.haskell.org/mailman/listinfo/cvs-ghc _______________________________________________ Cvs-ghc mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/cvs-ghc
