For Cats-Effect 2.0 we need to split the project in about 3 sub-projects:
cats-effect-core: the type classescats-effect-concurrent: the data types described in cats.effect.concurrentcats-effect-io: the cats.effect.IO implementationNote the work for this split is on-going, I'm already working on it.
Suggestions welcome.
We might not be able to have type classes in a separate project from cats.effect.concurrent, because we depend on Ref at least for various instances, e.g. in Sync.
I think type classes for Ref + Deferred belong in core, while the data types themselves (ādefault implementationsā) belong in concurrent, so Monix and ZIO can use their own implementations.
Iād also tweak the names to minimize redundancy:
(That cats-concurrent and cats-io provide instances for cats-effect will come as a surprise to exactly no one.)
Most helpful comment
I think type classes for Ref + Deferred belong in core, while the data types themselves (ādefault implementationsā) belong in concurrent, so Monix and ZIO can use their own implementations.
Iād also tweak the names to minimize redundancy:
(That cats-concurrent and cats-io provide instances for cats-effect will come as a surprise to exactly no one.)