There is a newer version of the record available.

Published October 6, 2022 | Version v1

A Bowtie for a Beast: Overloading, Eta Expansion, and Extensible Data Types in F⋈ (Artifact)

  • 1. University of Pennsylvania
  • 2. University of Hong Kong

Description

This is the artifact for the following paper:

A Bowtie for a Beast: Overloading, Eta Expansion, and Extensible Data Types in F⋈

[ POPL‘23 ]

 

Our companion paper presents F⋈, a core language that demonstrates how unions, intersections, and overloading can all coexist with a tame merge operator. Merging values from overlapping types may be ambiguous, so disjointness relations have been introduced to rule out undesired nondeterminism and obtain a well-behaved semantics. Our design principle states that any two types can support either the deterministic merging of their values, or the ability to distinguish their values, but never both. To realize this invariant, We decompose previously studied notions of disjointness into two new, dual relations that permit the operation that best suits each pair of types. This artifact contains Coq code that formalizes certain type-level parts of the semantics of F⋈, including subtyping, dispatch, and some key properties of the two disjointness relations.

Files

bowtie-artifact.zip

Files (1.2 GB)

Name Size
md5:60aed649f82d12680579415e63167174
489.5 kB Preview Download
md5:f12448b5223734af3257ed8b861e845f
1.2 GB Download