{"action":"created","issue":{"url":"https://api.github.com/repos/non/cats/issues/455","labels_url":"https://api.github.com/repos/non/cats/issues/455/labels{/name}","comments_url":"https://api.github.com/repos/non/cats/issues/455/comments","events_url":"https://api.github.com/repos/non/cats/issues/455/events","html_url":"https://github.com/non/cats/pull/455","id":101323250,"number":455,"title":"Add Stream, StreamT, Nondeterminism, etc.","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/non/cats/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/non/cats/labels/in%20progress","name":"in progress","color":"ededed"},{"url":"https://api.github.com/repos/non/cats/labels/speculative","name":"speculative","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-17T02:18:11Z","updated_at":"2015-08-17T02:19:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/non/cats/pulls/455","html_url":"https://github.com/non/cats/pull/455","diff_url":"https://github.com/non/cats/pull/455.diff","patch_url":"https://github.com/non/cats/pull/455.patch"},"body":"This work is a start toward fleshing out some important\r\nfunctionality that is missing in Cats right now.\r\n\r\nHere's what this commit does:\r\n\r\n * Adds speculative 'cats-task' subproject\r\n * Adds cats.data.Stream[A] (concrete stream type)\r\n * Adds cats.data.StreamT[F, A] (monad transformer)\r\n * Adds cats.task.Nondeterminism[F] (nondeterminism monad)\r\n * Adds Nondeterminism[Future] constructor\r\n * Adds .pointEval(a) to Applicative[F]\r\n * Adds .memoize method to Eval[A]\r\n * Renames optionT.scala to OptionT.scala\r\n * Adds CatsProps for ScalaTest/ScalaCheck integration\r\n\r\nHere is a short list of known issues, or things we need to figure out:\r\n\r\n * Audit existing code to use .pointEval where appropriate\r\n * Autogenerate arity functions for Nondeterminism[F]\r\n * Consider adding more methods to Nondeterminism[F]\r\n * Add tests for Eval[A]#memoize\r\n * Improve Stream/StreamT docs\r\n * Avoid cats.std.future._ / cats.task.std.future._ clashes\r\n * Flesh out cats.task package with more types"},"comment":{"url":"https://api.github.com/repos/non/cats/issues/comments/131659281","html_url":"https://github.com/non/cats/pull/455#issuecomment-131659281","issue_url":"https://api.github.com/repos/non/cats/issues/455","id":131659281,"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":"2015-08-17T02:19:52Z","updated_at":"2015-08-17T02:19:52Z","body":"This PR should definitely not be merged as-is. I just wanted to give folks a chance to see what I had been working on, and weigh-in if this is a good decision or not.\r\n\r\nSince I ended up basing `Nondeterminism[F]` on `StreamT[F, A]` I decided to put them in the same PR. However, I'd be happy to submit a PR that just included `Stream[A]` and `StreamT[F, A]` if folks would prefer to be a bit more atomic about it."}}