When updating a version of a module, I failed to update all of the import lists that made reference to that module. This is the compilation error that resulted: ERROR "FooMain.hs" (line 9): Type error in application *** expression : f x *** term : x *** type : Foo *** does not match : Foo Well, Foo does not match Foo, how about that ;-) The message _could_ be, if anyone took any time to do this: *** expression : f x *** term : x *** type : Foo1.Foo *** does not match : Foo i.e. print the qualified type if it appears ambiguous (but is it really worth the hassle? Probably not). ---------------------------------------- module FooMain where import Foo2 import FooTests f :: Foo -> Bool f (Foo x) = x test = f x ---------------------------------------- module Foo2 where data Foo = Foo Bool deriving Show ---------------------------------------- module FooTests where import Foo1 -- this is the error x = Foo 6 ---------------------------------------- module Foo1 where data Foo = Foo Int deriving Show =============================================================================== Fabrice Lavier <[EMAIL PROTECTED]> (514) 345 1644, ext. 317 ===============================================================================
