Polarized Subtyping

01/26/2022
by   Zeeshan Lakhani, et al.
0

Polarization of types in call-by-push-value naturally leads to the separation of inductively defined observable values (classified by positive types), and coinductively defined computations (classified by negative types), with adjoint modalities mediating between them. Taking this separation as a starting point, we develop a semantic characterization of typing with step indexing to capture observation depth of recursive computations. This semantics justifies a rich set of subtyping rules for an equirecursive variant of call-by-push-value, including variant and lazy records. We further present a bidirectional syntactic typing system for both values and computations that elegantly and pragmatically circumvents difficulties of type inference in the presence of width and depth subtyping for variant and lazy records. We demonstrate the flexibility of our system by systematically deriving related systems of subtyping for (a) isorecursive types, (b) call-by-name, and (c) call-by-value, all using a structural rather than a nominal interpretation of types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/21/2018

Modalities, Cohesion, and Information Flow

It is informally understood that the purpose of modal type constructors ...
research
12/30/2018

A Probabilistic and Non-Deterministic Call-by-Push-Value Language

There is no known way of giving a domain-theoretic semantics to higher-o...
research
05/02/2021

The Power of Tightness for Call-By-Push-Value

We propose tight type systems for Call-by-Name (CBN) and Call-by-Value (...
research
08/05/2022

Recurrence extraction and denotational semantics with recursive definitions

With one exception, our previous work on recurrence extraction and denot...
research
07/17/2023

Generic Programming with Extensible Data Types; Or, Making Ad Hoc Extensible Data Types Less Ad Hoc

We present a novel approach to generic programming over extensible data ...
research
04/17/2023

Structural Subtyping as Parametric Polymorphism

Structural subtyping and parametric polymorphism provide a similar kind ...

Please sign up or login with your details

Forgot password? Click here to reset