{"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":39,"created_at":"2015-04-18T22:27:17Z","updated_at":"2015-05-18T19:35: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/103184272","html_url":"https://github.com/positron-lang/spec/issues/11#issuecomment-103184272","issue_url":"https://api.github.com/repos/positron-lang/spec/issues/11","id":103184272,"user":{"login":"igorbonadio","id":28595,"avatar_url":"https://avatars.githubusercontent.com/u/28595?v=3","gravatar_id":"","url":"https://api.github.com/users/igorbonadio","html_url":"https://github.com/igorbonadio","followers_url":"https://api.github.com/users/igorbonadio/followers","following_url":"https://api.github.com/users/igorbonadio/following{/other_user}","gists_url":"https://api.github.com/users/igorbonadio/gists{/gist_id}","starred_url":"https://api.github.com/users/igorbonadio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igorbonadio/subscriptions","organizations_url":"https://api.github.com/users/igorbonadio/orgs","repos_url":"https://api.github.com/users/igorbonadio/repos","events_url":"https://api.github.com/users/igorbonadio/events{/privacy}","received_events_url":"https://api.github.com/users/igorbonadio/received_events","type":"User","site_admin":false},"created_at":"2015-05-18T19:35:11Z","updated_at":"2015-05-18T19:35:11Z","body":"Hummm... I think it is too strange. And if a function returns more than one value? How will it work?\r\n\r\n```ruby\r\nclass Dummy\r\n  def sumMul(lhs: Int, rhs: Int) -> (sum: Int, mul: Int)\r\n    sum = lhs + rhs\r\n    mul = lhs + rhs\r\n  end\r\nend\r\n\r\nvar dummy: Dummy!\r\n\r\nvar s, m = dummy.sumMul(1, 2)\r\n\r\ns + m # => 0 ?\r\n```\r\n\r\nI don't know... I don't like this feature... mainly because\r\n\r\n1) It can't be implemented using traits, inheritance, composition, interfaces, etc. (how can we implement the forward message technique to all messages? Maybe with metaprogramming... we can generate `nothing`s that respond to all messages of types with `!`... I dont know)\r\n2) Implicity conversions\r\n\r\nI think an `if` or polymorphism is better...\r\n\r\nBut if everybody likes it... We can approve it.\r\n\r\nCan you, @vinivendra , write a proposal?"}}