000222780 001__ 222780
000222780 005__ 20190317000548.0
000222780 0247_ $$2doi$$a10.1145/2998392.2998400
000222780 02470 $$2ISI$$a000390845300006
000222780 037__ $$aCONF
000222780 245__ $$aImplementing Higher-Kinded Types in Dotty
000222780 269__ $$a2016
000222780 260__ $$aNew York$$bACM$$c2016
000222780 300__ $$a10
000222780 336__ $$aConference Papers
000222780 520__ $$adotty is a new, experimental Scala compiler based on DOT, the calculus of Dependent Object Types. Higher-kinded types are a natural extension of first-order lambda calculus, and have been a core construct of Haskell and Scala. As long as such types are just partial applications of generic classes, they can be given a meaning in DOT relatively straightforwardly. But general lambdas on the type level require extensions of the DOT calculus to be expressible. This paper is an experience report where we describe and discuss four implementation strategies that we have tried out in the last three years. Each strategy was fully implemented in the dotty compiler. We discuss the usability and expressive power of each scheme, and give some indications about the amount of implementation difficulties encountered.
000222780 6531_ $$aScala Type-Systems
000222780 700__ $$0241835$$aOdersky, Martin$$g126003
000222780 700__ $$0249476$$aMartres, Guillaume$$g203085
000222780 700__ $$0248093$$aPetrashko, Dmytro$$g233192
000222780 7112_ $$aScala Symposium 2016$$cAmsterdam$$dOct 30-31, 2016
000222780 773__ $$tProceedings of the Scala Symposium 2016
000222780 8564_ $$s291667$$uhttps://infoscience.epfl.ch/record/222780/files/p51-odersky.pdf$$yPreprint$$zPreprint
000222780 909C0 $$0252187$$pLAMP$$xU10409
000222780 909CO $$ooai:infoscience.tind.io:222780$$pconf$$pIC$$qGLOBAL_SET
000222780 917Z8 $$x126003
000222780 937__ $$aEPFL-CONF-222780
000222780 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000222780 980__ $$aCONF