With this module: data Foo = Foo Int Bar deriving Show data Bar = Bar Int Int deriving Show a `Foo` (b `Bar` c) = 3 `Foo` (4 `Bar` 5) I get Error after type deriving/checking: Type error type clash between Prelude.Int and Main.Foo when trying to apply function at 5:15 to its 1:st argument at 5:6. while GHC and hugs are happy. Thanks Ian