Cats will lose the dependency on algebra. In order for algebra and spire to depend on cats, there needs to be a small and stable core of essential typeclasses (algebra and spire will not want to depend on all of cats).
This core should contain at least
Eq
Order/PartialOrder
Semigroup/Monoid/Group
Show
I think it would be OK to have the core not that small, since the main concern from the algebra side is not .jar size but binary compatibility concerns. So if it is an advantage to have e.g. SemigroupK and MonoidK in there as well, that would be fine IMHO.
@non maybe just having all of algebra depend on cats-core is also acceptable. The only thing I really want to avoid is having duplicated typeclasses in cats and algebra.
Cats will lose the dependency on algebra. In order for algebra and spire to depend on cats, there needs to be a small and stable core of essential typeclasses (algebra and spire will not want to depend on all of cats).
This core should contain at least
EqOrder/PartialOrderSemigroup/Monoid/GroupShowI think it would be OK to have the core not that small, since the main concern from the algebra side is not .jar size but binary compatibility concerns. So if it is an advantage to have e.g.
SemigroupKandMonoidKin there as well, that would be fine IMHO.@non maybe just having all of algebra depend on cats-core is also acceptable. The only thing I really want to avoid is having duplicated typeclasses in cats and algebra.