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

support for deriving Vector/MVector instances
Since ghc-7.8, the following is no longer possible: ``` -- simplified example taken from the vector package class MVectorClass (v :: * -> * -> *) a where basicLength :: v s a -> Int data family MVector s a data instance MVector s Int -- implementation not important newtype Age = Age Int deriving (MVectorClass MVector) -- rejected ``` Following from discussion in #8177, to enable this ghc would need to support data families with representational matching, such that `MVector s Int` and `MVector s Age` are representationally equal. This has broken some code that previously worked, however as there are some workarounds I'm not sure how important it is. <details><summary>Trac metadata</summary> | Trac field | Value | | ---------------------- | -------------- | | Version | 7.8.2 | | Type | FeatureRequest | | TypeOfFailure | OtherFailure | | Priority | normal | | Resolution | Unresolved | | Component | Compiler | | Test case | | | Differential revisions | | | BlockedBy | | | Related | | | Blocking | | | CC | | | Operating system | | | Architecture | | </details> <!-- {"blocked_by":[],"summary":"data families with representational matching","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.8.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"Since ghc-7.8, the following is no longer possible:\r\n\r\n{{{\r\n-- simplified example taken from the vector package\r\nclass MVectorClass (v :: * -> * -> *) a where\r\n basicLength :: v s a -> Int\r\n\r\ndata family MVector s a\r\n\r\ndata instance MVector s Int -- implementation not important\r\n\r\nnewtype Age = Age Int deriving (MVectorClass MVector) -- rejected\r\n}}}\r\n\r\nFollowing from discussion in #8177, to enable this ghc would need to support data families with representational matching, such that `MVector s Int` and `MVector s Age` are representationally equal.\r\n\r\nThis has broken some code that previously worked, however as there are some workarounds I'm not sure how important it is.","type_of_failure":"OtherFailure","blocking":[]} -->
issue