Parallel is a Type class resolving parallel computation using Monads. Since they have the power of both sequential and parallel computation, they require an instance of Monad and an instance of Applicative.
NonEmptyParallel is also required on this one.
Important: After #1043, we left IOParallel TODOs on some async calls without wiring the recently added IOConnection for cancellation and keeping the old cancellation style. That should be fixed whenever Parallel is implemented.
UPDATE (Also discussed here).
parMapN should be available on Concurrent instead of on a separate typeclass Parallel. Since Concurrent defines start, racePair & raceN already, it should also define parMapN. This also reduces awkwardness currently involved in using Parallel in cats.
Sidenote: AFAIK Parallel is in cats because it existed from before cats-effects came to live.
Therefore, it'll be done inside Concurrent but keep being a separate issue as is.
Also discussed here.
parMapN should be available on Concurrent instead of on a separate typeclass Parallel. Since Concurrent defines start, racePair & raceN already, it should also define parMapN. This also reduces awkwardness currently involved in using Parallel in cats.
Sidenote: AFAIK Parallel is in cats because it existed from before cats-effects came to live.
Looks like parMapN is already there since some time ago, but we're still lacking other things like parSequence, parTraverse, and maybe paraTupled. All of them working over F.
Could you take a careful look to what's still missing and see if we can add it @nomisRev?
Thanks in advance!
Closing this. After discussing with @nomisRev looks like we got all the combinators we strictly need ready, and any ones that we could miss in the future could be easily derived from those. So we'd open this issue again or a new one in the future if we found the need for further combinators.
Most helpful comment
Also discussed here.
parMapNshould be available onConcurrentinstead of on a separate typeclassParallel. SinceConcurrentdefinesstart,racePair&raceNalready, it should also defineparMapN. This also reduces awkwardness currently involved in usingParallelin cats.Sidenote: AFAIK
Parallelis in cats because it existed from beforecats-effectscame to live.