-
-
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
Uniquify implicit names #1061
Comments
Since a single across-the-board PR is likely to conflict with every other open PR, we should either accomplish this piecemeal, or coordinate ahead of time. If you want to work on this issue please comment here so we can avoid duplicating work and plan for a minimum amount of conflict. |
As an example of how name collisions can be problematic, in this gitter conversation, an upgrade from cats 0.5 to 0.6 broke someone's code because of a collision on the name |
Note that not only implicits that provide typeclass instances, but also syntax/enrich-my-type implicits suffer from the same exact problem. A banal example is having two different implicit classes from different libraries called |
Would this also be an issue for simulacrum generated implicits? N.B. Note the inclusion of the full package names, should this be standard as well? |
Potentially yes. Bear in mind that this can't be fixed by using |
I can work on this one. How about just tackle the std first? |
renamed implicit defs in data, part 2 of #1061
@kailuowang do you think that this is done after #1066 and #1068? Or should we cover the other modules too? Collisions outside of the |
I was thinking about doing syntax after the first two parts merged. I am out of the country now but i should be able to resume the work a week or so later. |
@kailuowang ah, I hadn't thought about syntax - that sounds like an important one. Thank you! |
uniquify implicit names in syntax part 3 of #1061
It seems to me that most implicits names are uniquified after the 3 mentioned PRs. |
I think this is the last of the implicit names for typelevel#1061.
I think this is all wrapped up now. |
Paul Phillips mentions that in a widely-used library it's important to minimize the chance that the names of its implicits will be used by others. To that end I suggest that we review our implicits and rename them according to the following rules:
So for example, for
Monoid[List[A]]
the name should be something likecatsMonoidForList
or similar.The text was updated successfully, but these errors were encountered: