Union and intersection types are both simple and powerful but have seen limited adoption. The problem is that, so far, subtyping algorithms for type systems extended with union and intersections have typically been either unreliable or insufficiently expressive. We present a simple and composable framework for empowering union and intersection types so that they interact with the rest of the type system in an intuitive and yet still decidable manner. We demonstrate the utility of this framework by illustrating the impact it has made throughout the design of the Ceylon programming language developed by Red Hat.
More recently, Muehlboeck and Tate REF presented a decidable algorithmic system (proved in Coq) with union and intersection types.
Empowering union and intersection types with integrated subtyping
PACMPL
Computer Science