typelevel/kind-projector

"Update: the Typelevel compiler contains a built-in syntax for type lambdas!"

Closed this issue · 5 comments

paulp commented

...says the README. But it doesn't really, right? In fact this page seems to be rich with features which aren't in the release I've come to know as the "typelevel compiler".

Am I correct in supposing that these features existed at some point, but when you decided to limit the scope to changes which had a pull request open against scala/scala, all the other changes were sidelined?

non commented

@paulp The short answer is: I'm not sure!

The changes on that page were "in" the Typelevel compiler when I was working on it (Fall 2014, roughly). I'm not really sure what has happened since the revived interest recently -- it certainly looks like things were changed. My guess is that @milessabin and others are porting things over, possibly after PRing them against mainline Scala, and that syntax either is not being included, or just has not been reached yet.

I'm going to go ahead and amend the REAMDE, since you're right, it's not accurate now (although I do believe it was at one point).

non commented

I just removed that section: 4e5eda1.

I should probably commit to spending some time porting that syntax change into a SIP and PR against the mainline compiler, but in the short term this seems like a more realistic fix.

paulp commented

It does seem like the audience for the typelevel compiler is a strict subset of the audience for kind-projector, so everyone having to also add kind-projector is a bit unfortunate.

It occurs to me that the most valuable change you could ship would be an improved mechanism for extending the compiler (things like a way to plug into the parser, or an AST which actually at some moment in time represents what was written in the source code, or a way to pull in a number of plugins without all the ceremony, etc.) Sort of ironic. But that single improvement under the typelevel auspices might enable a thousand more beyond it.

Ouch. That page needs to go ... sorry I should have dealt with it earlier.

Type lambda syntax would definitely be a useful language extension. If someone wants to put a PR against Lightbend Scala together it would appear in Typelevel Scala very swiftly.

non commented

I'm closing this issue -- the README and wiki have both been updated.