Structural subtyping and parametric polymorphism provide similar
flexibility and reusability to programmers. For example, both features
enable the programmer to provide a wider record as an argument to a
function that expects a narrower one. However, the means by which they
do so differs substantially, and the precise details of the
relationship between them exists, at best, as folklore in literature.
In this paper, we systematically study the relative expressive power
of structural subtyping and parametric polymorphism. We focus our
investigation on establishing the extent to which parametric
polymorphism, in the form of row and presence polymorphism, can encode
structural subtyping for variant and record types. We base our study
on various Church-style $\lambda$-calculi extended with records and
variants, different forms of structural subtyping, and row and
presence polymorphism.
We characterise expressiveness by exhibiting compositional
translations between calculi. For each translation we prove a type
preservation and operational correspondence result. We also prove a
number of non-existence results. By imposing restrictions on both
source and target types, we reveal further subtleties in the
expressiveness landscape, the restrictions enabling otherwise
impossible translations to be defined. More specifically, we prove
that full subtyping cannot be encoded via polymorphism, but we show
that several restricted forms of subtyping can be encoded via
particular forms of polymorphism.
Thu 26 OctDisplayed time zone: Lisbon change
14:00 - 15:30 | |||
14:00 18mTalk | Greedy Implicit Bounded Quantification OOPSLA Chen Cui University of Hong Kong, Shengyi Jiang University of Hong Kong, Bruno C. d. S. Oliveira University of Hong Kong DOI | ||
14:18 18mTalk | Structural Subtyping as Parametric Polymorphism OOPSLA Wenhao Tang University of Edinburgh, Daniel Hillerström Huawei Zurich Research Center, James McKinna Heriot-Watt University, Michel Steuwer TU Berlin; University of Edinburgh, Ornela Dardha University of Glasgow, Rongxiao Fu University of Edinburgh, Sam Lindley University of Edinburgh DOI Pre-print | ||
14:36 18mTalk | Simple Reference Immutability for System F<: OOPSLA DOI | ||
14:54 18mTalk | Mutually Iso-Recursive Subtyping OOPSLA Andreas Rossberg Independent DOI | ||
15:12 18mTalk | Getting into the Flow: Towards Better Type Error Messages for Constraint-Based Type Inference OOPSLA Ishan Bhanuka Hong Kong University of Science and Technology, Lionel Parreaux Hong Kong University of Science and Technology, David Binder University of Tübingen, Jonathan Immanuel Brachthäuser University of Tübingen DOI Pre-print |