Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cats.io and IO monad #907

Closed
wants to merge 1 commit into from
Closed

Add cats.io and IO monad #907

wants to merge 1 commit into from

Conversation

adelbertc
Copy link
Contributor

This PR serves two purposes

  1. Add an IO monad in a separate package
  2. Get a discussion going around how Cats wants to approach IO/Task. It seems there is a mismatch in the nature of async on JVM and JS and it's tricky to get a Task with the same API on both JVM and JS. Furthermore, many folks will be using Task for FS2, and perhaps others the Task from Scalaz. There is also a relatively simple formulation of Task in the form of a thin wrapper around Eval in dogs, but that works on the JVM only. There's another that builds on Task using IO and MVars... I'm sure there are other approaches I don't know about.

I am proposing the possibility of Cats just having a simple IO and letting users of Cats decide where they want to get their Task from and how much cross-platform support they want.

@codecov-io
Copy link

Current coverage is 89.59%

Merging #907 into master will not affect coverage as of f0e397f

@@            master    #907   diff @@
======================================
  Files          181     181       
  Stmts         2423    2423       
  Branches        76      76       
  Methods          0       0       
======================================
  Hit           2171    2171       
  Partial          0       0       
  Missed         252     252       

Review entire Coverage Diff as of f0e397f

Powered by Codecov. Updated on successful CI builds.


lazy val ioJVM = io.jvm
lazy val ioJS = io.js

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the new module needs adding to the command aliases (buildJVM / validateJVM) below & scripts/travis_publish.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants