Cats-effect: Split project in sub-projects

Created on 26 Jan 2019  Ā·  2Comments  Ā·  Source: typelevel/cats-effect

For Cats-Effect 2.0 we need to split the project in about 3 sub-projects:

  • cats-effect-core: the type classes
  • cats-effect-concurrent: the data types described in cats.effect.concurrent
  • cats-effect-io: the cats.effect.IO implementation

Note the work for this split is on-going, I'm already working on it.

Suggestions welcome.

CE 3

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:

  • cats-effect
  • cats-concurrent
  • cats-io

(That cats-concurrent and cats-io provide instances for cats-effect will come as a surprise to exactly no one.)

All 2 comments

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:

  • cats-effect
  • cats-concurrent
  • cats-io

(That cats-concurrent and cats-io provide instances for cats-effect will come as a surprise to exactly no one.)

Was this page helpful?
0 / 5 - 0 ratings