Ticket #2356 (new bug)
GHC accepts multiple instances for the same type in different modules
|Reported by:||claus||Owned by:|
|Keywords:||Cc:||lennart@…, chak@…, mjm2002@…, leather@…|
|Type of failure:||None/Unknown||Difficulty:||Unknown|
|Test Case:||Blocked By:|
as mentioned by Simon PJ in this thread:
here is the example, spelled out:
module B0 where class C a where c :: a -> String data T = T deriving Show module B1 where import B0 instance C T where c _ = "B1" b = c T module B2 where import B0 instance C T where c _ = "B2" b = c T module Main where import B1 import B2 main = print (B1.b,B2.b)
this is accepted without flags or errors and prints ("B1","B2").
the language report, section 4.3.2 clearly states:
A type may not be declared as an instance of a particular class more than once in the program.