You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If we lock binary compatibility post 1.0, I think the main implication is that we can't add methods existing traits, however we can still add new traits.
If someone want to add a new extension to Option, he just need to create a new trait say OptionSyntax2 and let the mouse.all extends and mouse.option extend this new trait.
Here is an example of this solution I am trying to suggest in a cats PR typelevel/cats#2138 (comment)
In the case of implicit extension namespace collusion, I don't know a good solution, I imagine when user encounter this they just need to stop using the all-inclusive import and use specific imports to avoid the ones that causing conflicts.
The text was updated successfully, but these errors were encountered:
IIUC that sort of binary compatibility break (methods added to trait) affects implementers of the trait only. Mouse doesn’t publish any traits designed to be extended by users, in contrast to cats.
So I think binary compatibility isn’t likely to be as problematic. My preference is to defer any promises until there’s feedback from users that they’re having problems.
If we lock binary compatibility post 1.0, I think the main implication is that we can't add methods existing traits, however we can still add new traits.
If someone want to add a new extension to
Option
, he just need to create a new trait sayOptionSyntax2
and let themouse.all
extends andmouse.option
extend this new trait.Here is an example of this solution I am trying to suggest in a cats PR
typelevel/cats#2138 (comment)
In the case of implicit extension namespace collusion, I don't know a good solution, I imagine when user encounter this they just need to stop using the all-inclusive import and use specific imports to avoid the ones that causing conflicts.
The text was updated successfully, but these errors were encountered: