report
Dotty Phantom Types
July 21, 2017
Phantom types are a well-known type-level, design pattern which is commonly used to express constraints encoded in types. We observe that in modern, multi-paradigm programming languages, these encodings are too restrictive or do not provide the guarantees that phantom types try to enforce. Furthermore, in some cases they introduce unwanted runtime overhead. We propose a new design for phantom types as a language feature that: (a) solves the aforementioned issues and (b) makes the first step towards new programming paradigms such as proof-carrying code and static capabilities. This paper presents the design of phantom types for Scala, as implemented in the Dotty compiler.
Type
report
Date Issued
2017-07-21
Total of pages
5
Editorial or Peer reviewed
NON-REVIEWED
Written at
EPFL
EPFL units
Available on Infoscience
January 10, 2020
Use this identifier to reference this record