{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,27]],"date-time":"2026-05-27T16:57:44Z","timestamp":1779901064556,"version":"3.53.1"},"reference-count":53,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2023,11,20]],"date-time":"2023-11-20T00:00:00Z","timestamp":1700438400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000038","name":"Natural Sciences and Engineering Research Council of Canada","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100000038","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2023,12,31]]},"abstract":"<jats:p>\n            Type systems usually characterize the shape of values but not their free variables. However, many desirable safety properties could be guaranteed if one knew the free variables captured by values. We describe\n            <jats:monospace>\n              CC\n              <jats:sub>&lt; :\u25fb<\/jats:sub>\n            <\/jats:monospace>\n            , a calculus where such captured variables are succinctly represented in types, and show it can be used to safely implement effects and effect polymorphism via scoped capabilities. We discuss how the decision to track captured variables guides key aspects of the calculus, and show that\n            <jats:monospace>\n              CC\n              <jats:sub>&lt; :\u25fb<\/jats:sub>\n            <\/jats:monospace>\n            \u00a0 admits simple and intuitive types for common data structures and their typical usage patterns. We demonstrate how these ideas can be used to guide the implementation of capture checking in a practical programming language.\n          <\/jats:p>","DOI":"10.1145\/3618003","type":"journal-article","created":{"date-parts":[[2023,9,13]],"date-time":"2023-09-13T12:19:32Z","timestamp":1694607572000},"page":"1-52","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":19,"title":["Capturing Types"],"prefix":"10.1145","volume":"45","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-5769-6684","authenticated-orcid":false,"given":"Aleksander","family":"Boruch-Gruszecki","sequence":"first","affiliation":[{"name":"EPFL"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-3923-8993","authenticated-orcid":false,"given":"Martin","family":"Odersky","sequence":"additional","affiliation":[{"name":"EPFL"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7057-0912","authenticated-orcid":false,"given":"Edward","family":"Lee","sequence":"additional","affiliation":[{"name":"University of Waterloo"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9128-0391","authenticated-orcid":false,"given":"Ond\u0159ej","family":"Lhot\u00e1k","sequence":"additional","affiliation":[{"name":"University of Waterloo"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9066-1889","authenticated-orcid":false,"given":"Jonathan","family":"Brachth\u00e4user","sequence":"additional","affiliation":[{"name":"Eberhard Karls University of T\u00fcbingen"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,11,20]]},"reference":[{"key":"e_1_3_4_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-30936-1_14"},{"key":"e_1_3_4_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485516"},{"key":"e_1_3_4_4_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500070109"},{"key":"e_1_3_4_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371116"},{"key":"e_1_3_4_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(85)90135-5"},{"key":"e_1_3_4_7_1","article-title":"Tracking captured variables in types","author":"Boruch-Gruszecki Aleksander","year":"2021","unstructured":"Aleksander Boruch-Gruszecki, Jonathan Immanuel Brachth\u00e4user, Edward Lee, Ond\u0159ej Lhot\u00e1k, and Martin Odersky. 2021. Tracking captured variables in types. arXiv:2105.11896 [cs] (2021).","journal-title":"arXiv:2105.11896 [cs]"},{"key":"e_1_3_4_8_1","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1007\/3-540-45337-7_2","volume-title":"ECOOP 2001\u2014Object-Oriented Programming","author":"Boyland John","year":"2001","unstructured":"John Boyland, James Noble, and William Retert. 2001. Capabilities for sharing. In ECOOP 2001\u2014Object-Oriented Programming, J\u00f8rgen Lindskov Knudsen (Ed.). Springer, Berlin, Germany, 2\u201327."},{"key":"e_1_3_4_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14107-2_20"},{"key":"e_1_3_4_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3527320"},{"key":"e_1_3_4_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428194"},{"key":"e_1_3_4_12_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000027"},{"key":"e_1_3_4_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408993"},{"key":"e_1_3_4_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286947"},{"key":"e_1_3_4_15_1","unstructured":"William R. Cook. 2009. On understanding data abstraction revisited. In Proceedings of the 24th ACM SIGPLAN Conference on Object-Oriented Programming Systems Language and Applications (OOPSLA\u201909) . ACM New York NY 557\u2013572."},{"key":"e_1_3_4_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-02450-5_14"},{"key":"e_1_3_4_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292564"},{"key":"e_1_3_4_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2955811.2955821"},{"key":"e_1_3_4_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2015.11.010"},{"key":"e_1_3_4_20_1","volume-title":"A Mechanized Theory of the Box Calculus","author":"Fourment Joseph","year":"2023","unstructured":"Joseph Fourment and Yichen Xu. 2023. A Mechanized Theory of the Box Calculus. Technical Report. Infoscience. http:\/\/infoscience.epfl.ch\/record\/302949"},{"key":"e_1_3_4_21_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2020.10"},{"key":"e_1_3_4_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512563"},{"key":"e_1_3_4_23_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796898003025"},{"key":"e_1_3_4_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.178053"},{"key":"e_1_3_4_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/258948.258970"},{"key":"e_1_3_4_26_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.153.8"},{"key":"e_1_3_4_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009872"},{"key":"e_1_3_4_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009897"},{"key":"e_1_3_4_29_1","article-title":"A Study of Capability-Based Effect Systems","author":"Liu Fengyun","year":"2016","unstructured":"Fengyun Liu. 2016. A Study of Capability-Based Effect Systems. Master\u2019s Thesis. Infoscience. infoscience.epfl.ch\/record\/219173","journal-title":"Master\u2019s Thesis"},{"key":"e_1_3_4_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73564"},{"key":"e_1_3_4_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1481861.1481868"},{"key":"e_1_3_4_32_1","volume-title":"Controlling Module Authority Using Programming Language Design","author":"Melicher Darya","year":"2020","unstructured":"Darya Melicher. 2020. Controlling Module Authority Using Programming Language Design. Ph.D. Dissertation. Carnegie Mellon University."},{"key":"e_1_3_4_33_1","volume-title":"Proceedings of the 31st European Conference on Object-Oriented Programming (ECOOP\u201917)","author":"Melicher Darya","year":"2017","unstructured":"Darya Melicher, Yangqingwei Shi, Alex Potanin, and Jonathan Aldrich. 2017. A capability-based module system for authority control. In Proceedings of the 31st European Conference on Object-Oriented Programming (ECOOP\u201917)."},{"key":"e_1_3_4_34_1","volume-title":"Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control","author":"Miller Mark Samuel","year":"2006","unstructured":"Mark Samuel Miller. 2006. Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control. Ph.D. Dissertation. Johns Hopkins University."},{"key":"e_1_3_4_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1352582.1352591"},{"key":"e_1_3_4_36_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0054091"},{"key":"e_1_3_4_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158130"},{"key":"e_1_3_4_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3486610.3486893"},{"key":"e_1_3_4_39_1","article-title":"Extension Methods","author":"Odersky Martin","year":"2020","unstructured":"Martin Odersky and Guillaume Martres. 2020. Extension Methods: Scala 3 Language Reference Page. Retrieved September 19, 2023 from https:\/\/dotty.epfl.ch\/docs\/reference\/contextual\/extension-methods.html","journal-title":"Scala 3 Language Reference Page"},{"key":"e_1_3_4_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984009"},{"key":"e_1_3_4_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628160"},{"key":"e_1_3_4_42_1","doi-asserted-by":"publisher","DOI":"10.5555\/509043"},{"key":"e_1_3_4_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984008"},{"key":"e_1_3_4_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_13"},{"key":"e_1_3_4_45_1","first-page":"6 (1993), 289\u20133","volume-title":"LISP and Symbolic Computation","author":"Sabry Amr","year":"1993","unstructured":"Amr Sabry and Matthias Felleisen. 1993. Reasoning about programs in continuation-passing style. In LISP and Symbolic Computation6 (1993), 289\u2013360."},{"key":"e_1_3_4_46_1","unstructured":"Scala. 2022a. Scala 3 API: scala.util.boundary. Retrieved September 19 2023 from https:\/\/www.scala-lang.org\/api\/3.3.0\/scala\/util\/boundary$.html"},{"key":"e_1_3_4_47_1","unstructured":"Scala. 2022b. Scala 3: Capture Checking. Retrieved September 19 2023 from https:\/\/dotty.epfl.ch\/docs\/reference\/experimental\/cc.html"},{"key":"e_1_3_4_48_1","unstructured":"Scala. 2022c. The Scala 3 Compiler Also Known as Dotty. Retrieved September 19 2023 from https:\/\/dotty.epfl.ch"},{"key":"e_1_3_4_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-30936-1_14"},{"key":"e_1_3_4_50_1","article-title":"Effects for funargs","volume":"1201","author":"Siek Jeremy G.","year":"2012","unstructured":"Jeremy G. Siek, Michael M. Vitousek, and Jonathan D. Turner. 2012. Effects for funargs. CoRR abs\/1201.0023 (2012). http:\/\/arxiv.org\/abs\/1201.0023","journal-title":"CoRR"},{"key":"e_1_3_4_51_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_3_4_52_1","first-page":"561","volume-title":"Programming Concepts and Methods: Proceedings of the IFIP Working Group 2.2, 2.3 Working Conference on Programming Concepts and Methods","author":"Wadler Philip","year":"1990","unstructured":"Philip Wadler. 1990. Linear types can change the world! In Programming Concepts and Methods: Proceedings of the IFIP Working Group 2.2, 2.3 Working Conference on Programming Concepts and Methods, Manfred Broy and Cliff B. Jones (Eds.). North-Holland, 561."},{"key":"e_1_3_4_53_1","volume-title":"Formalizing Box Inference for Capture Calculus","author":"Xu Yichen","year":"2023","unstructured":"Yichen Xu and Martin Odersky. 2023. Formalizing Box Inference for Capture Calculus. Technical Report. EPFL."},{"key":"e_1_3_4_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290318"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3618003","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3618003","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:58Z","timestamp":1750178278000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3618003"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,11,20]]},"references-count":53,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,12,31]]}},"alternative-id":["10.1145\/3618003"],"URL":"https:\/\/doi.org\/10.1145\/3618003","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,11,20]]},"assertion":[{"value":"2022-10-23","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-11-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}