{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/15292","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/15292/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/15292/comments","events_url":"https://api.github.com/repos/golang/go/issues/15292/events","html_url":"https://github.com/golang/go/issues/15292","id":148234131,"node_id":"MDU6SXNzdWUxNDgyMzQxMzE=","number":15292,"title":"proposal: spec: generic programming facilities","user":{"login":"adg","id":8446613,"node_id":"MDQ6VXNlcjg0NDY2MTM=","avatar_url":"https://avatars0.githubusercontent.com/u/8446613?v=4","gravatar_id":"","url":"https://api.github.com/users/adg","html_url":"https://github.com/adg","followers_url":"https://api.github.com/users/adg/followers","following_url":"https://api.github.com/users/adg/following{/other_user}","gists_url":"https://api.github.com/users/adg/gists{/gist_id}","starred_url":"https://api.github.com/users/adg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adg/subscriptions","organizations_url":"https://api.github.com/users/adg/orgs","repos_url":"https://api.github.com/users/adg/repos","events_url":"https://api.github.com/users/adg/events{/privacy}","received_events_url":"https://api.github.com/users/adg/received_events","type":"User","site_admin":false},"labels":[{"id":150880249,"node_id":"MDU6TGFiZWwxNTA4ODAyNDk=","url":"https://api.github.com/repos/golang/go/labels/Go2","name":"Go2","color":"ffaaaa","default":false},{"id":150880200,"node_id":"MDU6TGFiZWwxNTA4ODAyMDA=","url":"https://api.github.com/repos/golang/go/labels/LanguageChange","name":"LanguageChange","color":"ffaaaa","default":false},{"id":373402289,"node_id":"MDU6TGFiZWwzNzM0MDIyODk=","url":"https://api.github.com/repos/golang/go/labels/NeedsInvestigation","name":"NeedsInvestigation","color":"ededed","default":false},{"id":236419512,"node_id":"MDU6TGFiZWwyMzY0MTk1MTI=","url":"https://api.github.com/repos/golang/go/labels/Proposal","name":"Proposal","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/30","html_url":"https://github.com/golang/go/milestone/30","labels_url":"https://api.github.com/repos/golang/go/milestones/30/labels","id":1373555,"node_id":"MDk6TWlsZXN0b25lMTM3MzU1NQ==","number":30,"title":"Proposal","description":"Proposals that are pending (not yet accepted/rejected).\r\n","creator":{"login":"rsc","id":104030,"node_id":"MDQ6VXNlcjEwNDAzMA==","avatar_url":"https://avatars1.githubusercontent.com/u/104030?v=4","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":242,"closed_issues":585,"state":"open","created_at":"2015-10-24T01:40:49Z","updated_at":"2018-09-14T02:36:52Z","due_on":null,"closed_at":null},"comments":383,"created_at":"2016-04-14T02:33:22Z","updated_at":"2018-09-17T16:30:08Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"This issue proposes that Go should support some form of generic programming.\nIt has the Go2 label, since for Go1.x the language is more or less done. \n\nAccompanying this issue is [a general generics proposal](https://github.com/golang/proposal/blob/master/design/15292-generics.md) by @ianlancetaylor that includes four specific flawed proposals of generic programming mechanisms for Go.\n\nThe intent is not to add generics to Go at this time, but rather to show people what a complete proposal would look like. We hope this will be of help to anyone proposing similar language changes in the future.\n"},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/422082620","html_url":"https://github.com/golang/go/issues/15292#issuecomment-422082620","issue_url":"https://api.github.com/repos/golang/go/issues/15292","id":422082620,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMjA4MjYyMA==","user":{"login":"keean","id":508384,"node_id":"MDQ6VXNlcjUwODM4NA==","avatar_url":"https://avatars2.githubusercontent.com/u/508384?v=4","gravatar_id":"","url":"https://api.github.com/users/keean","html_url":"https://github.com/keean","followers_url":"https://api.github.com/users/keean/followers","following_url":"https://api.github.com/users/keean/following{/other_user}","gists_url":"https://api.github.com/users/keean/gists{/gist_id}","starred_url":"https://api.github.com/users/keean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keean/subscriptions","organizations_url":"https://api.github.com/users/keean/orgs","repos_url":"https://api.github.com/users/keean/repos","events_url":"https://api.github.com/users/keean/events{/privacy}","received_events_url":"https://api.github.com/users/keean/received_events","type":"User","site_admin":false},"created_at":"2018-09-17T16:30:08Z","updated_at":"2018-09-17T16:30:08Z","author_association":"NONE","body":"@luismasuelli-jobsity If I read the history of generic implementations in Go correctly, then it looks like the reason to introduce Contracts is because they did not want operator overloading in Interfaces.\r\n\r\nAn earlier proposal that was eventually rejected used interfaces to constrain parametric polymorphism, but seems to have been rejected because you could not use common operators like '+' in such functions because it is not definable in an interface. Contracts allow you to write `t == t` or `t + t` so you can indicate the type must support equality or addition etc.\r\n"}}
{"actor":{"display_login":"keean"}}