Union and intersection types are a staple of gradually typed languages such as TypeScript. While it’s long been recognized that union and intersection types are difficult to verify statically, it may appear at first that the dynamic part of gradual typing is actually pretty simple.
It turns out however, that in presence of higher-order contracts union and intersection are deceptively difficult. The literature on higher-order contracts with union and intersection, while keenly aware of the fact, doesn’t really explain why. We point and illustrate the problems and tradeoffs inherent to union and intersection contracts, via example and a survey of the literature.
Fri 10 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
Fri 10 Jun
Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | TypesResearch Papers / Hub Talks / Expert Discussion at Aurora Borealis 1 Chair(s): Niki Vazou IMDEA Software Institute | ||
11:00 30mPanel | Type systemsExpert Discussion Expert Discussion | ||
11:30 20mTalk | How to Take the Inverse of a TypeECOOP 2022 Research Papers Pre-print | ||
11:50 20mTalk | Union and intersection contracts are hard, actuallyHub Talk Hub Talks Link to publication DOI | ||
12:10 20mTalk | Global Type Inference for Featherweight Generic JavaVCOOP 2022ECOOP 2022 Research Papers Andreas Stadelmeier DHBW Stuttgart, Campus Horb, Germany, Martin Plümicke DHBW Stuttgart, Campus Horb, Germany, Peter Thiemann University of Freiburg, Germany |