But how would you teach implicit parameters? You’d have to teach to a beginner that the compiler will infer the parameter for you. Then you’d have to say the way it is done is that the call is expanded to something like this:
foo(implicit arg)
I could not bring myself to teach that. It would be just not sensical enough to teach with a straight face. If you change implicit
to given
, it would be better but still a little bit weird.
foo(given arg)
Syntactically, what is this given
? It has no correspondence to anything else in the language, just like (implicit ...)
for parameters is a highly irregular case. By contrast,
foo given arg
is syntactically an infix operator. So we know how to parse this. It fits with the rest of the language. It’s just not what people are used to now, but that should not be the deciding concern.