{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T16:37:44Z","timestamp":1787503064742,"version":"build-2736575974"},"reference-count":61,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2024,1,2]],"date-time":"2024-01-02T00:00:00Z","timestamp":1704153600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,1,2]]},"abstract":"<jats:p>An important aspect of building robust systems that execute on dedicated hardware and perhaps in constrained environments is to control and manage the effects performed by program code.<\/jats:p>\n                  <jats:p>We present ReML, a higher-order statically-typed functional language, which allows programmers to be explicit about the effects performed by program code and in particular effects related to memory management Allowing programmers to be explicit about effects, the regions in which values reside, and the constraints under which code execute, makes programs robust to changes in the program source code and to compiler updates, including compiler optimisations.<\/jats:p>\n                  <jats:p>ReML is integrated with a polymorphic inference system that builds on top of region-inference, as it is implemented in the MLKit, a Standard ML compiler that uses region-based memory management as its primary memory management scheme.<\/jats:p>","DOI":"10.1145\/3632921","type":"journal-article","created":{"date-parts":[[2024,1,5]],"date-time":"2024-01-05T15:48:51Z","timestamp":1704469731000},"page":"2370-2394","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Explicit Effects and Effect Constraints in ReML"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6061-5993","authenticated-orcid":false,"given":"Martin","family":"Elsman","sequence":"first","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,1,5]]},"reference":[{"key":"e_1_3_1_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlamp.2014.02.001"},{"key":"e_1_3_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00025-6"},{"key":"e_1_3_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237771"},{"key":"e_1_3_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3527320"},{"key":"e_1_3_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428194"},{"key":"e_1_3_1_7_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000027"},{"key":"e_1_3_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/360204.360217"},{"key":"e_1_3_1_9_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.2001.3112"},{"key":"e_1_3_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086375"},{"key":"e_1_3_1_11_1","volume-title":"Technical Report CMU-CS-90-186","author":"Cooper E.","year":"1990","unstructured":"E. Cooper and G. Morrisett. 1990. Adding Threads to Standard ML. Technical Report CMU-CS-90-186. Carnegie Mellon University, Department of Computer Science. Technical report."},{"key":"e_1_3_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/647228.719238"},{"key":"e_1_3_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2093328.2093336"},{"key":"e_1_3_1_14_1","doi-asserted-by":"publisher","unstructured":"Martin Elsman. 2023. Garbage-Collection Safety for Region-Based Type-Polymorphic Programs. In Proceedings of the 44th ACM SIGPLAN Conference on Programming Language Design and Implementation (Orlando Florida USA) (PLDI 2023). Association for Computing Machinery New York NY USA. https:\/\/doi.org\/10.1145\/3591229 10.1145\/3591229","DOI":"10.1145\/3591229"},{"key":"e_1_3_1_15_1","doi-asserted-by":"publisher","unstructured":"Martin Elsman. 2024. Artifact for the POPL 2024 paper: Explicit Effects and Effect Constraints in ReML. Zenodo. https:\/\/doi.org\/10.5281\/zenodo.8425443 10.5281\/zenodo.8425443","DOI":"10.5281\/zenodo.8425443"},{"key":"e_1_3_1_16_1","volume-title":"An Optimizing Backend for the ML Kit Using a Stack of Regions","author":"Elsman Martin","year":"1995","unstructured":"Martin Elsman and Niels Hallenberg. 1995. An Optimizing Backend for the ML Kit Using a Stack of Regions. Student Project 95-7-8, University of Copenhagen (DIKU)."},{"key":"e_1_3_1_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796821000010"},{"key":"e_1_3_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591256"},{"key":"e_1_3_1_19_1","volume-title":"Technical Report UCB\/CSD-98-996. EECS Department","author":"Fahndrich Manuel","year":"1998","unstructured":"Manuel Fahndrich, Jeffrey S. Foster, Jason Cu, and Alexander Aiken. 1998. Tracking down Exceptions in Standard ML Programs. Technical Report UCB\/CSD-98-996. EECS Department, University of California, Berkeley. http:\/\/www2.eecs.berkeley.edu\/Pubs\/TechRpts\/1998\/5561.html"},{"key":"e_1_3_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385994"},{"key":"e_1_3_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1016850.1016867"},{"key":"e_1_3_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411224"},{"key":"e_1_3_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512531"},{"key":"e_1_3_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/113445.113468"},{"key":"e_1_3_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/277650.277748"},{"key":"e_1_3_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1708016.1708020"},{"key":"e_1_3_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512563"},{"key":"e_1_3_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/227699.227700"},{"key":"e_1_3_1_29_1","volume-title":"Student Project 96-5-7","author":"Hallenberg Niels","year":"1996","unstructured":"Niels Hallenberg. 1996. A Region Profiler for a Standard ML compiler based on Region Inference. Student Project 96-5-7, Department of Computer Science, University of Copenhagen (DIKU)."},{"key":"e_1_3_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512547"},{"key":"e_1_3_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/S1571-0661(04)80870-3"},{"key":"e_1_3_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/773184.773203"},{"key":"e_1_3_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1029873.1029883"},{"key":"e_1_3_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(94)00005-0"},{"key":"e_1_3_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/99583.99623"},{"key":"e_1_3_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158154"},{"key":"e_1_3_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-47958-3_15"},{"key":"e_1_3_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411286.1411288"},{"key":"e_1_3_1_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/3271463"},{"key":"e_1_3_1_40_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.153.8"},{"key":"e_1_3_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73564"},{"key":"e_1_3_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3607846"},{"key":"e_1_3_1_43_1","volume-title":"Compiling with Types. Ph. D. Dissertation. School of Computer Science","author":"Morrisett Greg","year":"1995","unstructured":"Greg Morrisett. 1995. Compiling with Types. Ph. D. Dissertation. School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213."},{"key":"e_1_3_1_44_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9942(199901\/03)5:1<35::AID-TAPO4>3.0.CO;2-4"},{"key":"e_1_3_1_45_1","volume-title":"Types for Crash Prevention. Ph. D. Dissertation. Chalmers University of Technology","author":"Pareto Lars","year":"2000","unstructured":"Lars Pareto. 2000. Types for Crash Prevention. Ph. D. Dissertation. Chalmers University of Technology, Gothenburg University, Gothenburg, Sweden."},{"key":"e_1_3_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292565"},{"key":"e_1_3_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155112"},{"key":"e_1_3_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951935"},{"key":"e_1_3_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408995"},{"key":"e_1_3_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/931853"},{"key":"e_1_3_1_51_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.02.003"},{"key":"e_1_3_1_52_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1046"},{"key":"e_1_3_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/291891.291894"},{"key":"e_1_3_1_54_1","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/5641.003.0020"},{"key":"e_1_3_1_55_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:LISP.0000029446.78563.a4"},{"key":"e_1_3_1_56_1","volume-title":"Programming with Regions in the MLKit (Revised for Version 4.7.2)","author":"Tofte Mads","year":"2022","unstructured":"Mads Tofte, Lars Birkedal, Martin Elsman, Niels Hallenberg, Tommy H\u00f8jfeld Olesen, and Peter Sestoft. 2022. Programming with Regions in the MLKit (Revised for Version 4.7.2). Technical Report. IT University of Copenhagen, Denmark."},{"key":"e_1_3_1_57_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_3_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628161"},{"key":"e_1_3_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/363911.363923"},{"key":"e_1_3_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3547646"},{"key":"e_1_3_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371115"},{"key":"e_1_3_1_62_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632921","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3632921","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T16:06:08Z","timestamp":1751645168000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3632921"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,1,2]]},"references-count":61,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2024,1,2]]}},"alternative-id":["10.1145\/3632921"],"URL":"https:\/\/doi.org\/10.1145\/3632921","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,1,2]]},"assertion":[{"value":"2024-01-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}