{"action":"closed","issue":{"url":"https://api.github.com/repos/arcfide/Co-dfns/issues/234","labels_url":"https://api.github.com/repos/arcfide/Co-dfns/issues/234/labels{/name}","comments_url":"https://api.github.com/repos/arcfide/Co-dfns/issues/234/comments","events_url":"https://api.github.com/repos/arcfide/Co-dfns/issues/234/events","html_url":"https://github.com/arcfide/Co-dfns/issues/234","id":97583035,"number":234,"title":"Create passes to preserve atomic return values during constant propagation and folding.","user":{"login":"arcfide","id":1235230,"avatar_url":"https://avatars.githubusercontent.com/u/1235230?v=3","gravatar_id":"","url":"https://api.github.com/users/arcfide","html_url":"https://github.com/arcfide","followers_url":"https://api.github.com/users/arcfide/followers","following_url":"https://api.github.com/users/arcfide/following{/other_user}","gists_url":"https://api.github.com/users/arcfide/gists{/gist_id}","starred_url":"https://api.github.com/users/arcfide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcfide/subscriptions","organizations_url":"https://api.github.com/users/arcfide/orgs","repos_url":"https://api.github.com/users/arcfide/repos","events_url":"https://api.github.com/users/arcfide/events{/privacy}","received_events_url":"https://api.github.com/users/arcfide/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/arcfide/Co-dfns/labels/issue","name":"issue","color":"5319e7"}],"state":"closed","locked":false,"assignee":{"login":"arcfide","id":1235230,"avatar_url":"https://avatars.githubusercontent.com/u/1235230?v=3","gravatar_id":"","url":"https://api.github.com/users/arcfide","html_url":"https://github.com/arcfide","followers_url":"https://api.github.com/users/arcfide/followers","following_url":"https://api.github.com/users/arcfide/following{/other_user}","gists_url":"https://api.github.com/users/arcfide/gists{/gist_id}","starred_url":"https://api.github.com/users/arcfide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcfide/subscriptions","organizations_url":"https://api.github.com/users/arcfide/orgs","repos_url":"https://api.github.com/users/arcfide/repos","events_url":"https://api.github.com/users/arcfide/events{/privacy}","received_events_url":"https://api.github.com/users/arcfide/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/arcfide/Co-dfns/milestones/10","html_url":"https://github.com/arcfide/Co-dfns/milestones/V1%20Feature%20Complete","labels_url":"https://api.github.com/repos/arcfide/Co-dfns/milestones/10/labels","id":1121944,"number":10,"title":"V1 Feature Complete","description":"This milestone is mostly about improving capabilities and robustness.","creator":{"login":"arcfide","id":1235230,"avatar_url":"https://avatars.githubusercontent.com/u/1235230?v=3","gravatar_id":"","url":"https://api.github.com/users/arcfide","html_url":"https://github.com/arcfide","followers_url":"https://api.github.com/users/arcfide/followers","following_url":"https://api.github.com/users/arcfide/following{/other_user}","gists_url":"https://api.github.com/users/arcfide/gists{/gist_id}","starred_url":"https://api.github.com/users/arcfide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcfide/subscriptions","organizations_url":"https://api.github.com/users/arcfide/orgs","repos_url":"https://api.github.com/users/arcfide/repos","events_url":"https://api.github.com/users/arcfide/events{/privacy}","received_events_url":"https://api.github.com/users/arcfide/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":46,"state":"open","created_at":"2015-05-20T20:21:19Z","updated_at":"2016-01-20T05:40:42Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-07-28T00:06:42Z","updated_at":"2016-01-20T05:40:42Z","closed_at":"2016-01-20T05:40:42Z","body":"As part of #130 we have come up with a strategy to fix the issue by implementing the following passes.\r\n\r\n- [x] Pass to wrap and mark atomic return values as monadic, unfoldable applications of `⊢`.\r\n- [ ] Pass to remove the unfoldable mark on the return expressions for the rest of the compiler\r\n\r\nThe above passes should be at the beginning and end of the constant propagation/folding fixpoint, respectively."}}