{"action":"created","issue":{"url":"https://api.github.com/repos/non/algebra/issues/137","repository_url":"https://api.github.com/repos/non/algebra","labels_url":"https://api.github.com/repos/non/algebra/issues/137/labels{/name}","comments_url":"https://api.github.com/repos/non/algebra/issues/137/comments","events_url":"https://api.github.com/repos/non/algebra/issues/137/events","html_url":"https://github.com/non/algebra/issues/137","id":121863795,"number":137,"title":"Semantics of default instances of Eq","user":{"login":"rklaehn","id":248257,"avatar_url":"https://avatars.githubusercontent.com/u/248257?v=3","gravatar_id":"","url":"https://api.github.com/users/rklaehn","html_url":"https://github.com/rklaehn","followers_url":"https://api.github.com/users/rklaehn/followers","following_url":"https://api.github.com/users/rklaehn/following{/other_user}","gists_url":"https://api.github.com/users/rklaehn/gists{/gist_id}","starred_url":"https://api.github.com/users/rklaehn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rklaehn/subscriptions","organizations_url":"https://api.github.com/users/rklaehn/orgs","repos_url":"https://api.github.com/users/rklaehn/repos","events_url":"https://api.github.com/users/rklaehn/events{/privacy}","received_events_url":"https://api.github.com/users/rklaehn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-12-12T16:16:01Z","updated_at":"2016-04-30T16:35:47Z","closed_at":null,"body":"I feel very strongly that the default instances for Eq should work according to this definition of equality:\r\n\r\n`Given any x and y, x = y if, given any predicate P, P(x) if and only if P(y).`\r\n\r\nThis is not the case for e.g. the default Eq instance for map:\r\n\r\n`Eq.eqv(Map(1 → 0), Map.empty[Int, Int])` evaluates to true. I think for the *default* Eq this should be false.\r\n\r\n\r\nThe issue in case of map is that the Eq in the implicit scope is [VectorEq](https://github.com/non/algebra/blob/master/std/src/main/scala/algebra/std/map.scala#L48). This has been implemented that way to allow defining a Group instance for any Map. But I think this should be changed so that [MapEq](https://github.com/non/algebra/blob/master/std/src/main/scala/algebra/std/map.scala#L38) is in scope."},"comment":{"url":"https://api.github.com/repos/non/algebra/issues/comments/215977405","html_url":"https://github.com/non/algebra/issues/137#issuecomment-215977405","issue_url":"https://api.github.com/repos/non/algebra/issues/137","id":215977405,"user":{"login":"johnynek","id":67958,"avatar_url":"https://avatars.githubusercontent.com/u/67958?v=3","gravatar_id":"","url":"https://api.github.com/users/johnynek","html_url":"https://github.com/johnynek","followers_url":"https://api.github.com/users/johnynek/followers","following_url":"https://api.github.com/users/johnynek/following{/other_user}","gists_url":"https://api.github.com/users/johnynek/gists{/gist_id}","starred_url":"https://api.github.com/users/johnynek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnynek/subscriptions","organizations_url":"https://api.github.com/users/johnynek/orgs","repos_url":"https://api.github.com/users/johnynek/repos","events_url":"https://api.github.com/users/johnynek/events{/privacy}","received_events_url":"https://api.github.com/users/johnynek/received_events","type":"User","site_admin":false},"created_at":"2016-04-30T16:35:47Z","updated_at":"2016-04-30T16:35:47Z","body":"See #148 for a related discussion."}}