[{"id":"36898049170","type":"DeleteEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"ref":"add-krzysztofgb","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2024-03-26T15:39:38Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36898048984","type":"PushEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"repository_id":166616185,"push_id":17713373779,"size":2,"distinct_size":2,"ref":"refs/heads/main","head":"71388162921d04cac47a64d481fdd8c851131ae3","before":"4dca0546f4179c03fee5a3b227652e85421d0e67","commits":[{"sha":"178e464f455e0edeec7b4fd010dc95f74cf8465a","author":{"email":"oss@rtfeldman.com","name":"Richard Feldman"},"message":"Add @krzysztofgb to contributors - thank you! 😍","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/178e464f455e0edeec7b4fd010dc95f74cf8465a"},{"sha":"71388162921d04cac47a64d481fdd8c851131ae3","author":{"email":"oss@rtfeldman.com","name":"Richard Feldman"},"message":"Merge pull request #6607 from roc-lang/add-krzysztofgb\n\nAdd @krzysztofgb to contributors","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/71388162921d04cac47a64d481fdd8c851131ae3"}]},"public":true,"created_at":"2024-03-26T15:39:38Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36898048447","type":"PullRequestEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"closed","number":6607,"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6607","id":1788312131,"node_id":"PR_kwDOCe5cec5ql3pD","html_url":"https://github.com/roc-lang/roc/pull/6607","diff_url":"https://github.com/roc-lang/roc/pull/6607.diff","patch_url":"https://github.com/roc-lang/roc/pull/6607.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6607","number":6607,"state":"closed","locked":false,"title":"Add @krzysztofgb to contributors","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-03-24T18:53:36Z","updated_at":"2024-03-26T15:39:36Z","closed_at":"2024-03-26T15:39:36Z","merged_at":"2024-03-26T15:39:36Z","merge_commit_sha":"71388162921d04cac47a64d481fdd8c851131ae3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6607/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6607/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6607/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/178e464f455e0edeec7b4fd010dc95f74cf8465a","head":{"label":"roc-lang:add-krzysztofgb","ref":"add-krzysztofgb","sha":"178e464f455e0edeec7b4fd010dc95f74cf8465a","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-26T11:55:11Z","pushed_at":"2024-03-26T15:39:36Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122893,"stargazers_count":3423,"watchers_count":3423,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1083,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1083,"watchers":3423,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"4dca0546f4179c03fee5a3b227652e85421d0e67","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-26T11:55:11Z","pushed_at":"2024-03-26T15:39:36Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122893,"stargazers_count":3423,"watchers_count":3423,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1083,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1083,"watchers":3423,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607"},"html":{"href":"https://github.com/roc-lang/roc/pull/6607"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6607"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6607/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/178e464f455e0edeec7b4fd010dc95f74cf8465a"}},"author_association":"CONTRIBUTOR","auto_merge":{"enabled_by":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"merge_method":"merge","commit_title":"Merge pull request #6607 from roc-lang/add-krzysztofgb","commit_message":"Add @krzysztofgb to contributors"},"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":2,"deletions":0,"changed_files":2}},"public":true,"created_at":"2024-03-26T15:39:37Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36834903876","type":"PullRequestEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"opened","number":6607,"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6607","id":1788312131,"node_id":"PR_kwDOCe5cec5ql3pD","html_url":"https://github.com/roc-lang/roc/pull/6607","diff_url":"https://github.com/roc-lang/roc/pull/6607.diff","patch_url":"https://github.com/roc-lang/roc/pull/6607.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6607","number":6607,"state":"open","locked":false,"title":"Add @krzysztofgb to contributors","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-03-24T18:53:36Z","updated_at":"2024-03-24T18:53:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6607/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6607/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6607/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/178e464f455e0edeec7b4fd010dc95f74cf8465a","head":{"label":"roc-lang:add-krzysztofgb","ref":"add-krzysztofgb","sha":"178e464f455e0edeec7b4fd010dc95f74cf8465a","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-24T16:11:17Z","pushed_at":"2024-03-24T18:53:36Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122973,"stargazers_count":3415,"watchers_count":3415,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1085,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1085,"watchers":3415,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"4dca0546f4179c03fee5a3b227652e85421d0e67","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-24T16:11:17Z","pushed_at":"2024-03-24T18:53:36Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122973,"stargazers_count":3415,"watchers_count":3415,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1085,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1085,"watchers":3415,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607"},"html":{"href":"https://github.com/roc-lang/roc/pull/6607"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6607"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6607/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6607/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/178e464f455e0edeec7b4fd010dc95f74cf8465a"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":2,"deletions":0,"changed_files":2}},"public":true,"created_at":"2024-03-24T18:53:37Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36834899509","type":"CreateEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"ref":"add-krzysztofgb","ref_type":"branch","master_branch":"main","description":"A fast, friendly, functional language. Work in progress!","pusher_type":"user"},"public":true,"created_at":"2024-03-24T18:53:06Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36822327247","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1536658700","pull_request_review_id":1956404485,"id":1536658700,"node_id":"PRRC_kwDOCe5cec5bl40M","diff_hunk":"@@ -1135,6 +1138,8 @@ impl<'a> Pattern<'a> {\n false\n }\n }\n+\n+ Stmt(_) => todo!(),","path":"crates/compiler/parse/src/ast.rs","commit_id":"1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","original_commit_id":"1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Is it intentional to still have these two `todo!`s here, or should they actually be handled?","created_at":"2024-03-23T16:34:13Z","updated_at":"2024-03-23T16:34:13Z","html_url":"https://github.com/roc-lang/roc/pull/6601#discussion_r1536658700","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1536658700"},"html":{"href":"https://github.com/roc-lang/roc/pull/6601#discussion_r1536658700"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1536658700/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":1142,"original_line":1142,"side":"RIGHT","original_position":30,"position":30,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6601","id":1787643238,"node_id":"PR_kwDOCe5cec5qjUVm","html_url":"https://github.com/roc-lang/roc/pull/6601","diff_url":"https://github.com/roc-lang/roc/pull/6601.diff","patch_url":"https://github.com/roc-lang/roc/pull/6601.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6601","number":6601,"state":"open","locked":false,"title":"De-sugar bang `!` operator - part 3 - optional `{} =`","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR adds to #6599 to make `{} =` optional for suffixed idents in refs. For example the following *can* be parsed as a def `Stdout.line! \"Foo\"`. Doesn't support the case when the def can be parsed as a single expression such as in the following; \r\n\r\n```roc\r\nmain =\r\n # Parses as a single expression with three arguments to Suffixed(Stdout.line)\r\n Stdout.line! \"Foo\"\r\n\r\n Stdout.line \"Bar\"\r\n```\r\n\r\nTo support this, I think the way whitespace is handled for parsing expressions may need to change. \r\n\r\nThis PR was tested using the following program. \r\n\r\n```roc \r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout,\r\n cli.Task,\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n # Parses as three defs with a return expression\r\n a = \"Foo\"\r\n Stdout.line! a\r\n \r\n b = \"Bar\"\r\n Stdout.line b\r\n```","created_at":"2024-03-23T03:47:09Z","updated_at":"2024-03-23T16:34:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6daec3937088e6e12fd9f5a4d792c1c3982b584c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6601/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","head":{"label":"roc-lang:optional-unit-assign","ref":"optional-unit-assign","sha":"1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-23T12:28:02Z","pushed_at":"2024-03-23T12:50:05Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122753,"stargazers_count":3411,"watchers_count":3411,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1082,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1082,"watchers":3411,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"25f6aefb5b492f86914cd4806edfd423c79ee53c","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-23T12:28:02Z","pushed_at":"2024-03-23T12:50:05Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122753,"stargazers_count":3411,"watchers_count":3411,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1082,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1082,"watchers":3411,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601"},"html":{"href":"https://github.com/roc-lang/roc/pull/6601"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6601"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6601/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/1c54cd9e899ece3c4ccd603808f64bcfdaf5c241"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-23T16:34:13Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36822327229","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1956404485,"node_id":"PRR_kwDOCe5cec50nF0F","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","submitted_at":"2024-03-23T16:34:13Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6601#pullrequestreview-1956404485","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6601#pullrequestreview-1956404485"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6601","id":1787643238,"node_id":"PR_kwDOCe5cec5qjUVm","html_url":"https://github.com/roc-lang/roc/pull/6601","diff_url":"https://github.com/roc-lang/roc/pull/6601.diff","patch_url":"https://github.com/roc-lang/roc/pull/6601.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6601","number":6601,"state":"open","locked":false,"title":"De-sugar bang `!` operator - part 3 - optional `{} =`","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR adds to #6599 to make `{} =` optional for suffixed idents in refs. For example the following *can* be parsed as a def `Stdout.line! \"Foo\"`. Doesn't support the case when the def can be parsed as a single expression such as in the following; \r\n\r\n```roc\r\nmain =\r\n # Parses as a single expression with three arguments to Suffixed(Stdout.line)\r\n Stdout.line! \"Foo\"\r\n\r\n Stdout.line \"Bar\"\r\n```\r\n\r\nTo support this, I think the way whitespace is handled for parsing expressions may need to change. \r\n\r\nThis PR was tested using the following program. \r\n\r\n```roc \r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout,\r\n cli.Task,\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n # Parses as three defs with a return expression\r\n a = \"Foo\"\r\n Stdout.line! a\r\n \r\n b = \"Bar\"\r\n Stdout.line b\r\n```","created_at":"2024-03-23T03:47:09Z","updated_at":"2024-03-23T16:34:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6daec3937088e6e12fd9f5a4d792c1c3982b584c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6601/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6601/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","head":{"label":"roc-lang:optional-unit-assign","ref":"optional-unit-assign","sha":"1c54cd9e899ece3c4ccd603808f64bcfdaf5c241","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-23T12:28:02Z","pushed_at":"2024-03-23T12:50:05Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122753,"stargazers_count":3411,"watchers_count":3411,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1082,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1082,"watchers":3411,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"25f6aefb5b492f86914cd4806edfd423c79ee53c","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-23T12:28:02Z","pushed_at":"2024-03-23T12:50:05Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122753,"stargazers_count":3411,"watchers_count":3411,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1082,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1082,"watchers":3411,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601"},"html":{"href":"https://github.com/roc-lang/roc/pull/6601"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6601"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6601/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6601/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/1c54cd9e899ece3c4ccd603808f64bcfdaf5c241"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-23T16:34:14Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36812233596","type":"IssueCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/roc-lang/roc/issues/6526","repository_url":"https://api.github.com/repos/roc-lang/roc","labels_url":"https://api.github.com/repos/roc-lang/roc/issues/6526/labels{/name}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6526/comments","events_url":"https://api.github.com/repos/roc-lang/roc/issues/6526/events","html_url":"https://github.com/roc-lang/roc/pull/6526","id":2136954827,"node_id":"PR_kwDOCe5cec5m__gk","number":6526,"title":"add: sort on function names in the docs","user":{"login":"gunnarahlberg","id":15113,"node_id":"MDQ6VXNlcjE1MTEz","avatar_url":"https://avatars.githubusercontent.com/u/15113?v=4","gravatar_id":"","url":"https://api.github.com/users/gunnarahlberg","html_url":"https://github.com/gunnarahlberg","followers_url":"https://api.github.com/users/gunnarahlberg/followers","following_url":"https://api.github.com/users/gunnarahlberg/following{/other_user}","gists_url":"https://api.github.com/users/gunnarahlberg/gists{/gist_id}","starred_url":"https://api.github.com/users/gunnarahlberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gunnarahlberg/subscriptions","organizations_url":"https://api.github.com/users/gunnarahlberg/orgs","repos_url":"https://api.github.com/users/gunnarahlberg/repos","events_url":"https://api.github.com/users/gunnarahlberg/events{/privacy}","received_events_url":"https://api.github.com/users/gunnarahlberg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"Anton-4","id":17049058,"node_id":"MDQ6VXNlcjE3MDQ5MDU4","avatar_url":"https://avatars.githubusercontent.com/u/17049058?v=4","gravatar_id":"","url":"https://api.github.com/users/Anton-4","html_url":"https://github.com/Anton-4","followers_url":"https://api.github.com/users/Anton-4/followers","following_url":"https://api.github.com/users/Anton-4/following{/other_user}","gists_url":"https://api.github.com/users/Anton-4/gists{/gist_id}","starred_url":"https://api.github.com/users/Anton-4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Anton-4/subscriptions","organizations_url":"https://api.github.com/users/Anton-4/orgs","repos_url":"https://api.github.com/users/Anton-4/repos","events_url":"https://api.github.com/users/Anton-4/events{/privacy}","received_events_url":"https://api.github.com/users/Anton-4/received_events","type":"User","site_admin":false},"assignees":[{"login":"Anton-4","id":17049058,"node_id":"MDQ6VXNlcjE3MDQ5MDU4","avatar_url":"https://avatars.githubusercontent.com/u/17049058?v=4","gravatar_id":"","url":"https://api.github.com/users/Anton-4","html_url":"https://github.com/Anton-4","followers_url":"https://api.github.com/users/Anton-4/followers","following_url":"https://api.github.com/users/Anton-4/following{/other_user}","gists_url":"https://api.github.com/users/Anton-4/gists{/gist_id}","starred_url":"https://api.github.com/users/Anton-4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Anton-4/subscriptions","organizations_url":"https://api.github.com/users/Anton-4/orgs","repos_url":"https://api.github.com/users/Anton-4/repos","events_url":"https://api.github.com/users/Anton-4/events{/privacy}","received_events_url":"https://api.github.com/users/Anton-4/received_events","type":"User","site_admin":false}],"milestone":null,"comments":9,"created_at":"2024-02-15T16:26:34Z","updated_at":"2024-03-22T22:12:57Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6526","html_url":"https://github.com/roc-lang/roc/pull/6526","diff_url":"https://github.com/roc-lang/roc/pull/6526.diff","patch_url":"https://github.com/roc-lang/roc/pull/6526.patch","merged_at":null},"body":"The sorting of the entries is added, with styling that mimics neighbours.\r\n\r\nAttributes are sorted by javasrcipts native comparison. Example: Str concat and contains are after UTF8ByteProblem and UTF8Problem\r\n\r\nThis is related to the https://github.com/roc-lang/roc/issues/6494\r\n\r\nI saw the list in the ticket. This PR ticks some of the boxes\r\n![Screen Shot 2024-02-15 at 17 26 11](https://github.com/roc-lang/roc/assets/15113/e599fce8-5d0f-43b8-b9e4-3a4e0d1a5b48)\r\n\r\n","reactions":{"url":"https://api.github.com/repos/roc-lang/roc/issues/6526/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/roc-lang/roc/issues/6526/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/roc-lang/roc/issues/comments/2016008879","html_url":"https://github.com/roc-lang/roc/pull/6526#issuecomment-2016008879","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6526","id":2016008879,"node_id":"IC_kwDOCe5cec54Kdqv","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"created_at":"2024-03-22T22:12:57Z","updated_at":"2024-03-22T22:12:57Z","author_association":"CONTRIBUTOR","body":"Regarding icons and licenses, my preference is (and I know we aren't doing this consistently, but I'm working on changing the other place we use an icon):\r\n* Only use SVGs that have a free license (attribution is fine; we can do that in a comment)\r\n* Add the SVG source code to an existing .css file (e.g. [like this](https://stackoverflow.com/a/10768631)), so it doesn't require an extra network request (like a separate .svg file would) and also doesn't require the SVG's contents being inlined everywhere we use it.","reactions":{"url":"https://api.github.com/repos/roc-lang/roc/issues/comments/2016008879/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-22T22:12:58Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36794030299","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1954546893,"node_id":"PRR_kwDOCe5cec50gATN","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Sweet, looking good!","commit_id":"4920ef8e7d1232153e46ce2adbf716fa7e8ab819","submitted_at":"2024-03-22T11:16:52Z","state":"approved","html_url":"https://github.com/roc-lang/roc/pull/6599#pullrequestreview-1954546893","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6599","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6599#pullrequestreview-1954546893"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6599"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6599","id":1786095197,"node_id":"PR_kwDOCe5cec5qdaZd","html_url":"https://github.com/roc-lang/roc/pull/6599","diff_url":"https://github.com/roc-lang/roc/pull/6599.diff","patch_url":"https://github.com/roc-lang/roc/pull/6599.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6599","number":6599,"state":"open","locked":false,"title":"De-sugar bang `!` operator - part 2","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR;\r\n- Moves the parsing for suffixed things into `chomp_identifier_chain` to improve reliability (only valid `Idents` can be suffixed) and enable nesting within expressions.\r\n\r\n\r\nTested using \r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout, \r\n cli.Task,\r\n cli.File,\r\n cli.Path,\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n path = Path.fromStr \"echo.txt\"\r\n\r\n {} = \r\n \"Opening file: \" \r\n |> Str.concat (Path.display path) \r\n |> Stdout.line!\r\n\r\n str =\r\n File.readUtf8 path\r\n |> Task.onErr! \\err -> Task.ok (Inspect.toStr err)\r\n\r\n Stdout.line str\r\n```\r\n\r\n","created_at":"2024-03-22T08:25:22Z","updated_at":"2024-03-22T11:16:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ce155dd72bd4d587807981cbcc8d58bc1972ffc5","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6599/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6599/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6599/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/4920ef8e7d1232153e46ce2adbf716fa7e8ab819","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"4920ef8e7d1232153e46ce2adbf716fa7e8ab819","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-22T10:45:40Z","pushed_at":"2024-03-22T09:44:49Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122302,"stargazers_count":3410,"watchers_count":3410,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1080,"watchers":3410,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"d988eadbb1ed9d2f9e559564875355b1760fdef7","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-22T10:45:40Z","pushed_at":"2024-03-22T09:44:49Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122302,"stargazers_count":3410,"watchers_count":3410,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":243,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":243,"open_issues":1080,"watchers":3410,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6599"},"html":{"href":"https://github.com/roc-lang/roc/pull/6599"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6599"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6599/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6599/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6599/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/4920ef8e7d1232153e46ce2adbf716fa7e8ab819"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-22T11:16:53Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36793519483","type":"IssueCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/roc-lang/roc/issues/6587","repository_url":"https://api.github.com/repos/roc-lang/roc","labels_url":"https://api.github.com/repos/roc-lang/roc/issues/6587/labels{/name}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6587/comments","events_url":"https://api.github.com/repos/roc-lang/roc/issues/6587/events","html_url":"https://github.com/roc-lang/roc/pull/6587","id":2187669611,"node_id":"PR_kwDOCe5cec5ps36r","number":6587,"title":"Decoding of records with missing fields. ","user":{"login":"faldor20","id":26968035,"node_id":"MDQ6VXNlcjI2OTY4MDM1","avatar_url":"https://avatars.githubusercontent.com/u/26968035?v=4","gravatar_id":"","url":"https://api.github.com/users/faldor20","html_url":"https://github.com/faldor20","followers_url":"https://api.github.com/users/faldor20/followers","following_url":"https://api.github.com/users/faldor20/following{/other_user}","gists_url":"https://api.github.com/users/faldor20/gists{/gist_id}","starred_url":"https://api.github.com/users/faldor20/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faldor20/subscriptions","organizations_url":"https://api.github.com/users/faldor20/orgs","repos_url":"https://api.github.com/users/faldor20/repos","events_url":"https://api.github.com/users/faldor20/events{/privacy}","received_events_url":"https://api.github.com/users/faldor20/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2024-03-15T03:56:27Z","updated_at":"2024-03-22T10:58:44Z","closed_at":null,"author_association":"COLLABORATOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6587","html_url":"https://github.com/roc-lang/roc/pull/6587","diff_url":"https://github.com/roc-lang/roc/pull/6587.diff","patch_url":"https://github.com/roc-lang/roc/pull/6587.patch","merged_at":null},"body":"This is a test implementation of decoding records where some fields may not exist in the encoded data.\r\n\r\nBefore giving up decoding it will attempt to run the decoder for any missing field with a 0 byte input: `Decode.decodeWith [] Decode.decoder fmt` and if the decoder returns a success it will put that in the field.\r\n\r\nThis allows us to define types that have specific behavior when decoding nothing. eg:\r\n```roc\r\nOption val := [None, Some val]\r\n#...\r\noptionDecode = Decode.custom \\bytes, fmt ->\r\n if bytes |> List.len == 0 then\r\n { result: Ok (@Option (None)), rest: [] }\r\n else\r\n when bytes |> Decode.decodeWith (Decode.decoder) fmt is\r\n { result: Ok res, rest } -> { result: Ok (@Option (Some res)), rest }\r\n { result: Err a, rest } -> { result: Err a, rest }\r\n```\r\nAs we can see, if no bytes are given we just output a \"None\" value\r\n\r\n\r\n A full code example:
\r\n\r\n```roc\r\nOption val := [None, Some val]\r\n implements [\r\n Eq {\r\n isEq: optionEq,\r\n },\r\n Decoding {\r\n decoder: optionDecode,\r\n },\r\n ]\r\n\r\nnone = \\{} -> @Option None\r\nsome = \\a -> @Option (Some a)\r\nisNone = \\@Option opt ->\r\n when opt is\r\n None -> Bool.true\r\n _ -> Bool.false\r\n\r\noptionEq = \\@Option a, @Option b ->\r\n when (a, b) is\r\n (Some a1, Some b1) -> a1 == b1\r\n (None, None) -> Bool.true\r\n _ -> Bool.false\r\n\r\noptionDecode = Decode.custom \\bytes, fmt ->\r\n if bytes |> List.len == 0 then\r\n { result: Ok (@Option (None)), rest: [] }\r\n else\r\n when bytes |> Decode.decodeWith (Decode.decoder) fmt is\r\n { result: Ok res, rest } -> { result: Ok (@Option (Some res)), rest }\r\n { result: Err a, rest } -> { result: Err a, rest }\r\n\r\n# Now I can try to modify the json decoding to try decoding every type with a zero byte buffer and see if that will decode my field\r\nOptionTest : { y : U8, maybe : Option U8 }\r\nexpect\r\n decoded : Result OptionTest _\r\n decoded = \"{\\\"y\\\":1}\" |> Str.toUtf8 |> Decode.fromBytes TotallyNotJson.json\r\n dbg \"hil\"\r\n\r\n expected = Ok ({ y: 1u8, maybe: none {} })\r\n isGood =\r\n when (decoded, expected) is\r\n (Ok a, Ok b) ->\r\n a == b\r\n\r\n _ -> Bool.false\r\n isGood == Bool.true\r\nOptionTest2 : { maybe : Option U8 }\r\nexpect\r\n decoded : Result OptionTest2 _\r\n decoded =\r\n \"\"\"\r\n {\"maybe\":1}\r\n \"\"\"\r\n |> Str.toUtf8\r\n |> Decode.fromBytes TotallyNotJson.json\r\n dbg \"hil\"\r\n\r\n expected = Ok ({ maybe: some 1u8 })\r\n expected == decoded\r\n\r\n\r\n```\r\n\r\n ","reactions":{"url":"https://api.github.com/repos/roc-lang/roc/issues/6587/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/roc-lang/roc/issues/6587/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/roc-lang/roc/issues/comments/2014840826","html_url":"https://github.com/roc-lang/roc/pull/6587#issuecomment-2014840826","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6587","id":2014840826,"node_id":"IC_kwDOCe5cec54GAf6","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"created_at":"2024-03-22T10:58:43Z","updated_at":"2024-03-22T10:58:43Z","author_association":"CONTRIBUTOR","body":"I'm ok with it if @ayazhafiz is ok with it! 👍 ","reactions":{"url":"https://api.github.com/repos/roc-lang/roc/issues/comments/2014840826/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-22T10:58:44Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36782878686","type":"PushEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"repository_id":166616185,"push_id":17655422766,"size":1,"distinct_size":1,"ref":"refs/heads/can-docs","head":"fb57f7c2d4675189e1effe5fabff951a14ecacab","before":"b1550632daa4f10a30f1cbe23e496cab11702d5a","commits":[{"sha":"fb57f7c2d4675189e1effe5fabff951a14ecacab","author":{"email":"oss@rtfeldman.com","name":"Richard Feldman"},"message":"Got alias inlining working in docs","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/fb57f7c2d4675189e1effe5fabff951a14ecacab"}]},"public":true,"created_at":"2024-03-22T02:41:46Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36756927882","type":"PushEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"repository_id":166616185,"push_id":17643517823,"size":12,"distinct_size":12,"ref":"refs/heads/main","head":"d988eadbb1ed9d2f9e559564875355b1760fdef7","before":"ad78e04012adabcf7c452a16ecf844a9127e6edb","commits":[{"sha":"3b2e9e36b8d5ca5d8822e28dab754f8d1479ae6a","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"rename operator.rs to desugar.rs","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/3b2e9e36b8d5ca5d8822e28dab754f8d1479ae6a"},{"sha":"406ffdffabcbce2314f2e3875d367df204da1dec","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"WIP partial implementation for desugar_defs_node_suffixed","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/406ffdffabcbce2314f2e3875d367df204da1dec"},{"sha":"d6a01b30141cab04db7508a803c406ddb2402742","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"WIP stuck on removing Defs","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/d6a01b30141cab04db7508a803c406ddb2402742"},{"sha":"c4b459b436e9f2b4e3508608ac7def68b8fefeb7","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"handle Suffixed in first index","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/c4b459b436e9f2b4e3508608ac7def68b8fefeb7"},{"sha":"248c2a3f349ea50b2b923085637010f02869e23f","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"handle only one def that is Suffixed","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/248c2a3f349ea50b2b923085637010f02869e23f"},{"sha":"cc10df6db98c04eef7ae2c2e08c3174313d9a698","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"handle Suffixed is in the middle of our Defs","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/cc10df6db98c04eef7ae2c2e08c3174313d9a698"},{"sha":"e74501981e3fbba5611e1029e411916d0e8d349f","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"fmt and clippy fixes","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/e74501981e3fbba5611e1029e411916d0e8d349f"},{"sha":"a394f1b4cf5d4cdb6b44e36e4c160d96ab2f8556","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"update from review comments","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/a394f1b4cf5d4cdb6b44e36e4c160d96ab2f8556"},{"sha":"a983ab834150564713e81305838f38e5f6d3ed84","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"use CalledVia::BangSuffix","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/a983ab834150564713e81305838f38e5f6d3ed84"},{"sha":"5e2fc1c3fdb0fe9dc31b59be678c792af3435105","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"handle suffixed after pizza |>","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/5e2fc1c3fdb0fe9dc31b59be678c792af3435105"},{"sha":"4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","author":{"email":"lukewilliamboswell@gmail.com","name":"Luke Boswell"},"message":"desugar no args correctly e.g. Stdin.line!","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5"},{"sha":"d988eadbb1ed9d2f9e559564875355b1760fdef7","author":{"email":"oss@rtfeldman.com","name":"Richard Feldman"},"message":"Merge pull request #6598 from roc-lang/desugar-bang\n\nDe-sugar bang `!` for `Defs` nodes","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/d988eadbb1ed9d2f9e559564875355b1760fdef7"}]},"public":true,"created_at":"2024-03-21T11:14:03Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36756927606","type":"DeleteEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"ref":"desugar-bang","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2024-03-21T11:14:03Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36756927372","type":"PullRequestEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"closed","number":6598,"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"closed","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-21T11:14:02Z","closed_at":"2024-03-21T11:14:01Z","merged_at":"2024-03-21T11:14:01Z","merge_commit_sha":"d988eadbb1ed9d2f9e559564875355b1760fdef7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T11:14:02Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122277,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1079,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1079,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T11:14:02Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122277,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1079,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1079,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"comments":1,"review_comments":12,"maintainer_can_modify":false,"commits":11,"additions":361,"deletions":12,"changed_files":10}},"public":true,"created_at":"2024-03-21T11:14:02Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36756719760","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1951834262,"node_id":"PRR_kwDOCe5cec50VqCW","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Excellent, thank you so much @lukewilliamboswell! 😍 😍 😍 ","commit_id":"4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","submitted_at":"2024-03-21T11:07:30Z","state":"approved","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1951834262","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1951834262"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-21T11:07:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ae6948b731afbf7e2ce93dbea1769cece57e53fe","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T08:26:40Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122277,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T08:26:40Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122277,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/4035221dac3e87dfb54ffc82b6b30bfb3c7fe5d5"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-21T11:07:30Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36746427917","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949406468,"node_id":"PRR_kwDOCe5cec50MZUE","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Overall approach looks good! There are some opportunities for performance improvements in the future, but given how localized this is and how little time the compiler spends overall on desugaring, I don't think they're blockers or anything.\r\n\r\nThis is super exciting! 😻 ","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:19:45Z","state":"dismissed","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-21T04:51:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/a983ab834150564713e81305838f38e5f6d3ed84","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"a983ab834150564713e81305838f38e5f6d3ed84","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T04:51:28Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122266,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T04:51:28Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122266,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/a983ab834150564713e81305838f38e5f6d3ed84"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-21T04:51:30Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36746427925","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949406468,"node_id":"PRR_kwDOCe5cec50MZUE","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Overall approach looks good! There are some opportunities for performance improvements in the future, but given how localized this is and how little time the compiler spends overall on desugaring, I don't think they're blockers or anything.\r\n\r\nThis is super exciting! 😻 ","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:19:45Z","state":"dismissed","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-21T04:51:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/a983ab834150564713e81305838f38e5f6d3ed84","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"a983ab834150564713e81305838f38e5f6d3ed84","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T04:51:28Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122266,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-21T04:51:28Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122266,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1080,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1080,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/a983ab834150564713e81305838f38e5f6d3ed84"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-21T04:51:30Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36743390975","type":"PushEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"repository_id":166616185,"push_id":17637256477,"size":1,"distinct_size":1,"ref":"refs/heads/can-docs","head":"b1550632daa4f10a30f1cbe23e496cab11702d5a","before":"3614827f2528162ee27ae4c07da3f1d9d0fb7a75","commits":[{"sha":"b1550632daa4f10a30f1cbe23e496cab11702d5a","author":{"email":"oss@rtfeldman.com","name":"Richard Feldman"},"message":"wip","distinct":true,"url":"https://api.github.com/repos/roc-lang/roc/commits/b1550632daa4f10a30f1cbe23e496cab11702d5a"}]},"public":true,"created_at":"2024-03-21T01:48:14Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36729114916","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949406468,"node_id":"PRR_kwDOCe5cec50MZUE","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Overall approach looks good! There are some opportunities for performance improvements in the future, but given how localized this is and how little time the compiler spends overall on desugaring, I don't think they're blockers or anything.\r\n\r\nThis is super exciting! 😻 ","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:19:45Z","state":"approved","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949406468"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:19:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:19:46Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36729082622","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532398418","pull_request_review_id":1949404304,"id":1532398418,"node_id":"PRRC_kwDOCe5cec5bVotS","diff_hunk":"@@ -143,6 +143,218 @@ pub fn desugar_defs<'a>(\n }\n }\n \n+fn desugar_defs_node_suffixed<'a>(\n+ arena: &'a Bump,\n+ loc_expr: &'a Loc>,\n+) -> &'a Loc> {\n+ match loc_expr.value {\n+ Defs(defs, loc_ret) => {\n+ match defs.search_suffixed_defs() {\n+ None => loc_expr,\n+ Some((tag_index, value_index)) => {\n+ if defs.value_defs.len() == 1 {\n+ // We have only one value_def and it must be Suffixed\n+ // replace Defs with an Apply(Task.await) and Closure of loc_return\n+\n+ assert!(\n+ value_index == 0,\n+ \"we have only one value_def and so it must be Suffixed \"\n+ );\n+\n+ // Unwrap Suffixed def within Apply, and the pattern so we can use in the call to Task.await\n+ let (suffixed_sub_apply_loc, pattern) = unwrap_suffixed_def_and_pattern(\n+ arena,\n+ loc_expr.region,\n+ defs.value_defs[0],\n+ );\n+\n+ // Create Closure for the result of the recursion,\n+ // use the pattern from our Suffixed Def as closure arument\n+ let closure_expr = Closure(arena.alloc([*pattern]), loc_ret);\n+\n+ // Apply arguments to Task.await, first is the unwrapped Suffix expr second is the Closure\n+ let mut task_await_apply_args: Vec<&'a Loc>> = Vec::new_in(arena);\n+\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, suffixed_sub_apply_loc)));\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, closure_expr)));\n+\n+ arena.alloc(Loc::at(\n+ loc_expr.region,\n+ Apply(\n+ arena.alloc(Loc {\n+ region: loc_expr.region,\n+ value: Var {\n+ module_name: ModuleName::TASK,\n+ ident: \"await\",\n+ },\n+ }),\n+ arena.alloc(task_await_apply_args),\n+ CalledVia::Space,\n+ ),\n+ ))\n+ } else if value_index == 0 {\n+ // We have a Suffixed in first index, and also other nodes in Defs\n+ // pop the first Suffixed and recurse on Defs (without first) to handle any other Suffixed\n+ // the result will be wrapped in an Apply(Task.await) and Closure\n+\n+ assert!(\n+ defs.value_defs.len() > 1,\n+ \"we know we have other Defs that will need to be considered\"\n+ );\n+\n+ // Unwrap Suffixed def within Apply, and the pattern so we can use in the call to Task.await\n+ let (suffixed_sub_apply_loc, pattern) = unwrap_suffixed_def_and_pattern(\n+ arena,\n+ loc_expr.region,\n+ defs.value_defs[0],\n+ );\n+\n+ // Get a mutable copy of the defs\n+ let mut copied_defs = defs.clone();\n+\n+ // Remove the suffixed def\n+ copied_defs.remove_value_def(tag_index);\n+\n+ // Recurse using new Defs to get new expression\n+ let new_loc_expr = desugar_defs_node_suffixed(\n+ arena,\n+ arena.alloc(Loc::at(\n+ loc_expr.region,\n+ Defs(arena.alloc(copied_defs), loc_ret),\n+ )),\n+ );\n+\n+ // Create Closure for the result of the recursion,\n+ // use the pattern from our Suffixed Def as closure arument\n+ let closure_expr = Closure(arena.alloc([*pattern]), new_loc_expr);\n+\n+ // Apply arguments to Task.await, first is the unwrapped Suffix expr second is the Closure\n+ let mut task_await_apply_args: Vec<&'a Loc>> = Vec::new_in(arena);\n+\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, suffixed_sub_apply_loc)));\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, closure_expr)));\n+\n+ arena.alloc(Loc::at(\n+ loc_expr.region,\n+ Apply(\n+ arena.alloc(Loc {\n+ region: loc_expr.region,\n+ value: Var {\n+ module_name: ModuleName::TASK,\n+ ident: \"await\",\n+ },\n+ }),\n+ arena.alloc(task_await_apply_args),\n+ CalledVia::Space,\n+ ),\n+ ))\n+ } else {\n+ // The first Suffixed is in the middle of our Defs\n+ // We will keep the defs before the Suffixed in our Defs node\n+ // We take the defs after the Suffixed and create a new Defs node using the current loc_return\n+ // Then recurse on the new Defs node, wrap the result in an Apply(Task.await) and Closure,\n+ // which will become the new loc_return","path":"crates/compiler/can/src/desugar.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Thanks for all the detailed comments on this! 😃 ","created_at":"2024-03-20T16:18:51Z","updated_at":"2024-03-20T16:18:52Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532398418","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532398418"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532398418"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532398418/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":260,"original_line":260,"side":"RIGHT","original_position":127,"position":127,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:18:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:18:51Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36729082558","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949404304,"node_id":"PRR_kwDOCe5cec50MYyQ","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:18:51Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949404304","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949404304"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:18:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:18:52Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36729025620","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949400443,"node_id":"PRR_kwDOCe5cec50MX17","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:17:21Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949400443","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949400443"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:17:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:17:22Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36729025665","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532395962","pull_request_review_id":1949400443,"id":1532395962,"node_id":"PRRC_kwDOCe5cec5bVoG6","diff_hunk":"@@ -143,6 +143,218 @@ pub fn desugar_defs<'a>(\n }\n }\n \n+fn desugar_defs_node_suffixed<'a>(\n+ arena: &'a Bump,\n+ loc_expr: &'a Loc>,\n+) -> &'a Loc> {\n+ match loc_expr.value {\n+ Defs(defs, loc_ret) => {\n+ match defs.search_suffixed_defs() {\n+ None => loc_expr,\n+ Some((tag_index, value_index)) => {\n+ if defs.value_defs.len() == 1 {\n+ // We have only one value_def and it must be Suffixed\n+ // replace Defs with an Apply(Task.await) and Closure of loc_return\n+\n+ assert!(\n+ value_index == 0,\n+ \"we have only one value_def and so it must be Suffixed \"\n+ );\n+\n+ // Unwrap Suffixed def within Apply, and the pattern so we can use in the call to Task.await\n+ let (suffixed_sub_apply_loc, pattern) = unwrap_suffixed_def_and_pattern(\n+ arena,\n+ loc_expr.region,\n+ defs.value_defs[0],\n+ );\n+\n+ // Create Closure for the result of the recursion,\n+ // use the pattern from our Suffixed Def as closure arument\n+ let closure_expr = Closure(arena.alloc([*pattern]), loc_ret);\n+\n+ // Apply arguments to Task.await, first is the unwrapped Suffix expr second is the Closure\n+ let mut task_await_apply_args: Vec<&'a Loc>> = Vec::new_in(arena);\n+\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, suffixed_sub_apply_loc)));\n+ task_await_apply_args\n+ .push(arena.alloc(Loc::at(loc_expr.region, closure_expr)));\n+\n+ arena.alloc(Loc::at(\n+ loc_expr.region,\n+ Apply(\n+ arena.alloc(Loc {\n+ region: loc_expr.region,\n+ value: Var {\n+ module_name: ModuleName::TASK,\n+ ident: \"await\",\n+ },\n+ }),\n+ arena.alloc(task_await_apply_args),\n+ CalledVia::Space,","path":"crates/compiler/can/src/desugar.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"Doesn't have to be in this PR, but I think we should add a `CalledVia::BangSuffix` and use it here, so we can tell later on in error messages that this `Task.await` was generated during desugaring.","created_at":"2024-03-20T16:17:21Z","updated_at":"2024-03-20T16:17:21Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532395962","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532395962"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532395962"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532395962/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":194,"original_line":194,"side":"RIGHT","original_position":61,"position":61,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:17:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:17:21Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728989016","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532394530","pull_request_review_id":1949397982,"id":1532394530,"node_id":"PRRC_kwDOCe5cec5bVnwi","diff_hunk":"@@ -143,6 +143,218 @@ pub fn desugar_defs<'a>(\n }\n }\n \n+fn desugar_defs_node_suffixed<'a>(\n+ arena: &'a Bump,\n+ loc_expr: &'a Loc>,\n+) -> &'a Loc> {\n+ match loc_expr.value {\n+ Defs(defs, loc_ret) => {\n+ match defs.search_suffixed_defs() {\n+ None => loc_expr,\n+ Some((tag_index, value_index)) => {\n+ if defs.value_defs.len() == 1 {\n+ // We have only one value_def and it must be Suffixed\n+ // replace Defs with an Apply(Task.await) and Closure of loc_return\n+\n+ assert!(\n+ value_index == 0,\n+ \"we have only one value_def and so it must be Suffixed \"\n+ );\n+\n+ // Unwrap Suffixed def within Apply, and the pattern so we can use in the call to Task.await\n+ let (suffixed_sub_apply_loc, pattern) = unwrap_suffixed_def_and_pattern(\n+ arena,\n+ loc_expr.region,\n+ defs.value_defs[0],\n+ );\n+\n+ // Create Closure for the result of the recursion,\n+ // use the pattern from our Suffixed Def as closure arument","path":"crates/compiler/can/src/desugar.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"```suggestion\r\n // use the pattern from our Suffixed Def as closure argument\r\n```","created_at":"2024-03-20T16:16:19Z","updated_at":"2024-03-20T16:16:20Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532394530","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532394530"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532394530"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532394530/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":172,"original_line":172,"side":"RIGHT","original_position":39,"position":39,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:16:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:16:19Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728988922","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949397982,"node_id":"PRR_kwDOCe5cec50MXPe","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:16:20Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949397982","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949397982"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:16:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:16:21Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728946477","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532392779","pull_request_review_id":1949394663,"id":1532392779,"node_id":"PRRC_kwDOCe5cec5bVnVL","diff_hunk":"@@ -143,6 +143,218 @@ pub fn desugar_defs<'a>(\n }\n }\n \n+fn desugar_defs_node_suffixed<'a>(\n+ arena: &'a Bump,\n+ loc_expr: &'a Loc>,\n+) -> &'a Loc> {\n+ match loc_expr.value {\n+ Defs(defs, loc_ret) => {\n+ match defs.search_suffixed_defs() {\n+ None => loc_expr,\n+ Some((tag_index, value_index)) => {\n+ if defs.value_defs.len() == 1 {\n+ // We have only one value_def and it must be Suffixed\n+ // replace Defs with an Apply(Task.await) and Closure of loc_return\n+\n+ assert!(","path":"crates/compiler/can/src/desugar.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"I'd use `debug_assert` here - it works like `expect` in Roc in that it only runs in debug builds, not in release builds, which I think is what we want here!","created_at":"2024-03-20T16:15:09Z","updated_at":"2024-03-20T16:15:09Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532392779","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532392779"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532392779"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532392779/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":159,"original_line":159,"side":"RIGHT","original_position":26,"position":26,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:15:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:15:09Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728946402","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949394663,"node_id":"PRR_kwDOCe5cec50MWbn","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:15:09Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949394663","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949394663"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:15:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:15:10Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728696702","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532379538","pull_request_review_id":1949372781,"id":1532379538,"node_id":"PRRC_kwDOCe5cec5bVkGS","diff_hunk":"@@ -549,6 +591,50 @@ impl<'a> Defs<'a> {\n let tag = EitherIndex::from_left(type_def_index);\n self.push_def_help(tag, region, spaces_before, spaces_after)\n }\n+\n+ // Find the first definition that is a Apply Suffixed\n+ // We need the tag_index so we can use it to remove the value\n+ // We need the value index to know if it is the first\n+ pub fn search_suffixed_defs(&self) -> Option<(usize, usize)> {\n+ for (tag_index, tag) in self.tags.iter().enumerate() {\n+ let index = match tag.split() {\n+ Ok(_) => continue,\n+ Err(value_index) => value_index.index(),\n+ };\n+\n+ match &self.value_defs[index] {\n+ ValueDef::Body(_, expr) => match expr.value {\n+ Expr::Apply(sub_expr, _, _) => match sub_expr.value {\n+ Expr::Suffixed(_) => {\n+ return Some((tag_index, index));\n+ }\n+ _ => continue,\n+ },\n+ _ => continue,\n+ },\n+ _ => continue,\n+ }\n+ }\n+\n+ None\n+ }\n+\n+ // For desugaring Suffixed Defs we need to split the defs around the Suffixed value\n+ pub fn split_values_either_side_of(&self, index: usize) -> (Self, Self) {\n+ let mut before = self.clone();\n+ let mut after = self.clone();","path":"crates/compiler/parse/src/ast.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"There are some Rust techniques that can make this run faster, but I can make a separate PR after this lands for that!","created_at":"2024-03-20T16:08:26Z","updated_at":"2024-03-20T16:08:26Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532379538","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532379538"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532379538"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532379538/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":625,"original_line":625,"side":"RIGHT","original_position":84,"position":84,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:08:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:08:26Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728696630","type":"PullRequestReviewEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","review":{"id":1949372781,"node_id":"PRR_kwDOCe5cec50MRFt","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","submitted_at":"2024-03-20T16:08:26Z","state":"commented","html_url":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949372781","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/roc-lang/roc/pull/6598#pullrequestreview-1949372781"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}}},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:08:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:08:27Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}},{"id":"36728613916","type":"PullRequestReviewCommentEvent","actor":{"id":1094080,"login":"rtfeldman","display_login":"rtfeldman","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","avatar_url":"https://avatars.githubusercontent.com/u/1094080?"},"repo":{"id":166616185,"name":"roc-lang/roc","url":"https://api.github.com/repos/roc-lang/roc"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532373977","pull_request_review_id":1949363899,"id":1532373977,"node_id":"PRRC_kwDOCe5cec5bVivZ","diff_hunk":"@@ -549,6 +591,50 @@ impl<'a> Defs<'a> {\n let tag = EitherIndex::from_left(type_def_index);\n self.push_def_help(tag, region, spaces_before, spaces_after)\n }\n+\n+ // Find the first definition that is a Apply Suffixed\n+ // We need the tag_index so we can use it to remove the value\n+ // We need the value index to know if it is the first\n+ pub fn search_suffixed_defs(&self) -> Option<(usize, usize)> {\n+ for (tag_index, tag) in self.tags.iter().enumerate() {\n+ let index = match tag.split() {\n+ Ok(_) => continue,\n+ Err(value_index) => value_index.index(),\n+ };\n+\n+ match &self.value_defs[index] {\n+ ValueDef::Body(_, expr) => match expr.value {\n+ Expr::Apply(sub_expr, _, _) => match sub_expr.value {\n+ Expr::Suffixed(_) => {\n+ return Some((tag_index, index));\n+ }\n+ _ => continue,\n+ },\n+ _ => continue,\n+ },\n+ _ => continue,\n+ }\n+ }\n+\n+ None\n+ }\n+\n+ // For desugaring Suffixed Defs we need to split the defs around the Suffixed value\n+ pub fn split_values_either_side_of(&self, index: usize) -> (Self, Self) {\n+ let mut before = self.clone();\n+ let mut after = self.clone();\n+\n+ before.tags = self.tags[0..index].to_vec();\n+\n+ if index + 1 > self.tags.len() {","path":"crates/compiler/parse/src/ast.rs","commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","original_commit_id":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"rtfeldman","id":1094080,"node_id":"MDQ6VXNlcjEwOTQwODA=","avatar_url":"https://avatars.githubusercontent.com/u/1094080?v=4","gravatar_id":"","url":"https://api.github.com/users/rtfeldman","html_url":"https://github.com/rtfeldman","followers_url":"https://api.github.com/users/rtfeldman/followers","following_url":"https://api.github.com/users/rtfeldman/following{/other_user}","gists_url":"https://api.github.com/users/rtfeldman/gists{/gist_id}","starred_url":"https://api.github.com/users/rtfeldman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtfeldman/subscriptions","organizations_url":"https://api.github.com/users/rtfeldman/orgs","repos_url":"https://api.github.com/users/rtfeldman/repos","events_url":"https://api.github.com/users/rtfeldman/events{/privacy}","received_events_url":"https://api.github.com/users/rtfeldman/received_events","type":"User","site_admin":false},"body":"I'd do `if index >= self.tags.len()` here, that way there's no chance of integer overflow causing problems.","created_at":"2024-03-20T16:06:15Z","updated_at":"2024-03-20T16:06:16Z","html_url":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532373977","pull_request_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532373977"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598#discussion_r1532373977"},"pull_request":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"}},"reactions":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/comments/1532373977/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":629,"original_line":629,"side":"RIGHT","original_position":88,"position":88,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/roc-lang/roc/pulls/6598","id":1781168997,"node_id":"PR_kwDOCe5cec5qKntl","html_url":"https://github.com/roc-lang/roc/pull/6598","diff_url":"https://github.com/roc-lang/roc/pull/6598.diff","patch_url":"https://github.com/roc-lang/roc/pull/6598.patch","issue_url":"https://api.github.com/repos/roc-lang/roc/issues/6598","number":6598,"state":"open","locked":false,"title":"De-sugar bang `!` for `Defs` nodes","user":{"login":"lukewilliamboswell","id":2679227,"node_id":"MDQ6VXNlcjI2NzkyMjc=","avatar_url":"https://avatars.githubusercontent.com/u/2679227?v=4","gravatar_id":"","url":"https://api.github.com/users/lukewilliamboswell","html_url":"https://github.com/lukewilliamboswell","followers_url":"https://api.github.com/users/lukewilliamboswell/followers","following_url":"https://api.github.com/users/lukewilliamboswell/following{/other_user}","gists_url":"https://api.github.com/users/lukewilliamboswell/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewilliamboswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewilliamboswell/subscriptions","organizations_url":"https://api.github.com/users/lukewilliamboswell/orgs","repos_url":"https://api.github.com/users/lukewilliamboswell/repos","events_url":"https://api.github.com/users/lukewilliamboswell/events{/privacy}","received_events_url":"https://api.github.com/users/lukewilliamboswell/received_events","type":"User","site_admin":false},"body":"This PR partially implements the [Chaining Syntax Proposal](https://docs.google.com/document/d/1mTEZlOKqtMonmVsIGEC1A9ufs1TQHhVgZ52Vn-13GeU/edit)\r\n- Renamed to `crates/compiler/can/src/desugar.rs` to reflect the scope of that file\r\n- Implements de-sugaring of `!` for `roc_parse::ast::Defs` nodes\r\n\r\nTested using the following cli app.\r\n\r\n```roc\r\napp \"desugar-bang\"\r\n packages {\r\n cli: \"../basic-cli/platform/main.roc\",\r\n }\r\n imports [\r\n cli.Stdout.{line, write}, \r\n cli.Cmd.{status},\r\n cli.Task.{await, ok},\r\n ]\r\n provides [main] to cli\r\n\r\nmain =\r\n\r\n # THIS IS A COMMENT\r\n msg = \"Hello\"\r\n {} = line! msg\r\n\r\n # THIS IS ANOTHER COMMENT\r\n b = \"Luke\\n\"\r\n {} = write! b\r\n\r\n ok {}\r\n```","created_at":"2024-03-20T01:13:22Z","updated_at":"2024-03-20T16:06:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0703a1cef73fa727fcde42068044d06b595c58a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits","review_comments_url":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments","review_comment_url":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f","head":{"label":"roc-lang:desugar-bang","ref":"desugar-bang","sha":"e74501981e3fbba5611e1029e411916d0e8d349f","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"base":{"label":"roc-lang:main","ref":"main","sha":"ad78e04012adabcf7c452a16ecf844a9127e6edb","user":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":166616185,"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2MTYxODU=","name":"roc","full_name":"roc-lang/roc","private":false,"owner":{"login":"roc-lang","id":63474338,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYzNDc0MzM4","avatar_url":"https://avatars.githubusercontent.com/u/63474338?v=4","gravatar_id":"","url":"https://api.github.com/users/roc-lang","html_url":"https://github.com/roc-lang","followers_url":"https://api.github.com/users/roc-lang/followers","following_url":"https://api.github.com/users/roc-lang/following{/other_user}","gists_url":"https://api.github.com/users/roc-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/roc-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roc-lang/subscriptions","organizations_url":"https://api.github.com/users/roc-lang/orgs","repos_url":"https://api.github.com/users/roc-lang/repos","events_url":"https://api.github.com/users/roc-lang/events{/privacy}","received_events_url":"https://api.github.com/users/roc-lang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/roc-lang/roc","description":"A fast, friendly, functional language. Work in progress!","fork":false,"url":"https://api.github.com/repos/roc-lang/roc","forks_url":"https://api.github.com/repos/roc-lang/roc/forks","keys_url":"https://api.github.com/repos/roc-lang/roc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roc-lang/roc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roc-lang/roc/teams","hooks_url":"https://api.github.com/repos/roc-lang/roc/hooks","issue_events_url":"https://api.github.com/repos/roc-lang/roc/issues/events{/number}","events_url":"https://api.github.com/repos/roc-lang/roc/events","assignees_url":"https://api.github.com/repos/roc-lang/roc/assignees{/user}","branches_url":"https://api.github.com/repos/roc-lang/roc/branches{/branch}","tags_url":"https://api.github.com/repos/roc-lang/roc/tags","blobs_url":"https://api.github.com/repos/roc-lang/roc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roc-lang/roc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roc-lang/roc/git/refs{/sha}","trees_url":"https://api.github.com/repos/roc-lang/roc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roc-lang/roc/statuses/{sha}","languages_url":"https://api.github.com/repos/roc-lang/roc/languages","stargazers_url":"https://api.github.com/repos/roc-lang/roc/stargazers","contributors_url":"https://api.github.com/repos/roc-lang/roc/contributors","subscribers_url":"https://api.github.com/repos/roc-lang/roc/subscribers","subscription_url":"https://api.github.com/repos/roc-lang/roc/subscription","commits_url":"https://api.github.com/repos/roc-lang/roc/commits{/sha}","git_commits_url":"https://api.github.com/repos/roc-lang/roc/git/commits{/sha}","comments_url":"https://api.github.com/repos/roc-lang/roc/comments{/number}","issue_comment_url":"https://api.github.com/repos/roc-lang/roc/issues/comments{/number}","contents_url":"https://api.github.com/repos/roc-lang/roc/contents/{+path}","compare_url":"https://api.github.com/repos/roc-lang/roc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roc-lang/roc/merges","archive_url":"https://api.github.com/repos/roc-lang/roc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roc-lang/roc/downloads","issues_url":"https://api.github.com/repos/roc-lang/roc/issues{/number}","pulls_url":"https://api.github.com/repos/roc-lang/roc/pulls{/number}","milestones_url":"https://api.github.com/repos/roc-lang/roc/milestones{/number}","notifications_url":"https://api.github.com/repos/roc-lang/roc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roc-lang/roc/labels{/name}","releases_url":"https://api.github.com/repos/roc-lang/roc/releases{/id}","deployments_url":"https://api.github.com/repos/roc-lang/roc/deployments","created_at":"2019-01-20T02:42:44Z","updated_at":"2024-03-20T13:37:16Z","pushed_at":"2024-03-20T13:05:57Z","git_url":"git://github.com/roc-lang/roc.git","ssh_url":"git@github.com:roc-lang/roc.git","clone_url":"https://github.com/roc-lang/roc.git","svn_url":"https://github.com/roc-lang/roc","homepage":"https://roc-lang.org","size":122256,"stargazers_count":3408,"watchers_count":3408,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":242,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1081,"license":{"key":"upl-1.0","name":"Universal Permissive License v1.0","spdx_id":"UPL-1.0","url":"https://api.github.com/licenses/upl-1.0","node_id":"MDc6TGljZW5zZTMz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":true,"topics":["functional-language","functional-programming","language","roc-lang"],"visibility":"public","forks":242,"open_issues":1081,"watchers":3408,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598"},"html":{"href":"https://github.com/roc-lang/roc/pull/6598"},"issue":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598"},"comments":{"href":"https://api.github.com/repos/roc-lang/roc/issues/6598/comments"},"review_comments":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/comments"},"review_comment":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/roc-lang/roc/pulls/6598/commits"},"statuses":{"href":"https://api.github.com/repos/roc-lang/roc/statuses/e74501981e3fbba5611e1029e411916d0e8d349f"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-20T16:06:15Z","org":{"id":63474338,"login":"roc-lang","gravatar_id":"","url":"https://api.github.com/orgs/roc-lang","avatar_url":"https://avatars.githubusercontent.com/u/63474338?"}}]