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

Reply via email to