Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

GHC accepts multiple instances for the same type in different modules
as mentioned by Simon PJ in this thread: http://www.haskell.org/pipermail/haskell/2008-June/020436.html 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](http://haskell.org/onlinereport/decls.html#sect4.3.2) clearly states: > A type may not be declared as an instance of a particular class more than once in the program. <details><summary>Trac metadata</summary> | Trac field | Value | | ---------------------- | ------------ | | Version | 6.8.2 | | Type | Bug | | TypeOfFailure | OtherFailure | | Priority | normal | | Resolution | Unresolved | | Component | Compiler | | Test case | | | Differential revisions | | | BlockedBy | | | Related | | | Blocking | | | CC | | | Operating system | Unknown | | Architecture | Unknown | </details> <!-- {"blocked_by":[],"summary":"GHC accepts multiple instances for the same type in different modules","status":"New","operating_system":"Unknown","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"6.8.2","keywords":[],"differentials":[],"test_case":"","architecture":"Unknown","cc":[""],"type":"Bug","description":"as mentioned by Simon PJ in this thread:\r\n\r\nhttp://www.haskell.org/pipermail/haskell/2008-June/020436.html\r\n\r\nhere is the example, spelled out:\r\n{{{\r\nmodule B0 where\r\nclass C a where c :: a -> String\r\ndata T = T deriving Show\r\n\r\nmodule B1 where\r\nimport B0\r\ninstance C T where c _ = \"B1\"\r\nb = c T\r\n\r\nmodule B2 where\r\nimport B0\r\ninstance C T where c _ = \"B2\"\r\nb = c T\r\n\r\nmodule Main where\r\nimport B1\r\nimport B2\r\nmain = print (B1.b,B2.b)\r\n}}}\r\nthis is accepted without flags or errors and prints `(\"B1\",\"B2\")`.\r\n\r\nthe [http://haskell.org/onlinereport/decls.html#sect4.3.2 language report, section 4.3.2] clearly states:\r\n\r\n A type may not be declared as an instance of a particular class more than once in the program.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->
issue