{"action":"created","issue":{"url":"https://api.github.com/repos/ramda/ramda/issues/1228","labels_url":"https://api.github.com/repos/ramda/ramda/issues/1228/labels{/name}","comments_url":"https://api.github.com/repos/ramda/ramda/issues/1228/comments","events_url":"https://api.github.com/repos/ramda/ramda/issues/1228/events","html_url":"https://github.com/ramda/ramda/issues/1228","id":90998534,"number":1228,"title":"remove R.isEmpty","user":{"login":"davidchambers","id":210406,"avatar_url":"https://avatars.githubusercontent.com/u/210406?v=3","gravatar_id":"","url":"https://api.github.com/users/davidchambers","html_url":"https://github.com/davidchambers","followers_url":"https://api.github.com/users/davidchambers/followers","following_url":"https://api.github.com/users/davidchambers/following{/other_user}","gists_url":"https://api.github.com/users/davidchambers/gists{/gist_id}","starred_url":"https://api.github.com/users/davidchambers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidchambers/subscriptions","organizations_url":"https://api.github.com/users/davidchambers/orgs","repos_url":"https://api.github.com/users/davidchambers/repos","events_url":"https://api.github.com/users/davidchambers/events{/privacy}","received_events_url":"https://api.github.com/users/davidchambers/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ramda/ramda/labels/proposal","name":"proposal","color":"66cc66"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":34,"created_at":"2015-06-25T15:37:25Z","updated_at":"2015-07-08T06:13:54Z","closed_at":null,"body":"`R.isEmpty` is sugar for `R.propEq('length', 0)`. The problem, though, is that people don't necessary *realize* that this is the case. Some might assume, for example, that `R.isEmpty({})` evaluates true (#538, #1194). A colleague just ran into problems by assuming `R.isEmpty(null)` and `R.isEmpty(undefined)` evaluate true.\r\n\r\nSugar is nice, but in this case the desugaring is not obvious.\r\n"},"comment":{"url":"https://api.github.com/repos/ramda/ramda/issues/comments/119450465","html_url":"https://github.com/ramda/ramda/issues/1228#issuecomment-119450465","issue_url":"https://api.github.com/repos/ramda/ramda/issues/1228","id":119450465,"user":{"login":"paldepind","id":521604,"avatar_url":"https://avatars.githubusercontent.com/u/521604?v=3","gravatar_id":"","url":"https://api.github.com/users/paldepind","html_url":"https://github.com/paldepind","followers_url":"https://api.github.com/users/paldepind/followers","following_url":"https://api.github.com/users/paldepind/following{/other_user}","gists_url":"https://api.github.com/users/paldepind/gists{/gist_id}","starred_url":"https://api.github.com/users/paldepind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paldepind/subscriptions","organizations_url":"https://api.github.com/users/paldepind/orgs","repos_url":"https://api.github.com/users/paldepind/repos","events_url":"https://api.github.com/users/paldepind/events{/privacy}","received_events_url":"https://api.github.com/users/paldepind/received_events","type":"User","site_admin":false},"created_at":"2015-07-08T06:13:54Z","updated_at":"2015-07-08T06:13:54Z","body":"@CrossEye \r\n\r\n> The trouble is that we have no way within the language to test this style of equality.\r\n\r\nThat is not true. One can use `Object.getOwnPropertyNames` that returns both an objects enumerable and non-enumerable properties. It is supported in the same environments as those who support non-enumerable properties. But as I said before handling those in `equals` would be a mistake IMO."}}