Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move basic typeclasses into cats-kernel #777

Closed
rklaehn opened this issue Jan 4, 2016 · 2 comments
Closed

Move basic typeclasses into cats-kernel #777

rklaehn opened this issue Jan 4, 2016 · 2 comments

Comments

@rklaehn
Copy link
Contributor

rklaehn commented Jan 4, 2016

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.

@rklaehn
Copy link
Contributor Author

rklaehn commented Jan 13, 2016

here is a proof of concept for a library that uses simulacrum to generate typeclass boilerplate, but does not have it in the .pom
https://github.com/rklaehn/hash

Here is how to hide simulacrum from the .pom (in case "provided" is not good enough):
rklaehn/hash@2f11a6c

@ceedubs
Copy link
Contributor

ceedubs commented May 14, 2016

This was resolved with #1001.

@ceedubs ceedubs closed this as completed May 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants