General Type Projection

Mark "Justin" Waks
1 min readFeb 6, 2019

--

Today in Dotty News: discussion has finally started on deprecating and removing generalized Type Projection.

The tl;dr is that Scala 2 allows you to say T#a, where T is any type, to mean “the member a of whatever T happens to be”. The proposal is to drop this in the case where T is abstract. As I understand it, this will still be valid syntax, but only for concrete types.

In a sense, this isn’t actually news — the folks doing DOT realized years ago that this particular corner of Scala isn’t sound in the theoretical sense, and it’s always been a bit fragile in Scala 2. (I suspect these facts are not unrelated.) And Dotty dealt with this quite a while ago.

But as Dotty begins to turn into Scala 3, its design elements are starting to turn into formal SIPs, and it’s time for this one to be examined. So if you have any thoughts on it, or are simply curious, I recommend checking out the link above.

--

--

Mark "Justin" Waks
Mark "Justin" Waks

Written by Mark "Justin" Waks

Lifelong programmer and software architect, specializing in online social tools and (nowadays) Scala. Architect of Querki (“leading the small data revolution”).

No responses yet