State of structural typing support in Scala 3.3.0

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

    Similar works

    Full text

    thumbnail-image

    Available Versions