{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,3]],"date-time":"2026-04-03T22:49:39Z","timestamp":1775256579859,"version":"3.50.1"},"reference-count":52,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nd\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["1350182"],"award-info":[{"award-number":["1350182"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3276482","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T07:57:18Z","timestamp":1540367838000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["Empowering union and intersection types with integrated subtyping"],"prefix":"10.1145","volume":"2","author":[{"given":"Fabian","family":"Muehlboeck","sequence":"first","affiliation":[{"name":"Cornell University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ross","family":"Tate","sequence":"additional","affiliation":[{"name":"Cornell University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.242.3"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165188"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2983992"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535862"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1995.1086"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1137\/141000671"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44202-9_11"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429124"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/2379036.2379037"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2034773.2034788"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2824815.2824816"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF02011875"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/646233.682244"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500001134"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"e_1_2_2_16_1","doi-asserted-by":"crossref","unstructured":"Ornela Dardha Daniele Gorla and Daniele Varacca. 2013. Semantic Subtyping for Objects and Classes . In MOODS\/FORTE. Springer Berlin Heidelberg Berlin Heidelberg DEU 66\u201382. Ornela Dardha Daniele Gorla and Daniele Varacca. 2013. Semantic Subtyping for Objects and Classes . In MOODS\/FORTE. Springer Berlin Heidelberg Berlin Heidelberg DEU 66\u201382.","DOI":"10.1007\/978-3-642-38592-6_6"},{"key":"e_1_2_2_17_1","unstructured":"Facebook. 2014. The Flow Static Type Checker Documentation . Facebook. 2014. The Flow Static Type Checker Documentation ."},{"key":"e_1_2_2_18_1","doi-asserted-by":"crossref","unstructured":"Alain Frisch Giuseppe Castagna and V\u00e9ronique Benzaken. 2002. Semantic Subtyping . In LICS. IEEE Washington DC USA 137\u2013146. Alain Frisch Giuseppe Castagna and V\u00e9ronique Benzaken. 2002. Semantic Subtyping . In LICS. IEEE Washington DC USA 137\u2013146.","DOI":"10.1109\/LICS.2002.1029823"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1391289.1391293"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2812805"},{"key":"e_1_2_2_21_1","volume-title":"Logic, Thought and Action","author":"Gochet Paul"},{"key":"e_1_2_2_22_1","unstructured":"James Gosling Bill Joy Guy Steele and Gilad Bracha. 2005. The Java\u2122 Language Specification 3rd Edition . Addison-Wesley Professional Boston MA USA. James Gosling Bill Joy Guy Steele and Gilad Bracha. 2005. The Java\u2122 Language Specification 3rd Edition . Addison-Wesley Professional Boston MA USA."},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594308"},{"key":"e_1_2_2_24_1","unstructured":"Anders Hejlsberg Scott Wiltamuth and Peter Golde. 2005. C# Language Specification 2.0 . Addison-Wesley Longman Publishing Co. Inc. Boston MA USA. Anders Hejlsberg Scott Wiltamuth and Peter Golde. 2005. C# Language Specification 2.0 . Addison-Wesley Longman Publishing Co. Inc. Boston MA USA."},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926429"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/767193.767195"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351242"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.3233\/FI-2017-1473"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006034"},{"key":"e_1_2_2_30_1","unstructured":"Andrew J. Kennedy and Benjamin C. Pierce. 2007. On Decidability of Nominal Subtyping with Variance . In FOOL. ACM New York NY USA Article 5 12 pages. Andrew J. Kennedy and Benjamin C. Pierce. 2007. On Decidability of Nominal Subtyping with Variance . In FOOL. ACM New York NY USA Article 5 12 pages."},{"key":"e_1_2_2_31_1","unstructured":"Gavin King. 2013. The Ceylon Language Specification Version 1.0 . Gavin King. 2013. The Ceylon Language Specification Version 1.0 ."},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500000657"},{"key":"e_1_2_2_33_1","volume-title":"Topics in Theoretical Computer Science","author":"Liquori Luigi"},{"key":"e_1_2_2_34_1","unstructured":"Microsoft. 2012. TypeScript . Microsoft. 2012. TypeScript ."},{"key":"e_1_2_2_35_1","unstructured":"Microsoft. 2018. The Typescript Handbook . Microsoft. 2018. The Typescript Handbook ."},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(88)90009-0"},{"key":"e_1_2_2_37_1","doi-asserted-by":"crossref","unstructured":"Fabian Muehlboeck and Ross Tate. 2018. Artifact for Article \u201cEmpowering Union and Intersection Types with Integrated Subtyping\u201d . In OOPSLA. ACM New York NY USA. Fabian Muehlboeck and Ross Tate. 2018. Artifact for Article \u201cEmpowering Union and Intersection Types with Integrated Subtyping\u201d . In OOPSLA. ACM New York NY USA.","DOI":"10.1145\/3276482"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237729"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268963"},{"key":"e_1_2_2_42_1","unstructured":"Benjamin C. Pierce. 2002. Types and Programming Languages . MIT Press Boston MA USA. Benjamin C. Pierce. 2002. Types and Programming Languages . MIT Press Boston MA USA."},{"key":"e_1_2_2_43_1","volume-title":"To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism","author":"Pottinger Garrell"},{"key":"e_1_2_2_45_1","volume-title":"ALGOL-like Languages","author":"Reynolds John C."},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984008"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00650498"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993570"},{"key":"e_1_2_2_49_1","unstructured":"The Coq Development Team. 1984. The Coq Proof Assistant . The Coq Development Team. 1984. The Coq Proof Assistant ."},{"key":"e_1_2_2_50_1","unstructured":"The Dotty Development Team. 2015. Dotty . The Dotty Development Team. 2015. Dotty ."},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328486"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00265077"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1005212701420"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796801004245"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276483"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276482","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276482","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276482","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,3]],"date-time":"2026-04-03T21:27:22Z","timestamp":1775251642000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276482"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":52,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276482"],"URL":"https:\/\/doi.org\/10.1145\/3276482","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}