English

State of structural typing support in Scala 3.3.0

Programming Languages 2023-11-21 v1

Abstract

Scala's type system is primarily based on nominal typing. Scala 3 introduces a special type, Selectable, which provides an infrastructure for structural typing. Karlsson and Haller proposed improvements to Selectable to support extensible records. In this paper, we review several Scala 3 projects that involve structural typing. We find that their implementation or usability would benefit from the extensible records proposal from Karlsson and Haller. We investigate the remaining common challenges when working with structural types. In particular, we identify that a dedicated syntax for both record types and record literals would be the most beneficial addition to the language.

Keywords

Cite

@article{arxiv.2311.11105,
  title  = {State of structural typing support in Scala 3.3.0},
  author = {Julien Richard-Foy},
  journal= {arXiv preprint arXiv:2311.11105},
  year   = {2023}
}