Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. Implementing Higher-Kinded Types in Dotty
 
conference paper

Implementing Higher-Kinded Types in Dotty

Odersky, Martin  
•
Martres, Guillaume  
•
Petrashko, Dmytro  
2016
Proceedings of the Scala Symposium 2016
Scala Symposium 2016

dotty 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.

  • Files
  • Details
  • Metrics
Type
conference paper
DOI
10.1145/2998392.2998400
Web of Science ID

WOS:000390845300006

Author(s)
Odersky, Martin  
Martres, Guillaume  
Petrashko, Dmytro  
Date Issued

2016

Publisher

ACM

Publisher place

New York

Published in
Proceedings of the Scala Symposium 2016
Total of pages

10

Subjects

Scala Type-Systems

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LAMP1  
Event nameEvent placeEvent date
Scala Symposium 2016

Amsterdam

Oct 30-31, 2016

Available on Infoscience
October 30, 2016
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/130854
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés