Semantically Separating Nominal Wyvern for Usability and Decidability

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Zhu, Yu Xiang, Robinson, Amos, Roshal, Sophia, Mou, Timothy, Mackay, Julian, Aldrich, Jonathan, Potanin, Alex
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912667365539840
author Zhu, Yu Xiang
Robinson, Amos
Roshal, Sophia
Mou, Timothy
Mackay, Julian
Aldrich, Jonathan
Potanin, Alex
author_facet Zhu, Yu Xiang
Robinson, Amos
Roshal, Sophia
Mou, Timothy
Mackay, Julian
Aldrich, Jonathan
Potanin, Alex
contents The Dependent Object Types (DOT) calculus incorporates concepts from functional languages (e.g. modules) with traditional object-oriented features (e.g. objects, subtyping) to achieve greater expressivity (e.g. F-bounded polymorphism). However, this merger of paradigms comes at the cost of subtype decidability. Recent work on bringing decidability to DOT has either sacrificed expressiveness or ease of use. The unrestricted construction of recursive types and type bounds has made subtype decidability a much harder problem than in traditional object-oriented programming. Recognizing this, our paper introduces Nominal Wyvern, a DOT-like dependent type system that takes an alternative approach: instead of having a uniform structural syntax like DOT, Nominal Wyvern is designed around a "semantic separation" between the nominal declaration of recursive types on the one hand, and the structural refinement of those types when they are used on the other. This design naturally guides the user to avoid writing undecidably recursive structural types. From a technical standpoint, this separation also makes guaranteeing decidability possible by allowing for an intuitive adaptation of material/shape separation, a technique for achieving subtype decidability by separating types responsible for subtyping constraints from types that represent concrete data. The result is a type system with syntax and structure familiar to OOP users that achieves decidability without compromising the expressiveness of F-bounded polymorphism and module systems as they are used in practice.
format Preprint
id arxiv_https___arxiv_org_abs_2507_03867
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Semantically Separating Nominal Wyvern for Usability and Decidability
Zhu, Yu Xiang
Robinson, Amos
Roshal, Sophia
Mou, Timothy
Mackay, Julian
Aldrich, Jonathan
Potanin, Alex
Programming Languages
The Dependent Object Types (DOT) calculus incorporates concepts from functional languages (e.g. modules) with traditional object-oriented features (e.g. objects, subtyping) to achieve greater expressivity (e.g. F-bounded polymorphism). However, this merger of paradigms comes at the cost of subtype decidability. Recent work on bringing decidability to DOT has either sacrificed expressiveness or ease of use. The unrestricted construction of recursive types and type bounds has made subtype decidability a much harder problem than in traditional object-oriented programming. Recognizing this, our paper introduces Nominal Wyvern, a DOT-like dependent type system that takes an alternative approach: instead of having a uniform structural syntax like DOT, Nominal Wyvern is designed around a "semantic separation" between the nominal declaration of recursive types on the one hand, and the structural refinement of those types when they are used on the other. This design naturally guides the user to avoid writing undecidably recursive structural types. From a technical standpoint, this separation also makes guaranteeing decidability possible by allowing for an intuitive adaptation of material/shape separation, a technique for achieving subtype decidability by separating types responsible for subtyping constraints from types that represent concrete data. The result is a type system with syntax and structure familiar to OOP users that achieves decidability without compromising the expressiveness of F-bounded polymorphism and module systems as they are used in practice.
title Semantically Separating Nominal Wyvern for Usability and Decidability
topic Programming Languages
url https://arxiv.org/abs/2507.03867