{"action":"created","issue":{"url":"https://api.github.com/repos/typelevel/cats/issues/1345","repository_url":"https://api.github.com/repos/typelevel/cats","labels_url":"https://api.github.com/repos/typelevel/cats/issues/1345/labels{/name}","comments_url":"https://api.github.com/repos/typelevel/cats/issues/1345/comments","events_url":"https://api.github.com/repos/typelevel/cats/issues/1345/events","html_url":"https://github.com/typelevel/cats/pull/1345","id":174577993,"number":1345,"title":"Bump ScalaCheck to 1.13.1, and fix the fallout.","user":{"login":"non","id":218045,"avatar_url":"https://avatars.githubusercontent.com/u/218045?v=3","gravatar_id":"","url":"https://api.github.com/users/non","html_url":"https://github.com/non","followers_url":"https://api.github.com/users/non/followers","following_url":"https://api.github.com/users/non/following{/other_user}","gists_url":"https://api.github.com/users/non/gists{/gist_id}","starred_url":"https://api.github.com/users/non/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/non/subscriptions","organizations_url":"https://api.github.com/users/non/orgs","repos_url":"https://api.github.com/users/non/repos","events_url":"https://api.github.com/users/non/events{/privacy}","received_events_url":"https://api.github.com/users/non/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/typelevel/cats/labels/Breaking%20change","name":"Breaking change","color":"fbca04"},{"url":"https://api.github.com/repos/typelevel/cats/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/typelevel/cats/labels/in%20progress","name":"in progress","color":"ededed"},{"url":"https://api.github.com/repos/typelevel/cats/labels/question","name":"question","color":"cc317c"},{"url":"https://api.github.com/repos/typelevel/cats/labels/testing","name":"testing","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2016-09-01T17:14:36Z","updated_at":"2016-09-07T18:58:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/typelevel/cats/pulls/1345","html_url":"https://github.com/typelevel/cats/pull/1345","diff_url":"https://github.com/typelevel/cats/pull/1345.diff","patch_url":"https://github.com/typelevel/cats/pull/1345.patch"},"body":"### Status\r\n\r\n - [x] Get PR building correctly\r\n - [x] Decide what to do about `MonadCombine` laws\r\n - [x] Fix cryptic errors in the *js* subproject\r\n\r\n### Summary\r\n\r\nThis commit gets all our law tests working with a new, more robust\r\nScalaCheck version. It currently relies upon an unreleased Discipline\r\nsnapshot, so it definitely won't build in Travis.\r\n\r\nThere were a bunch of test bugs that got fixed, mostly around\r\nfoldRight/reduceRight consistency for non-empty data structures.\r\n\r\nOne law violation was uncovered: MonadCombine[Option] doesn't pass the\r\nleft-distributivity law we wrote. We should figure out whether this\r\nrepresents a real law violation and remove the instance, or whether\r\nthe law is too strict somehow.\r\n\r\nOne counter-example is:\r\n\r\n    def f(x: Int): Option[Int] = if (x == 0) None else Some(x)\r\n    val a = Option(0)\r\n    val b = Option(1)\r\n    (a <+> b).flatMap(f) != (a.flatMap(f) <+> b.flatMap(f))\r\n\r\nReview by @adelbertc et al. We will need to wait for a new Discipline\r\nrelease before merging this, and we'll need to do something about the\r\nMonadCombine laws/instances (currently the MonadCombine[Option] test\r\nis commented out)."},"comment":{"url":"https://api.github.com/repos/typelevel/cats/issues/comments/245381953","html_url":"https://github.com/typelevel/cats/pull/1345#issuecomment-245381953","issue_url":"https://api.github.com/repos/typelevel/cats/issues/1345","id":245381953,"user":{"login":"non","id":218045,"avatar_url":"https://avatars.githubusercontent.com/u/218045?v=3","gravatar_id":"","url":"https://api.github.com/users/non","html_url":"https://github.com/non","followers_url":"https://api.github.com/users/non/followers","following_url":"https://api.github.com/users/non/following{/other_user}","gists_url":"https://api.github.com/users/non/gists{/gist_id}","starred_url":"https://api.github.com/users/non/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/non/subscriptions","organizations_url":"https://api.github.com/users/non/orgs","repos_url":"https://api.github.com/users/non/repos","events_url":"https://api.github.com/users/non/events{/privacy}","received_events_url":"https://api.github.com/users/non/received_events","type":"User","site_admin":false},"created_at":"2016-09-07T18:58:50Z","updated_at":"2016-09-07T18:58:50Z","body":"@eed3si9n If the method was called `fzero` then I totally agree with you. My sense was that because the same method name is used, it's not possible to have two different ones that end up getting used for an instance, due to the way method overriding works. Can that happen?"}}
{"actor":{"display_login":"non"}}