As far as I understand it, the
@alpha notation is still being discussed if it should be mandatory or not for 3.1 or later, while it maybe will be deprecated but non-mandatory in 3.0; although, the operators dotty doc page currently says “An @alpha annotation will be mandatory if the method name is symbolic. Symbolic methods without @alpha annotations are deprecated.”
In my teaching of beginner programmers using Scala as first language, I have numerous simple examples, exercises and assignments including common symbolic operators with intuitive semantics, such as:
case class Time(ms: Int): def +(other: Time) = Time(ms + other.ms)
IMHO I think it would really clutter life for beginners if they must dig into special imports and annotation syntax just to create simple code like above, and examples like above is a perfectly sensible thing to write.
I also think being beginner-friendly and concise in this case outweighs the potential benefits of forcing all symbolic methods having extra markers/imports.
So with this thread I’d like to discuss the proposal not to deprecate operators without
@alpha, but instead make the
@alpha notation an optional feature that comes with an auto-generated alpha-named method that can be used as an alternative for those library authors who want to offer that and then also automatically include that alternative method in the docs.