{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,28]],"date-time":"2025-11-28T20:23:51Z","timestamp":1764361431894,"version":"3.46.0"},"publisher-location":"Cham","reference-count":30,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031997501"},{"type":"electronic","value":"9783031997518"}],"license":[{"start":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T00:00:00Z","timestamp":1759276800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T00:00:00Z","timestamp":1759276800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026]]},"DOI":"10.1007\/978-3-031-99751-8_10","type":"book-chapter","created":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T01:23:51Z","timestamp":1759281831000},"page":"205-258","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["CoScheme: Compositional Copatterns in\u00a0Scheme"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0165-9387","authenticated-orcid":false,"given":"Paul","family":"Downen","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6014-6189","authenticated-orcid":false,"given":"Adriano","family":"Corbelino II","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,10,1]]},"reference":[{"key":"10_CR1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4419-8598-9","volume-title":"A Theory of Objects","author":"M Abadi","year":"1996","unstructured":"Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996). https:\/\/doi.org\/10.1007\/978-1-4419-8598-9"},{"key":"10_CR2","doi-asserted-by":"publisher","unstructured":"Abel, A., Pientka, B., Thibodeau, D., Setzer, A.: Copatterns: programming infinite structures by observations. In: Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL\u00a02013, pp. 27\u201338. ACM, New York (2013). https:\/\/doi.org\/10.1145\/2429069.2429075","DOI":"10.1145\/2429069.2429075"},{"key":"10_CR3","doi-asserted-by":"publisher","unstructured":"Bracha, G., Cook, W.R.: Mixin-based inheritance. In: Conference on Object-Oriented Programming Systems, Languages, and Applications \/ European Conference on Object-Oriented Programming, OOPSLA\/ECOOP 1990, Ottawa, Canada, 21\u201325 October 1990, Proceedings, pp. 303\u2013311. ACM (1990). https:\/\/doi.org\/10.1145\/97945.97982","DOI":"10.1145\/97945.97982"},{"key":"10_CR4","unstructured":"Brown, D.S., Cook, W.R.: Function inheritance: Monadic memoization mixins (2009)"},{"key":"10_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1007\/BFb0053029","volume-title":"ECOOP \u201992 European Conference on Object-Oriented Programming","author":"C Chambers","year":"1992","unstructured":"Chambers, C.: Object-oriented multi-methods in Cecil. In: Madsen, O.L. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 33\u201356. Springer, Heidelberg (1992). https:\/\/doi.org\/10.1007\/BFb0053029"},{"key":"10_CR6","doi-asserted-by":"publisher","unstructured":"Cockx, J., Abel, A.: Elaborating dependent (co)pattern matching. Proceedings of the ACM on Programming Languages 2(ICFP) (2018). https:\/\/doi.org\/10.1145\/3236770","DOI":"10.1145\/3236770"},{"issue":"2","key":"10_CR7","doi-asserted-by":"publisher","first-page":"329","DOI":"10.1006\/INCO.1994.1090","volume":"114","author":"WR Cook","year":"1994","unstructured":"Cook, W.R., Palsberg, J.: A denotational semantics of inheritance and its correctness. Inf. Comput. 114(2), 329\u2013350 (1994). https:\/\/doi.org\/10.1006\/INCO.1994.1090","journal-title":"Inf. Comput."},{"key":"10_CR8","doi-asserted-by":"publisher","unstructured":"Danvy, O., Filinski, A.: Abstracting control. In: Proceedings of the 1990 ACM Conference on LISP and Functional Programming, LFP 1990, Nice, France, 27\u201329 June 1990, pp. 151\u2013160. ACM (1990). https:\/\/doi.org\/10.1145\/91556.91622","DOI":"10.1145\/91556.91622"},{"key":"10_CR9","doi-asserted-by":"publisher","unstructured":"Downen, P., Ariola, Z.M.: Compositional semantics for composable continuations: From abortive to delimited control. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming, ICFP\u00a02014, pp. 109\u2013122. ACM, New York (2014). https:\/\/doi.org\/10.1145\/2628136.2628147","DOI":"10.1145\/2628136.2628147"},{"issue":"3","key":"10_CR10","doi-asserted-by":"publisher","first-page":"62","DOI":"10.1145\/3127323","volume":"61","author":"M Felleisen","year":"2018","unstructured":"Felleisen, M., et al.: A programmable programming language. Commun. ACM 61(3), 62\u201371 (2018). https:\/\/doi.org\/10.1145\/3127323","journal-title":"Commun. ACM"},{"key":"10_CR11","doi-asserted-by":"crossref","unstructured":"Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 171\u2013183 (1998)","DOI":"10.1145\/268946.268961"},{"key":"10_CR12","doi-asserted-by":"publisher","first-page":"28","DOI":"10.1145\/114669.114671","volume":"34","author":"R Gabriel","year":"1991","unstructured":"Gabriel, R., White, J., Bobrow, D.: CLOS: integrating object-oriented and functional programming. Commun. ACM 34, 28\u201338 (1991). https:\/\/doi.org\/10.1145\/114669.114671","journal-title":"Commun. ACM"},{"issue":"2","key":"10_CR13","doi-asserted-by":"publisher","first-page":"98","DOI":"10.1093\/comjnl\/32.2.98","volume":"32","author":"J Hughes","year":"1989","unstructured":"Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98\u2013107 (1989). https:\/\/doi.org\/10.1093\/comjnl\/32.2.98","journal-title":"Comput. J."},{"key":"10_CR14","doi-asserted-by":"publisher","unstructured":"Ingalls, D.H.H.: A simple technique for handling multiple polymorphism. In: Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications, OOPSLA\u00a01986, pp. 347\u2013349. Association for Computing Machinery, New York (1986). https:\/\/doi.org\/10.1145\/28697.28732","DOI":"10.1145\/28697.28732"},{"issue":"3","key":"10_CR15","doi-asserted-by":"publisher","first-page":"347","DOI":"10.3233\/FI-2017-1473","volume":"150","author":"JB Jeannin","year":"2017","unstructured":"Jeannin, J.B., Kozen, D., Silva, A.: CoCaml: functional programming with regular coinductive types. Fund. Inform. 150(3), 347\u2013377 (2017). https:\/\/doi.org\/10.3233\/FI-2017-1473","journal-title":"Fund. Inform."},{"key":"10_CR16","doi-asserted-by":"publisher","unstructured":"Keep, A.W., Dybvig, R.K.: A nanopass framework for commercial compiler development. In: Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, ICFP\u00a02013, pp. 343\u2013350. Association for Computing Machinery (2013). https:\/\/doi.org\/10.1145\/2500365.2500618","DOI":"10.1145\/2500365.2500618"},{"key":"10_CR17","doi-asserted-by":"crossref","unstructured":"Kim, J., Yi, K., Danvy, O.: Assessing the overhead of ML exceptions by selective CPS transformation. BRICS Rep. Ser. 5 (1998)","DOI":"10.7146\/brics.v5i15.19287"},{"key":"10_CR18","doi-asserted-by":"publisher","unstructured":"Laforgue, P., R\u00e9gis-Gianas, Y.: Copattern matching and first-class observations in OCaml, with a macro. In: Proceedings of the 19th International Symposium on Principles and Practice of Declarative Programming, Namur, Belgium, 09\u201311 October 2017, pp. 97\u2013108 (2017). https:\/\/doi.org\/10.1145\/3131851.3131869","DOI":"10.1145\/3131851.3131869"},{"key":"10_CR19","unstructured":"Lasater, C.G.: Design Patterns. Wordware Publishing, Inc. (2006)"},{"key":"10_CR20","doi-asserted-by":"publisher","unstructured":"Nielsen, L.R.: A selective CPS transformation. In: Seventeenth Conference on the Mathematical Foundations of Programming Semantics, MFPS 2001, Aarhus, Denmark, 23\u201326 May 2001. Electronic Notes in Theoretical Computer Science, vol.\u00a045, pp. 311\u2013331. Elsevier (2001). https:\/\/doi.org\/10.1016\/S1571-0661(04)80969-1","DOI":"10.1016\/S1571-0661(04)80969-1"},{"key":"10_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/978-3-642-31057-7_2","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"BCS Oliveira","year":"2012","unstructured":"Oliveira, B.C.S., Cook, W.R.: Extensibility for the masses. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 2\u201327. Springer, Heidelberg (2012). https:\/\/doi.org\/10.1007\/978-3-642-31057-7_2"},{"key":"10_CR22","doi-asserted-by":"publisher","unstructured":"Peyton\u00a0Jones, S., Reid, A., Henderson, F., Hoare, T., Marlow, S.: A semantics for imprecise exceptions. In: Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, PLDI\u00a01999, pp. 25\u201336. Association for Computing Machinery, New York (1999). https:\/\/doi.org\/10.1145\/301618.301637","DOI":"10.1145\/301618.301637"},{"key":"10_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1007\/978-3-319-08918-8_3","volume-title":"Rewriting and Typed Lambda Calculi","author":"A Setzer","year":"2014","unstructured":"Setzer, A., Abel, A., Pientka, B., Thibodeau, D.: Unnesting of copatterns. In: Dowek, G. (ed.) RTA 2014. LNCS, vol. 8560, pp. 31\u201345. Springer, Cham (2014). https:\/\/doi.org\/10.1007\/978-3-319-08918-8_3"},{"key":"10_CR24","doi-asserted-by":"publisher","unstructured":"Swierstra, W.: Data types \u00e0 la Carte. J. Funct. Program. 18(4) (2008). https:\/\/doi.org\/10.1017\/S0956796808006758","DOI":"10.1017\/S0956796808006758"},{"key":"10_CR25","unstructured":"Thibodeau, D.: Programming infinite structures using copatterns. Master\u2019s thesis. School of Computer Science, Mcgill University, Montreal (2015)"},{"key":"10_CR26","doi-asserted-by":"publisher","first-page":"141","DOI":"10.1023\/A:1020887011500","volume":"15","author":"H Thielecke","year":"2002","unstructured":"Thielecke, H.: Comparing control constructs by double-barrelled CPS. Higher-Order Symb. Comput. 15, 141\u2013160 (2002). https:\/\/doi.org\/10.1023\/A:1020887011500","journal-title":"Higher-Order Symb. Comput."},{"key":"10_CR27","doi-asserted-by":"publisher","unstructured":"Tobin-Hochstadt, S., St-Amour, V., Culpepper, R., Flatt, M., Felleisen, M.: Languages as libraries. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI\u00a02011, pp. 132\u2013141. Association for Computing Machinery, New York (2011). https:\/\/doi.org\/10.1145\/1993498.1993514","DOI":"10.1145\/1993498.1993514"},{"issue":"3","key":"10_CR28","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1145\/24697.24706","volume":"22","author":"P Wadler","year":"1987","unstructured":"Wadler, P.: A critique of Abelson and Sussman or why calculating is better than scheming. SIGPLAN Not. 22(3), 83\u201394 (1987). https:\/\/doi.org\/10.1145\/24697.24706","journal-title":"SIGPLAN Not."},{"key":"10_CR29","unstructured":"Wadler, P., et\u00a0al.: The expression problem. Posted on the Java Genericity mailing list (1998)"},{"issue":"4","key":"10_CR30","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1985342.1985343","volume":"33","author":"S Wehr","year":"2011","unstructured":"Wehr, S., Thiemann, P.: JavaGI: the interaction of type classes with interfaces and inheritance. ACM Trans. Program. Lang. Syst. 33(4), 1\u201383 (2011). https:\/\/doi.org\/10.1145\/1985342.1985343","journal-title":"ACM Trans. Program. Lang. Syst."}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-99751-8_10","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,11,28]],"date-time":"2025-11-28T20:22:11Z","timestamp":1764361331000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-99751-8_10"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,1]]},"ISBN":["9783031997501","9783031997518"],"references-count":30,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-99751-8_10","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2025,10,1]]},"assertion":[{"value":"1 October 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"The authors have no competing interests to declare that are relevant to the content of this article.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Disclosure of Interests"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Oxford","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"United Kingdom","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2025","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 January 2025","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 January 2025","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"26","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2025","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/trendsfp.github.io\/index.html","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}