{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,17]],"date-time":"2026-08-17T21:29:40Z","timestamp":1787002180631,"version":"build-2736575974"},"reference-count":103,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2026,8,17]],"date-time":"2026-08-17T00:00:00Z","timestamp":1786924800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2026,8,17]]},"abstract":"<jats:p>Multi-stage programming lets programmers write meta-programs that generate efficient code. Staging is typically realized either as a language primitive with quotations and splices (e.g., MetaML and its descendants), or as a library embedded in a host language (e.g., Lightweight Modular Staging). Unlike quotation-based approaches, practical library-based systems combine staged evaluation with automatic let-insertion to preserve evaluation order, along with optimizations that improve residual code. Despite their popularity and practical importance, this combination has received little semantic treatment, making it difficult to reason about correctness or to compare systematically with other staging paradigms.<\/jats:p>\n                  <jats:p>Using functional programming techniques, this pearl illuminates the operational aspects of staged evaluation with automatic let-insertion and optimizations as found in library-based staging systems. For a core two-stage language, we develop a series of definitional interpreters that concisely describe staged evaluation generating optimized, let-inserted residual programs. The interpreters are written in the extended continuation-passing style, where two continuations naturally account for let-insertion. With minor refactoring, we showcase a suite of optimizations, ranging from simple constant propagation\/folding, common subexpression elimination, and dead-code elimination to more involved optimizations such as beta-inlining, partially-static data, and code motion. Each optimization is presented as a small, modular extension integrated into staged evaluation, requiring neither additional effort from the meta-programmer, nor complex post-hoc compiler infrastructure.<\/jats:p>","DOI":"10.1145\/3828676","type":"journal-article","created":{"date-parts":[[2026,8,17]],"date-time":"2026-08-17T20:23:46Z","timestamp":1786998226000},"page":"100-130","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Let It Be Optimized: Building Multi-stage Evaluators with Let-Insertion and Optimizations in Small Pieces (Functional Pearl)"],"prefix":"10.1145","volume":"10","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3150-2033","authenticated-orcid":false,"given":"Guannan","family":"Wei","sequence":"first","affiliation":[{"name":"Tufts University, Medford, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-8915-3753","authenticated-orcid":false,"given":"Jun","family":"Tan","sequence":"additional","affiliation":[{"name":"Independent, Shanghai, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-6280-1692","authenticated-orcid":false,"given":"Dinghong","family":"Zhong","sequence":"additional","affiliation":[{"name":"Tufts University, Medford, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,8,17]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/888251.888254"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ipl.2004.02.012"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-34175-6_12"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158140"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796897002839"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-49254-2_4"},{"key":"e_1_2_1_7_1","volume-title":"An Operational Foundation for Delimited Continuations in the CPS Hierarchy. Log. Methods Comput. Sci. 1","author":"Biernacka Ma\u0142gorzata","year":"2005","unstructured":"Ma\u0142gorzata Biernacka, Dariusz Biernacki, and Olivier Danvy. 2005. An Operational Foundation for Delimited Continuations in the CPS Hierarchy. Log. Methods Comput. Sci. 1 (2005). https:\/\/api.semanticscholar.org\/CorpusID:5693133"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3689717"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622813"},{"key":"e_1_2_1_10_1","volume-title":"Amarasinghe","author":"Brahmakshatriya Ajay","year":"2021","unstructured":"Ajay Brahmakshatriya and Saman P. Amarasinghe. 2021. BuildIt: A Type-Based Multi-stage Programming Framework for Code Generation in C++. In CGO. IEEE, 39\u201351."},{"key":"e_1_2_1_11_1","volume-title":"Proc. ACM Program. Lang. 8, PLDI","author":"Brahmakshatriya Ajay","year":"2024","unstructured":"Ajay Brahmakshatriya, Christopher Rinard, Manya Ghobadi, and Saman P. Amarasinghe. 2024. NetBlocks: Staging Layouts for High-Performance Custom Host Network Stacks. Proc. ACM Program. Lang. 8, PLDI (2024), 467\u2013491."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45022-X_4"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-39815-8_4"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796809007205"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3747518"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/202529.202534"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_24"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-61580-6_5"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237784"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237784"},{"key":"e_1_2_1_21_1","unstructured":"Olivier Danvy. 2006. An analytical approach to program as data objects."},{"key":"e_1_2_1_22_1","doi-asserted-by":"crossref","unstructured":"Olivier Danvy and Andrzej Filinski. 1990. Abstracting Control. In LISP and Functional Programming. ACM 151\u2013160.","DOI":"10.1145\/91556.91622"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500001535"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/236114.236119"},{"key":"e_1_2_1_25_1","volume-title":"Nielsen","author":"Danvy Olivier","year":"2001","unstructured":"Olivier Danvy and Lasse R. Nielsen. 2001. Defunctionalization at Work. In PPDP. ACM, 162\u2013174."},{"key":"e_1_2_1_26_1","volume-title":"A Modal Analysis of Staged Computation","author":"Davies Rowan","unstructured":"Rowan Davies and Frank Pfenning. 1996. A Modal Analysis of Staged Computation. In POPL. ACM Press, 258\u2013270."},{"key":"e_1_2_1_27_1","volume-title":"Universit at T ubingen","author":"Dussart Dirk","year":"1997","unstructured":"Dirk Dussart and Peter Thiemann. 1997. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universit at T ubingen (1997)."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796802004574"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-73589-2_14"},{"key":"e_1_2_1_30_1","volume-title":"Robert Bruce Findler, and Matthew Flatt","author":"Felleisen Matthias","year":"2009","unstructured":"Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt. 2009. Semantics Engineering with PLT Redex. MIT Press."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.178047"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45413-6_15"},{"key":"e_1_2_1_33_1","doi-asserted-by":"crossref","unstructured":"Cormac Flanagan Amr Sabry Bruce F. Duba and Matthias Felleisen. 1993. The Essence of Compiling with Continuations. In PLDI. ACM 237\u2013247.","DOI":"10.1145\/155090.155113"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110257"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"Rui Ge and Ronald Garcia. 2017. Refining semantics for multi-stage programming. In GPCE. ACM 2\u201314.","DOI":"10.1145\/3136040.3136047"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-07151-0_7"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.178053"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129597002405"},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"Christian Hofer Klaus Ostermann Tillmann Rendel and Adriaan Moors. 2008. Polymorphic embedding of DSLs. In GPCE. ACM 137\u2013148.","DOI":"10.1145\/1449913.1449935"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_18"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000253"},{"key":"e_1_2_1_42_1","volume-title":"Proc. ACM Program. Lang. 6, POPL","author":"Jang Junyoung","year":"2022","unstructured":"Junyoung Jang, Samuel G\u00e9lineau, Stefan Monnier, and Brigitte Pientka. 2022. M\u0153bius: metaprogramming using contextual types: the stage where system f can pattern match on itself. Proc. ACM Program. Lang. 6, POPL (2022), 1\u201327."},{"key":"e_1_2_1_43_1","volume-title":"Partial evaluation and automatic program generation","author":"Jones Neil D.","unstructured":"Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. 1993. Partial evaluation and automatic program generation. Prentice Hall."},{"key":"e_1_2_1_44_1","volume-title":"Scherlis","author":"J\u00f8rring Ulrik","year":"1986","unstructured":"Ulrik J\u00f8rring and William L. Scherlis. 1986. Compilers and Staging Transformations. In POPL. ACM Press, 86\u201396."},{"key":"e_1_2_1_45_1","doi-asserted-by":"crossref","unstructured":"Vojin Jovanovic Amir Shaikhha Sandro Stucki Vladimir Nikolaev Christoph Koch and Martin Odersky. 2014. Yinyang: concealing the deep embedding of DSLs. In GPCE. ACM 73\u201382.","DOI":"10.1145\/2658761.2658771"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000256"},{"key":"e_1_2_1_47_1","doi-asserted-by":"crossref","unstructured":"Andrew Kennedy. 2007. Compiling with continuations continued. In ICFP. ACM 177\u2013190.","DOI":"10.1145\/1291151.1291179"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2012.02.025"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1561\/2500000038"},{"key":"e_1_2_1_50_1","volume-title":"MetaOCaml Theory and Implementation. CoRR abs\/2309.08207","author":"Kiselyov Oleg","year":"2023","unstructured":"Oleg Kiselyov. 2023. MetaOCaml Theory and Implementation. CoRR abs\/2309.08207 (2023)."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2025.103397"},{"key":"e_1_2_1_52_1","volume-title":"Lights or Magic. CoRR abs\/2201.00495","author":"Kiselyov Oleg","year":"2022","unstructured":"Oleg Kiselyov and Jeremy Yallop. 2022. let (rec) insertion without Effects, Lights or Magic. CoRR abs\/2201.00495 (2022)."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192379"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3547641"},{"key":"e_1_2_1_55_1","volume-title":"Lawall and Peter Thiemann","author":"Julia","year":"1997","unstructured":"Julia L. Lawall and Peter Thiemann. 1997. Sound Specialization in the Presence of Computational Effects. In TACS (Lecture Notes in Computer Science, Vol. 1281). Springer, 165\u2013190."},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/3776681"},{"key":"e_1_2_1_57_1","doi-asserted-by":"crossref","unstructured":"Daan Leijen and Erik Meijer. 1999. Domain specific embedded compilers. In DSL. ACM 109\u2013122.","DOI":"10.1145\/331960.331977"},{"key":"e_1_2_1_58_1","volume-title":"Lecture Notes in Computer Science","volume":"9600","author":"Lindley Sam","year":"2016","unstructured":"Sam Lindley, Conor McBride, Philip W. Trinder, and Donald Sannella (Eds.). 2016. A List of Successes That Can Change the World - Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday. Lecture Notes in Computer Science, Vol. 9600. Springer."},{"key":"e_1_2_1_59_1","doi-asserted-by":"crossref","unstructured":"Geoffrey Mainland. 2007. Why it\u2019s nice to be quoted: quasiquoting for haskell. In Haskell. ACM 73\u201382.","DOI":"10.1145\/1291201.1291211"},{"key":"e_1_2_1_60_1","volume-title":"Wiltschko","author":"Moldovan Dan","year":"2019","unstructured":"Dan Moldovan, James M. Decker, Fei Wang, Andrew A. Johnson, Brian K. Lee, Zachary Nado, D. Sculley, Tiark Rompf, and Alexander B. Wiltschko. 2019. AutoGraph: Imperative-style Coding with Graph-based Performance. In SysML. mlsys.org."},{"key":"e_1_2_1_61_1","doi-asserted-by":"crossref","unstructured":"Adriaan Moors Tiark Rompf Philipp Haller and Martin Odersky. 2012. Scala-virtualized. In PEPM. ACM 117\u2013120.","DOI":"10.1145\/2103746.2103769"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/322186.322198"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.5555\/130665"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158130"},{"key":"e_1_2_1_65_1","volume-title":"Koch","author":"Parreaux Lionel","year":"2017","unstructured":"Lionel Parreaux, Amir Shaikhha, and Christoph E. Koch. 2017. Quoted staged rewriting: a practical approach to library-defined optimizations. In GPCE. ACM, 131\u2013145."},{"key":"e_1_2_1_66_1","volume-title":"Proc. ACM Program. Lang. 2, POPL","author":"Parreaux Lionel","year":"2018","unstructured":"Lionel Parreaux, Antoine Voizard, Amir Shaikhha, and Christoph E. Koch. 2018. Unifying analytic and staticallytyped quasiquotes. Proc. ACM Program. Lang. 2, POPL (2018), 13:1\u201313:33."},{"key":"e_1_2_1_67_1","doi-asserted-by":"crossref","unstructured":"Frank Pfenning and Conal Elliott. 1988. Higher-Order Abstract Syntax. In PLDI. ACM 199\u2013208.","DOI":"10.1145\/53990.54010"},{"key":"e_1_2_1_68_1","volume-title":"Types and programming languages","author":"Pierce Benjamin C.","unstructured":"Benjamin C. Pierce. 2002. Types and programming languages. MIT Press."},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/800194.805852"},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-30936-1_17"},{"key":"e_1_2_1_71_1","doi-asserted-by":"crossref","unstructured":"Tiark Rompf. 2016. Reflections on LMS: exploring front-end alternatives. In SCALA@SPLASH. ACM 41\u201350.","DOI":"10.1145\/2998392.2998399"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-013-9096-9"},{"key":"e_1_2_1_73_1","volume-title":"SNAPL (LIPIcs","volume":"261","author":"Rompf Tiark","year":"2015","unstructured":"Tiark Rompf, Kevin J. Brown, HyoukJoong Lee, Arvind K. Sujeeth, Manohar Jonnalagedda, Nada Amin, Georg Ofenbeck, Alen Stojanov, Yannis Klonatos, Mohammad Dashti, Christoph Koch, Markus P\u00fcschel, and Kunle Olukotun. 2015. Go Meta! A Case for Generative Programming and DSLs in Performance Critical Systems. In SNAPL (LIPIcs, Vol. 32). Schloss Dagstuhl - Leibniz-Zentrum f\u00fcr Informatik, 238\u2013261."},{"key":"e_1_2_1_74_1","doi-asserted-by":"crossref","unstructured":"Tiark Rompf and Martin Odersky. 2010. Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. In GPCE. ACM 127\u2013136.","DOI":"10.1145\/1868294.1868314"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/2184319.2184345"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/267959.269968"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345125"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1145\/636517.636528"},{"key":"e_1_2_1_79_1","doi-asserted-by":"crossref","unstructured":"K. C. Sivaramakrishnan Stephen Dolan Leo White Tom Kelly Sadiq Jaffer and Anil Madhavapeddy. 2021. Retrofitting effect handlers onto OCaml. In PLDI. ACM 206\u2013221.","DOI":"10.1145\/3453483.3454039"},{"key":"e_1_2_1_80_1","doi-asserted-by":"crossref","unstructured":"Nicolas Stucki Aggelos Biboudis and Martin Odersky. 2018. A practical unification of multi-stage programming and macros. In GPCE. ACM 14\u201327.","DOI":"10.1145\/3278122.3278139"},{"key":"e_1_2_1_81_1","volume-title":"Jonathan Immanuel Brachth\u00e4user, and Martin Odersky","author":"Stucki Nicolas","year":"2021","unstructured":"Nicolas Stucki, Jonathan Immanuel Brachth\u00e4user, and Martin Odersky. 2021. Multi-stage programming with generative and analytical macros. In GPCE. ACM, 110\u2013122."},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.1145\/2584665"},{"key":"e_1_2_1_83_1","first-page":"2","article-title":"A Hybrid Approach to Online and Offline Partial Evaluation","volume":"14","author":"Sumii Eijiro","year":"2001","unstructured":"Eijiro Sumii and Naoki Kobayashi. 2001. A Hybrid Approach to Online and Offline Partial Evaluation. High. Order Symb. Comput. 14, 2-3 (2001), 101\u2013142.","journal-title":"High. Order Symb. Comput."},{"key":"e_1_2_1_84_1","volume-title":"Multi-stage programming: its theory and applications","author":"Taha Walid","unstructured":"Walid Taha. 1999. Multi-stage programming: its theory and applications. Oregon Graduate Institute of Science and Technology."},{"key":"e_1_2_1_85_1","doi-asserted-by":"crossref","unstructured":"Walid Taha. 2000. A Sound Reduction Semantics for Untyped CBN Multi-stage Computation. Or the Theory of MetaML is Non-trivial (Extended Abstract). In PEPM. ACM 34\u201343.","DOI":"10.1145\/328690.328697"},{"key":"e_1_2_1_86_1","doi-asserted-by":"crossref","unstructured":"Walid Taha and Michael Florentin Nielsen. 2003. Environment classifiers. In POPL. ACM 26\u201337.","DOI":"10.1145\/604131.604134"},{"key":"e_1_2_1_87_1","doi-asserted-by":"crossref","unstructured":"Walid Taha and Tim Sheard. 1997. Multi-Stage Programming with Explicit Annotations. In PEPM. ACM 203\u2013217.","DOI":"10.1145\/258993.259019"},{"key":"e_1_2_1_88_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00053-0"},{"key":"e_1_2_1_89_1","volume-title":"Revisited. In SIGMOD Conference. ACM, 307\u2013322","author":"Tahboub Ruby Y.","year":"2018","unstructured":"Ruby Y. Tahboub, Gr\u00e9gory M. Essertel, and Tiark Rompf. 2018. How to Architect a Query Compiler, Revisited. In SIGMOD Conference. ACM, 307\u2013322."},{"key":"e_1_2_1_90_1","unstructured":"Jun Tan and Guannan Wei. 2026. When Do Staging Annotations Preserve Semantics? Mechanizing Typed Semantics-Preserving Multi-Stage Programming with Let-Insertion (Extended Version). arXiv:2606.30854 [cs.PL] https:\/\/arxiv.org\/abs\/2606.30854"},{"key":"e_1_2_1_91_1","doi-asserted-by":"crossref","unstructured":"Ross Tate Michael Stepp Zachary Tatlock and Sorin Lerner. 2009. Equality saturation: a new approach to optimization. In POPL. ACM 264\u2013276.","DOI":"10.1145\/1480881.1480915"},{"key":"e_1_2_1_92_1","doi-asserted-by":"crossref","unstructured":"Peter Thiemann. 2013. Partially static operations. In PEPM. ACM 75\u201376.","DOI":"10.1145\/2426890.2426906"},{"key":"e_1_2_1_93_1","doi-asserted-by":"crossref","unstructured":"Marcos Viera and Alberto Pardo. 2006. A multi-stage language with intensional analysis. In GPCE. ACM 11\u201320.","DOI":"10.1145\/1173706.1173709"},{"key":"e_1_2_1_94_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341700"},{"key":"e_1_2_1_95_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428232"},{"key":"e_1_2_1_96_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00116"},{"key":"e_1_2_1_97_1","doi-asserted-by":"publisher","unstructured":"Guannan Wei Jun Tan and Dinghong Zhong. 2026. Artifact for Let It Be Optimized: Building Multi-Stage Evaluators with Let-Insertion and Optimizations in Small Pieces (Functional Pearl). doi:10.5281\/zenodo.20534869 10.5281\/zenodo.20534869","DOI":"10.5281\/zenodo.20534869"},{"key":"e_1_2_1_98_1","volume-title":"Mint: Java multi-stage programming using weak separability.","author":"Westbrook Edwin M.","year":"2010","unstructured":"Edwin M. Westbrook, Mathias Ricken, Jun Inoue, Yilong Yao, Tamer Abdelatif, and Walid Taha. 2010. Mint: Java multi-stage programming using weak separability. (2010), 400\u2013411."},{"key":"e_1_2_1_99_1","doi-asserted-by":"publisher","DOI":"10.1145\/3434304"},{"key":"e_1_2_1_100_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498723"},{"key":"e_1_2_1_101_1","doi-asserted-by":"publisher","DOI":"10.1145\/3607851"},{"key":"e_1_2_1_102_1","doi-asserted-by":"crossref","unstructured":"Jeremy Yallop and Oleg Kiselyov. 2019. Generating mutually recursive definitions. In PEPM@POPL. ACM 75\u201381.","DOI":"10.1145\/3294032.3294078"},{"key":"e_1_2_1_103_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236795"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3828676","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,17]],"date-time":"2026-08-17T20:24:28Z","timestamp":1786998268000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3828676"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,8,17]]},"references-count":103,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2026,8,17]]}},"alternative-id":["10.1145\/3828676"],"URL":"https:\/\/doi.org\/10.1145\/3828676","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,8,17]]},"assertion":[{"value":"2026-02-19","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-05-13","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-08-17","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}