Decouple algebird ops from scio-core
At some point i think it would be good to have a scio-algebird specific module. It might even ease up the migration for 2.13.
So Algebird Semigroup & Monoid has implicit conversion from Cats equivalents, which means we can change sum/fold context bound to cats without breaking anything.
That leaves Aggregator, though. We can have our own shim with implicit conversion from Algebird, while marking the dependency as "provided". Would that work?
So Algebird Semigroup & Monoid has implicit conversion from Cats equivalents, which means we can change sum/fold context bound to cats without breaking anything.
This will be a breaking change unfortunately, because algebird defines most of the instances in the implicit scope, meaning that they are available without extra import. Moving to something like this would actually imply extra import.
IMO, having an extra import is justifiable, if these ops lived in a different module with clear context ... kinda like scio-cats.
TBH, not sure if decoupling is relevant anymore, maybe if we decide to bring these modules together? otherwise I'll probably just close this for now.