Skip to content

Commit 084339c

Browse files
committed
add better abstract
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
1 parent 2b3b88f commit 084339c

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

proposed/0029-types.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,19 @@
66

77
## Summary
88

9+
Vortex separates logical types (`DType`) from physical encodings, but the boundary between them has
10+
been defined informally. This has led to recurring debates, such as whether `FixedSizeBinary<n>`
11+
warrants a new `DType` variant or is merely `FixedSizeList<u8, n>` under a different name. More
12+
fundamentally, we lack a shared vocabulary for reasoning about what makes two types "different" at
13+
the logical level.
14+
915
This RFC formalizes the Vortex type system by grounding `DType` as a quotient type over physical
10-
encodings and establishes a decision framework (based on refinement types) for when new `DType`
11-
variants are justified.
16+
encodings: each `DType` variant names an equivalence class of encodings that decode to the same
17+
logical values. It then uses refinement types to establish a decision framework for when new `DType`
18+
variants are justified. A new logical type requires either semantic distinctness (a genuinely
19+
different equivalence class) or a refinement predicate that gates operations unavailable on the
20+
parent type. If justified, a second step determines whether the type belongs in core `DType` or as
21+
an extension type.
1222

1323
## Overview
1424

0 commit comments

Comments
 (0)