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.
翻译:暂无翻译