{"action":"created","issue":{"url":"https://api.github.com/repos/positron-lang/spec/issues/11","labels_url":"https://api.github.com/repos/positron-lang/spec/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/positron-lang/spec/issues/11/comments","events_url":"https://api.github.com/repos/positron-lang/spec/issues/11/events","html_url":"https://github.com/positron-lang/spec/issues/11","id":69354689,"number":11,"title":"Optionals, nil, null and 0","user":{"login":"vinivendra","id":1630012,"avatar_url":"https://avatars.githubusercontent.com/u/1630012?v=3","gravatar_id":"","url":"https://api.github.com/users/vinivendra","html_url":"https://github.com/vinivendra","followers_url":"https://api.github.com/users/vinivendra/followers","following_url":"https://api.github.com/users/vinivendra/following{/other_user}","gists_url":"https://api.github.com/users/vinivendra/gists{/gist_id}","starred_url":"https://api.github.com/users/vinivendra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinivendra/subscriptions","organizations_url":"https://api.github.com/users/vinivendra/orgs","repos_url":"https://api.github.com/users/vinivendra/repos","events_url":"https://api.github.com/users/vinivendra/events{/privacy}","received_events_url":"https://api.github.com/users/vinivendra/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/positron-lang/spec/labels/feature","name":"feature","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":65,"created_at":"2015-04-18T22:27:17Z","updated_at":"2015-05-21T02:06:11Z","closed_at":null,"body":"Should positron use optionals? Should there be a `nil` and/or a `null`? Should `0` be a part of this?"},"comment":{"url":"https://api.github.com/repos/positron-lang/spec/issues/comments/104093743","html_url":"https://github.com/positron-lang/spec/issues/11#issuecomment-104093743","issue_url":"https://api.github.com/repos/positron-lang/spec/issues/11","id":104093743,"user":{"login":"vinivendra","id":1630012,"avatar_url":"https://avatars.githubusercontent.com/u/1630012?v=3","gravatar_id":"","url":"https://api.github.com/users/vinivendra","html_url":"https://github.com/vinivendra","followers_url":"https://api.github.com/users/vinivendra/followers","following_url":"https://api.github.com/users/vinivendra/following{/other_user}","gists_url":"https://api.github.com/users/vinivendra/gists{/gist_id}","starred_url":"https://api.github.com/users/vinivendra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinivendra/subscriptions","organizations_url":"https://api.github.com/users/vinivendra/orgs","repos_url":"https://api.github.com/users/vinivendra/repos","events_url":"https://api.github.com/users/vinivendra/events{/privacy}","received_events_url":"https://api.github.com/users/vinivendra/received_events","type":"User","site_admin":false},"created_at":"2015-05-21T02:06:11Z","updated_at":"2015-05-21T02:06:11Z","body":"And yes, I think it evaluates to `nil`. Therefore, if we try to do something like\r\n````ruby\r\nx, y, z = content.getNumbersOnline() !\r\n````\r\nthe compiler throws an error because `nil`, aka `()`, cannot be assigned to `(x, y)`.\r\n\r\nIn all cases like these, where the return value is important, the users are encouraged to use the binary version:\r\n````ruby\r\nx = content.getNumbersOnline() ! 3\r\nx, y, z = content.getNumbersOnline() ! (3, 5, 7)\r\n\r\n# or, at least,\r\n\r\nx = content.getNumbersOnline() ! nil\r\nx, y, z = content.getNumbersOnline() ! (nil, nil, nil)\r\n````\r\nActually, we would probably be able to enforce using the binary version when the return values are used; I'll leave that up to you."}}