{"action":"created","issue":{"url":"https://api.github.com/repos/typelevel/cats/issues/2334","repository_url":"https://api.github.com/repos/typelevel/cats","labels_url":"https://api.github.com/repos/typelevel/cats/issues/2334/labels{/name}","comments_url":"https://api.github.com/repos/typelevel/cats/issues/2334/comments","events_url":"https://api.github.com/repos/typelevel/cats/issues/2334/events","html_url":"https://github.com/typelevel/cats/issues/2334","id":344075240,"node_id":"MDU6SXNzdWUzNDQwNzUyNDA=","number":2334,"title":"Instances for Future","user":{"login":"ChristopherDavenport","id":10272700,"node_id":"MDQ6VXNlcjEwMjcyNzAw","avatar_url":"https://avatars0.githubusercontent.com/u/10272700?v=4","gravatar_id":"","url":"https://api.github.com/users/ChristopherDavenport","html_url":"https://github.com/ChristopherDavenport","followers_url":"https://api.github.com/users/ChristopherDavenport/followers","following_url":"https://api.github.com/users/ChristopherDavenport/following{/other_user}","gists_url":"https://api.github.com/users/ChristopherDavenport/gists{/gist_id}","starred_url":"https://api.github.com/users/ChristopherDavenport/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChristopherDavenport/subscriptions","organizations_url":"https://api.github.com/users/ChristopherDavenport/orgs","repos_url":"https://api.github.com/users/ChristopherDavenport/repos","events_url":"https://api.github.com/users/ChristopherDavenport/events{/privacy}","received_events_url":"https://api.github.com/users/ChristopherDavenport/received_events","type":"User","site_admin":false},"labels":[{"id":575446021,"node_id":"MDU6TGFiZWw1NzU0NDYwMjE=","url":"https://api.github.com/repos/typelevel/cats/labels/API%20Breaking","name":"API Breaking","color":"d93f0b","default":false},{"id":573025372,"node_id":"MDU6TGFiZWw1NzMwMjUzNzI=","url":"https://api.github.com/repos/typelevel/cats/labels/Triage%20needed","name":"Triage needed","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/typelevel/cats/milestones/8","html_url":"https://github.com/typelevel/cats/milestone/8","labels_url":"https://api.github.com/repos/typelevel/cats/milestones/8/labels","id":3187610,"node_id":"MDk6TWlsZXN0b25lMzE4NzYxMA==","number":8,"title":"2.0","description":"","creator":{"login":"kailuowang","id":83257,"node_id":"MDQ6VXNlcjgzMjU3","avatar_url":"https://avatars3.githubusercontent.com/u/83257?v=4","gravatar_id":"","url":"https://api.github.com/users/kailuowang","html_url":"https://github.com/kailuowang","followers_url":"https://api.github.com/users/kailuowang/followers","following_url":"https://api.github.com/users/kailuowang/following{/other_user}","gists_url":"https://api.github.com/users/kailuowang/gists{/gist_id}","starred_url":"https://api.github.com/users/kailuowang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kailuowang/subscriptions","organizations_url":"https://api.github.com/users/kailuowang/orgs","repos_url":"https://api.github.com/users/kailuowang/repos","events_url":"https://api.github.com/users/kailuowang/events{/privacy}","received_events_url":"https://api.github.com/users/kailuowang/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":0,"state":"open","created_at":"2018-03-14T15:09:14Z","updated_at":"2018-07-24T14:58:53Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2018-07-24T14:55:56Z","updated_at":"2018-07-24T18:43:29Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"`Future` is largely known to not be referentially transparent. As it starts execution immediately and caches the result.\r\n\r\nWhile it may have been largely necessary for these instances to be in cats before cats-effect, with that solution coming in maturity it may be time for Future instances to be pushed to alleycats.\r\n\r\nImports\r\n```scala\r\nimport scala.concurrent.Future\r\nimport scala.concurrent.ExecutionContext.Implicits.global\r\nimport cats.implicits._ \r\n```\r\n\r\nExample 1 - Prints Once on the first line\r\n```scala\r\nval future1 : Future[Unit] = Future(println(\"I printed\"))\r\nval futureResult1 : Future[Unit] = (future1, future1).mapN(_ => ())\r\n```\r\n\r\nExample 2 - Prints twice on the second line\r\n```scala\r\ndef future2: Future[Unit] = Future(println(\"I printed\"))\r\nval futureResult2 : Future[Unit] = (future2, future2).mapN(_ => ())\r\n```\r\n\r\nAs you can see we have lost equational reasoning.\r\n\r\nWhat are your thoughts on the future of `Future`?\r\n"},"comment":{"url":"https://api.github.com/repos/typelevel/cats/issues/comments/407511224","html_url":"https://github.com/typelevel/cats/issues/2334#issuecomment-407511224","issue_url":"https://api.github.com/repos/typelevel/cats/issues/2334","id":407511224,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNzUxMTIyNA==","user":{"login":"djspiewak","id":752,"node_id":"MDQ6VXNlcjc1Mg==","avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"created_at":"2018-07-24T18:43:29Z","updated_at":"2018-07-24T18:43:29Z","author_association":"COLLABORATOR","body":"@oscar-stripe So your argument then is that `Future = Identity`? If you ignore the effect of controlling CPU scheduling, there is no measurable difference between the types."}}
{"actor":{"display_login":"djspiewak"}}