{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:14:19Z","timestamp":1750306459252,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":16,"publisher":"ACM","license":[{"start":{"date-parts":[[2016,1,11]],"date-time":"2016-01-11T00:00:00Z","timestamp":1452470400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2016,1,11]]},"DOI":"10.1145\/2847538.2847546","type":"proceedings-article","created":{"date-parts":[[2016,1,7]],"date-time":"2016-01-07T14:05:00Z","timestamp":1452175500000},"page":"85-96","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Staging generic programming"],"prefix":"10.1145","author":[{"given":"Jeremy","family":"Yallop","sequence":"first","affiliation":[{"name":"University of Cambridge, UK"}]}],"member":"320","published-online":{"date-parts":[[2016,1,11]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/236114.236119"},{"volume-title":"OCaml Users and Developers Workshop 2015","year":"2015","author":"Dolan S.","key":"e_1_3_2_1_2_1"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2430532.2364508"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"crossref","unstructured":"J.\n       \n      Gibbons\n    .\n      \n  \n   \n  Datatype-generic programming. In R. Backhouse J. Gibbons R. Hinze and J. Jeuring editors Spring School on Datatype-Generic Programming volume \n  4719\n   of \n  Lecture Notes in Computer Science\n  . \n  Springer-Verlag 2007\n  .   J. Gibbons. Datatype-generic programming. In R. Backhouse J. Gibbons R. Hinze and J. Jeuring editors Spring School on Datatype-Generic Programming volume 4719 of Lecture Notes in Computer Science. Springer-Verlag 2007.","DOI":"10.1007\/978-3-540-76786-2_1"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/11783596_13"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01019005"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000256"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2012.02.025"},{"key":"e_1_3_2_1_9_1","unstructured":"O.\n       \n      Kiselyov\n    .\n      \n  \n   \n  The design and implementation of BER MetaOCaml. In M. Codish and E. Sumii editors Functional and Logic Programming volume \n  8475\n   of \n  Lecture Notes in Computer Science pages 86\u2013\n  102\n  . Springer International Publishing 2014. ISBN 978-3-319-07150-3. R. L\u00e4mmel and S. P. Jones. Scrap your boilerplate: A practical design pattern for generic programming. In Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation TLDI \u201903 pages 26\u201337 New York NY USA 2003.  O. Kiselyov. The design and implementation of BER MetaOCaml. In M. Codish and E. Sumii editors Functional and Logic Programming volume 8475 of Lecture Notes in Computer Science pages 86\u2013102. Springer International Publishing 2014. ISBN 978-3-319-07150-3. R. L\u00e4mmel and S. P. Jones. Scrap your boilerplate: A practical design pattern for generic programming. In Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation TLDI \u201903 pages 26\u201337 New York NY USA 2003."},{"key":"e_1_3_2_1_10_1","unstructured":"S. Mechtaev. Eliminating boilerplate code in Objective Caml programs. System Programming 6(1) 2011. In Russian. K. Nielsen and M. H. Srensen. Call-by-name CPS-translation as a bindingtime improvement. In STATIC ANALYSIS NUMBER 983 IN LECTURE NOTES IN COMPUTER SCIENCE pages 296\u2013313. Springer-Verlag 1995.   S. Mechtaev. Eliminating boilerplate code in Objective Caml programs. System Programming 6(1) 2011. In Russian. K. Nielsen and M. H. Srensen. Call-by-name CPS-translation as a bindingtime improvement. In STATIC ANALYSIS NUMBER 983 IN LECTURE NOTES IN COMPUTER SCIENCE pages 296\u2013313. Springer-Verlag 1995."},{"key":"e_1_3_2_1_11_1","unstructured":"B. C. d. S. Oliveira R. Hinze and A. Loeh. Extensible and modular generics for the masses. In H. Nilsson editor Trends in Functional Programming. 2007.  B. C. d. S. Oliveira R. Hinze and A. Loeh. Extensible and modular generics for the masses. In H. Nilsson editor Trends in Functional Programming. 2007."},{"key":"e_1_3_2_1_12_1","unstructured":"The GHC Team. The Glorious Glasgow Haskell Compilation System User\u2019s Guide 7.10.2 edition July 2015.  The GHC Team. The Glorious Glasgow Haskell Compilation System User\u2019s Guide 7.10.2 edition July 2015."},{"volume-title":"Indiana University Computer Science","year":"2004","author":"Veldhuizen T. L.","key":"e_1_3_2_1_13_1"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.198.2"},{"volume-title":"OCaml Users and Developers Workshop 2015","year":"2015","author":"Yallop J.","key":"e_1_3_2_1_15_1"},{"key":"e_1_3_2_1_16_1","unstructured":"A. Installation Instructions The staged SYB library is written using a fork of the OCaml distribution that combines the ongoing work on BER MetaOCaml (Kiselyov 2014) and modular implicits (White etal 2015) in a single compiler. OPAM users can install the compiler by running the following command: opam switch 4.02.1+modular-implicits-ber The staged SYB library implementation may be installed by running the following command: opam pin add metaocaml-syb \\ https:\/\/github.com\/yallop\/metaocaml-syb The code is available to browse and download at the same URL.  A. Installation Instructions The staged SYB library is written using a fork of the OCaml distribution that combines the ongoing work on BER MetaOCaml (Kiselyov 2014) and modular implicits (White et al. 2015) in a single compiler. OPAM users can install the compiler by running the following command: opam switch 4.02.1+modular-implicits-ber The staged SYB library implementation may be installed by running the following command: opam pin add metaocaml-syb \\ https:\/\/github.com\/yallop\/metaocaml-syb The code is available to browse and download at the same URL."}],"event":{"name":"POPL '16: The 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGACT ACM Special Interest Group on Algorithms and Computation Theory"],"location":"St. Petersburg FL USA","acronym":"POPL '16"},"container-title":["Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2847538.2847546","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2847538.2847546","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:43:27Z","timestamp":1750225407000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2847538.2847546"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,1,11]]},"references-count":16,"alternative-id":["10.1145\/2847538.2847546","10.1145\/2847538"],"URL":"https:\/\/doi.org\/10.1145\/2847538.2847546","relation":{},"subject":[],"published":{"date-parts":[[2016,1,11]]},"assertion":[{"value":"2016-01-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}