-
Notifications
You must be signed in to change notification settings - Fork 22
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
Remove internal dependency on Cats/Scalaz #116
Comments
I'd quite like it if there was tighter scalaz integration to be honest, e.g. if the relationship between a type and its generic repr was an |
The public API can maintain full integration with Cats and Scalaz via the cross compilation trick that's currently being used. My main concern is that maintaining the internal macros is tricky. If we reimplemented the the fundamentals (Applicative, Monad, Validated, etc) for private use internally it might make maintenance a lot easier. 👍 to full a continued tight integration with Scalaz |
btw, said |
It is probably at least worth investigating what we would need.
|
@peterneyens yep:
|
The core of Iota depends on Cats/Scalaz and requires some nasty tricks to get cross compilation to work. I'd like build out my own FP layer for internal use only so that the internal implementation is simplified.
Initially, the external modules would stay the same: there'd be no binary changes for the public API. We'd still conditionally build a
iota
for Cats andiotaz
for Scalaz. I'd target this forv0.5.0
.A second (optional) step would be to remove the conditional building and just have a an
iota
module with aiota-cats
andiota-scalaz
extension modules. This is pretty easy to do once the iota internals are self supporting. A decision on is needed before I'd consider av1.0.0
release.cc @raulraja @peterneyens @fommil any thoughts?
The text was updated successfully, but these errors were encountered: