{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/85","repository_url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl","labels_url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/85/comments","events_url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/85/events","html_url":"https://github.com/JuliaStats/NullableArrays.jl/pull/85","id":111017505,"number":85,"title":"Allow operations mixing Nullable and scalar","user":{"login":"nalimilan","id":1120448,"avatar_url":"https://avatars.githubusercontent.com/u/1120448?v=3","gravatar_id":"","url":"https://api.github.com/users/nalimilan","html_url":"https://github.com/nalimilan","followers_url":"https://api.github.com/users/nalimilan/followers","following_url":"https://api.github.com/users/nalimilan/following{/other_user}","gists_url":"https://api.github.com/users/nalimilan/gists{/gist_id}","starred_url":"https://api.github.com/users/nalimilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nalimilan/subscriptions","organizations_url":"https://api.github.com/users/nalimilan/orgs","repos_url":"https://api.github.com/users/nalimilan/repos","events_url":"https://api.github.com/users/nalimilan/events{/privacy}","received_events_url":"https://api.github.com/users/nalimilan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":54,"created_at":"2015-10-12T17:12:39Z","updated_at":"2016-09-04T18:15:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/pulls/85","html_url":"https://github.com/JuliaStats/NullableArrays.jl/pull/85","diff_url":"https://github.com/JuliaStats/NullableArrays.jl/pull/85.diff","patch_url":"https://github.com/JuliaStats/NullableArrays.jl/pull/85.patch"},"body":"Makes `op(y::Nullable, x)` equivalent to `op(y, Nullable(x))`, but more efficient.\r\n\r\nI have played with the idea of actually defining `op(x::Nullable, y) = op(x, Nullable(y))`, hoping that the compiler would get rid of everything, but the generated code is awful.\r\n\r\nThe presence of ambiguities makes the code much longer than it needs to be. In particular, the ambiguous `<<` and `>>` in Base are only there to raise an error, and define something like an interface. We could imagine that with an improved support for traits they would no longer happen in some future release..."},"comment":{"url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/comments/244619926","html_url":"https://github.com/JuliaStats/NullableArrays.jl/pull/85#issuecomment-244619926","issue_url":"https://api.github.com/repos/JuliaStats/NullableArrays.jl/issues/85","id":244619926,"user":{"login":"nalimilan","id":1120448,"avatar_url":"https://avatars.githubusercontent.com/u/1120448?v=3","gravatar_id":"","url":"https://api.github.com/users/nalimilan","html_url":"https://github.com/nalimilan","followers_url":"https://api.github.com/users/nalimilan/followers","following_url":"https://api.github.com/users/nalimilan/following{/other_user}","gists_url":"https://api.github.com/users/nalimilan/gists{/gist_id}","starred_url":"https://api.github.com/users/nalimilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nalimilan/subscriptions","organizations_url":"https://api.github.com/users/nalimilan/orgs","repos_url":"https://api.github.com/users/nalimilan/repos","events_url":"https://api.github.com/users/nalimilan/events{/privacy}","received_events_url":"https://api.github.com/users/nalimilan/received_events","type":"User","site_admin":false},"created_at":"2016-09-04T18:15:32Z","updated_at":"2016-09-04T18:15:32Z","body":"I've done a small review of choices made by other languages, and indeed they don't seem to bother about the inconsistency between `NaN` and `NULL`. All languages I surveyed which support `==` for the equivalent of `NULL` consider two `NULL` values as equal. In Python, `None == None -> True` (though using `is` is recommended). In Ruby and Swift, `nil == nil -> true`. In C++, C#, Java, JavaScript and Kotlin, `null == null -> true`.\r\n\r\nSo I guess we should go that way, given that it will be the less surprising choice for users (unless of course we decide to return a `Nullable{Bool}` à la R).\r\n"}}
{"actor":{"display_login":"nalimilan"}}