{"action":"created","issue":{"url":"https://api.github.com/repos/racket/typed-racket/issues/225","repository_url":"https://api.github.com/repos/racket/typed-racket","labels_url":"https://api.github.com/repos/racket/typed-racket/issues/225/labels{/name}","comments_url":"https://api.github.com/repos/racket/typed-racket/issues/225/comments","events_url":"https://api.github.com/repos/racket/typed-racket/issues/225/events","html_url":"https://github.com/racket/typed-racket/pull/225","id":113258658,"number":225,"title":"add separate read and write types for Box types","user":{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars0.githubusercontent.com/u/6600123?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false},"labels":[{"id":195053921,"url":"https://api.github.com/repos/racket/typed-racket/labels/in-progress","name":"in-progress","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars0.githubusercontent.com/u/6600123?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false},"assignees":[{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars0.githubusercontent.com/u/6600123?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/racket/typed-racket/milestones/1","html_url":"https://github.com/racket/typed-racket/milestone/1","labels_url":"https://api.github.com/repos/racket/typed-racket/milestones/1/labels","id":1870537,"number":1,"title":"6.7","description":"","creator":{"login":"samth","id":244723,"avatar_url":"https://avatars1.githubusercontent.com/u/244723?v=4","gravatar_id":"","url":"https://api.github.com/users/samth","html_url":"https://github.com/samth","followers_url":"https://api.github.com/users/samth/followers","following_url":"https://api.github.com/users/samth/following{/other_user}","gists_url":"https://api.github.com/users/samth/gists{/gist_id}","starred_url":"https://api.github.com/users/samth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samth/subscriptions","organizations_url":"https://api.github.com/users/samth/orgs","repos_url":"https://api.github.com/users/samth/repos","events_url":"https://api.github.com/users/samth/events{/privacy}","received_events_url":"https://api.github.com/users/samth/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"closed","created_at":"2016-07-07T16:50:14Z","updated_at":"2017-12-06T03:31:30Z","due_on":"2016-10-07T07:00:00Z","closed_at":"2017-12-06T03:31:30Z"},"comments":29,"created_at":"2015-10-25T22:29:44Z","updated_at":"2017-12-08T23:02:41Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/racket/typed-racket/pulls/225","html_url":"https://github.com/racket/typed-racket/pull/225","diff_url":"https://github.com/racket/typed-racket/pull/225.diff","patch_url":"https://github.com/racket/typed-racket/pull/225.patch"},"body":"The `Boxof` type now has two forms:\r\n - `(Boxof t)`, a type for boxes that can contain values of type `t`. You can write `t` values into the box with `set-box!`, and read `t` values from the box with `unbox`.\r\n - `(Boxof write-t read-t)`, a type for boxes that only allows writing `write-t` values with `set-box!`, while reading with `unbox` produces `read-t`.\r\n\r\nThe `write-t` position is contra-variant, and the `read-t` position is covariant. Read-only boxes can be expressed with `(Boxof Nothing read-t)`, and unions of box types make sense since the `read-t`s can be unioned together while the `write-t`s are restricted."},"comment":{"url":"https://api.github.com/repos/racket/typed-racket/issues/comments/350393914","html_url":"https://github.com/racket/typed-racket/pull/225#issuecomment-350393914","issue_url":"https://api.github.com/repos/racket/typed-racket/issues/225","id":350393914,"user":{"login":"AlexKnauth","id":6600123,"avatar_url":"https://avatars0.githubusercontent.com/u/6600123?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKnauth","html_url":"https://github.com/AlexKnauth","followers_url":"https://api.github.com/users/AlexKnauth/followers","following_url":"https://api.github.com/users/AlexKnauth/following{/other_user}","gists_url":"https://api.github.com/users/AlexKnauth/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKnauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKnauth/subscriptions","organizations_url":"https://api.github.com/users/AlexKnauth/orgs","repos_url":"https://api.github.com/users/AlexKnauth/repos","events_url":"https://api.github.com/users/AlexKnauth/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKnauth/received_events","type":"User","site_admin":false},"created_at":"2017-12-08T23:02:41Z","updated_at":"2017-12-08T23:02:41Z","author_association":"MEMBER","body":"When `tc-e` gets the type, it doesn't normalize it, and subtyping on unions of boxes doesn't work without normalizing it first. How should I fix this? Do I fix subtyping to merge unions of boxes before going through them?"}}
{"actor":{"display_login":"AlexKnauth"}}