--
You received this message because you are subscribed to the Google Groups "scalaz" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scalaz+un...@googlegroups.com.
To post to this group, send email to sca...@googlegroups.com.
Visit this group at http://groups.google.com/group/scalaz.
For more options, visit https://groups.google.com/d/optout.
Is it really true that you can substitute one for the other without a significant difference in program semantics? I must be missing something.
Yes that is true. If anyone can construct an example where that is not the case I would be very interested to see it.
If you formulate Task and IO as free monads, Task just adds an async instruction. If you don't use it then the behavior is the same. Task and IO in scalaz have a bunch of IMO confusing and irrelevant differences and details. (Like that IO is formulated as an ST monad instead of a free monad)
I'd still like to see a better type that unifies Task and IO and fixes all the stuff that is dumb about Task. Runar was working on this at one point and I think some other folks have as well.
Paul