{"action":"created","issue":{"url":"https://api.github.com/repos/dreixel/generic-deriving/issues/13","labels_url":"https://api.github.com/repos/dreixel/generic-deriving/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/dreixel/generic-deriving/issues/13/comments","events_url":"https://api.github.com/repos/dreixel/generic-deriving/issues/13/events","html_url":"https://github.com/dreixel/generic-deriving/issues/13","id":71138624,"number":13,"title":"Orphan instances for GHC < 7.1 don't match base","user":{"login":"RyanGlScott","id":2364661,"avatar_url":"https://avatars.githubusercontent.com/u/2364661?v=3","gravatar_id":"","url":"https://api.github.com/users/RyanGlScott","html_url":"https://github.com/RyanGlScott","followers_url":"https://api.github.com/users/RyanGlScott/followers","following_url":"https://api.github.com/users/RyanGlScott/following{/other_user}","gists_url":"https://api.github.com/users/RyanGlScott/gists{/gist_id}","starred_url":"https://api.github.com/users/RyanGlScott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RyanGlScott/subscriptions","organizations_url":"https://api.github.com/users/RyanGlScott/orgs","repos_url":"https://api.github.com/users/RyanGlScott/repos","events_url":"https://api.github.com/users/RyanGlScott/events{/privacy}","received_events_url":"https://api.github.com/users/RyanGlScott/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-27T00:04:16Z","updated_at":"2015-04-27T21:34:29Z","closed_at":null,"body":"`generic-deriving` currently defines orphan `Generic`/`Generic1` instances for `Char`, `Float`, `Int`, `Maybe`, and `[]`, but they don't seem to line up with the instances that `base` provides:\r\n\r\n* `base` [manually defines](http://hackage.haskell.org/package/base-4.8.0.0/docs/src/GHC-Generics.html#line-750) `Generic` instances for `Char` and `Int`, but they don't seem to match up with the [orphan instances](http://hackage.haskell.org/package/generic-deriving-1.7.0/docs/src/Generics-Deriving-Instances.html#line-44) in `generic-deriving` (e.g., `Rep Char = D1 D_Char (C1 C_Char (S1 NoSelector (Rec0 Char)))` in `base`, but `Rep Char = Rec0 Char` in `generic-deriving`).\r\n* `base` has derived `Generic1` instances for `[]` and `Maybe`. These derived `Generic1` instances include meta-information that `generic-deriving`'s orphan `Generic1` instances do not. For example, in `generic-deriving`, `Rep1 Maybe = D1 Maybe_ (C1 Nothing_ U1 :+: C1 Just_ Par1)`, whereas the derived instance gives `Rep Maybe = D1  (C1 Nothing_ U1 :+: C1 Just_ (S1 NoSelector Par1))`.\r\n\r\nIs this intentional?"},"comment":{"url":"https://api.github.com/repos/dreixel/generic-deriving/issues/comments/96828278","html_url":"https://github.com/dreixel/generic-deriving/issues/13#issuecomment-96828278","issue_url":"https://api.github.com/repos/dreixel/generic-deriving/issues/13","id":96828278,"user":{"login":"RyanGlScott","id":2364661,"avatar_url":"https://avatars.githubusercontent.com/u/2364661?v=3","gravatar_id":"","url":"https://api.github.com/users/RyanGlScott","html_url":"https://github.com/RyanGlScott","followers_url":"https://api.github.com/users/RyanGlScott/followers","following_url":"https://api.github.com/users/RyanGlScott/following{/other_user}","gists_url":"https://api.github.com/users/RyanGlScott/gists{/gist_id}","starred_url":"https://api.github.com/users/RyanGlScott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RyanGlScott/subscriptions","organizations_url":"https://api.github.com/users/RyanGlScott/orgs","repos_url":"https://api.github.com/users/RyanGlScott/repos","events_url":"https://api.github.com/users/RyanGlScott/events{/privacy}","received_events_url":"https://api.github.com/users/RyanGlScott/received_events","type":"User","site_admin":false},"created_at":"2015-04-27T21:34:29Z","updated_at":"2015-04-27T21:34:29Z","body":"I can make a pull request for this sometime soon.\r\n\r\nOne of the reason I'm asking about this is because I've also been looking into backporting `Generic(1)` instances back to GHC 7.2 and 7.4 as a part of the [`base-orphans`](http://hackage.haskell.org/package/base-orphans) package. My goal with `base-orphans` is to provide a common source for orphan instances (introduced by changes to `base`) to use with older versions of GHC, so that other packages don't have to define them (and possibly cause conflicts if a library has two dependencies with the same orphan instances).\r\n\r\nWould you be alright if I had `generic-deriving` reexport these `base-orphans` instances from `Generic.Deriving.Instances`? I could simply copy the instance definitions over to make them compatible with GHC < 7.1 (which uses the redefined `GHC.Generics` machinery)."}}