-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[Vote] How to handle Stream
-> LazyList
migration
#2991
Comments
Strategy 1: Conflation with type alias, i.e. make the references to the two types interchangeable through type alias. |
Strategy 2: all-in version specific - complete the removal of conflation by extending the effort of this PR #2983) Pros: |
ping maintainers and some stakeholders @LukaJCB @djspiewak @rossabaker @tpolecat @fthomas @johnynek @non @mpilquist @milessabin @ChristopherDavenport @alexandru @SystemFw @larsrh |
As a footnote, there's some additional discussion here: #2982 It's worth noting that there are popular open source libraries that still use |
Where is If it's just a matter of instances, then Cats should provide instances for |
@alexandru Agreed on the instances, but there’s also |
I hate to say it, but I like the second one better. It's more work for us, I think, but it's better for everyone downstream and it ultimately leaves us with more flexibility. Even keeping the instances (but The first one is definitely ideal for anyone who has My 2 cents anyway. |
@djspiewak the main reason I can think of is that using version specific code to handle the two types To me both strategies results in significant ugliness in libraries that cross compile, the depth of the ugliness of strategy 1 is deeper, but it's confined to the two types. The breadth of the ugliness of strategy 2 is wider, and more work for the maintainers, but will cause less confusion to the users. |
http4s has that alias to support a private implementation detail. We could easily rip out the alias, and I don't think we're using the instances anyway. scalacheck doesn't depend on cats, so though that's a deeper use of the alias, I think it's not one affected by this decision. |
I think we have enough votes to go option 2. |
I can finish up #2983 Monday morning. |
The pull request is enormous but MiMa and tests are green and it's ready for review: #2983 (comment) /cc @kailuowang |
I think we can close this now that #2983 is merged. |
Scala deprecated
Stream
and replace it withLazyList
on 2.13, which means that cross compiling libraries have to decide on a strategy on how to handle this migration.Please vote by thumb up or down the options listed in the two following comments.
Note that we will weight maintainers/code contributors' vote more because this decision has more impact to them.
The text was updated successfully, but these errors were encountered: