{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T00:48:20Z","timestamp":1775868500423,"version":"3.50.1"},"reference-count":33,"publisher":"Cambridge University Press (CUP)","issue":"5","license":[{"start":{"date-parts":[[2013,10,14]],"date-time":"2013-10-14T00:00:00Z","timestamp":1381708800000},"content-version":"unspecified","delay-in-days":43,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2013,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Matsuda <jats:italic>et al<\/jats:italic>. (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. &amp; Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In <jats:italic>Proceedings of the International Conference on Functional Programming<\/jats:italic>. ACM Press, pp. 47\u201358) and Voigtl\u00e4nder (Voigtl\u00e4nder, J. (2009) Bidirectionalization for free! In <jats:italic>Proceedings of Principles of Programming Languages<\/jats:italic>. ACM Press, pp. 165\u2013176) have introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtl\u00e4nder, J., Hu, Z., Matsuda, K. &amp; Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In <jats:italic>Proceedings of the International Conference on Functional Programming<\/jats:italic>. ACM Press, pp. 181\u2013192). Here we carry that idea further, reworking the technique of Voigtl\u00e4nder such that <jats:italic>any<\/jats:italic> shape bidirectionalizer (based on the work of Matsuda <jats:italic>et al<\/jats:italic>. (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in.<\/jats:p>","DOI":"10.1017\/s0956796813000130","type":"journal-article","created":{"date-parts":[[2013,10,14]],"date-time":"2013-10-14T13:31:42Z","timestamp":1381757502000},"page":"515-551","source":"Crossref","is-referenced-by-count":14,"title":["Enhancing semantic bidirectionalization via shape bidirectionalizer plug-ins"],"prefix":"10.1017","volume":"23","author":[{"given":"JANIS","family":"VOIGTL\u00c4NDER","sequence":"first","affiliation":[]},{"given":"ZHENJIANG","family":"HU","sequence":"additional","affiliation":[]},{"given":"KAZUTAKA","family":"MATSUDA","sequence":"additional","affiliation":[]},{"given":"MENG","family":"WANG","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2013,10,14]]},"reference":[{"key":"S0956796813000130_ref19","first-page":"297","volume-title":"Proceedings of Principles and Practice of Declarative Programming","author":"Matsuda","year":"2013"},{"key":"S0956796813000130_ref25","first-page":"11","article-title":"Fundamental Concepts in Programming Languages","volume":"13","author":"Strachey","year":"2000","journal-title":"Lecture notes for a course at the International Summer School in Computer Programming, 1967. Reprint appeared in Higher-Order Symb. Comput."},{"key":"S0956796813000130_ref6","doi-asserted-by":"publisher","DOI":"10.1145\/1232420.1232424"},{"key":"S0956796813000130_ref16","doi-asserted-by":"publisher","DOI":"10.1145\/27629.214296"},{"key":"S0956796813000130_ref14","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-008-9025-5"},{"key":"S0956796813000130_ref15","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(95)00015-1"},{"key":"S0956796813000130_ref24","first-page":"513","volume-title":"Proceedings of Information Processing","author":"Reynolds","year":"1983"},{"key":"S0956796813000130_ref13","first-page":"205","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Hidaka","year":"2010"},{"key":"S0956796813000130_ref12","doi-asserted-by":"publisher","DOI":"10.1145\/49346.50068"},{"key":"S0956796813000130_ref3","first-page":"407","volume-title":"Proceedings of Principles of Programming Languages","author":"Bohannon","year":"2008"},{"key":"S0956796813000130_ref2","doi-asserted-by":"publisher","DOI":"10.1145\/319628.319634"},{"key":"S0956796813000130_ref5","first-page":"260","volume-title":"Proceedings of the International Conference on Model Transformation","author":"Czarnecki","year":"2009"},{"key":"S0956796813000130_ref32","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2012.07.014"},{"key":"S0956796813000130_ref1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-36576-1_2"},{"key":"S0956796813000130_ref8","first-page":"383","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Foster","year":"2008"},{"key":"S0956796813000130_ref4","first-page":"338","volume-title":"Proceedings of Principles of Database Systems","author":"Bohannon","year":"2006"},{"key":"S0956796813000130_ref22","first-page":"1","volume-title":"Proceedings of Informatica 77","author":"Pettorossi","year":"1977"},{"key":"S0956796813000130_ref11","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlap.2006.11.001"},{"key":"S0956796813000130_ref7","first-page":"1","volume-title":"Revised Lectures of Spring School on Generic and Indexed Programming 2010","author":"Foster","year":"2012"},{"key":"S0956796813000130_ref21","article-title":"Delta lenses over inductive types","volume":"49","author":"Pacheco","year":"2012","journal-title":"Electron. Commun. Eur. Assoc. Softw. Sci. Technol."},{"key":"S0956796813000130_ref18","first-page":"56","article-title":"Bidirectionalizing programs with duplication through complementary function derivation.","volume":"26","author":"Matsuda","year":"2009","journal-title":"Comput. Softw."},{"key":"S0956796813000130_ref9","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796809007291"},{"key":"S0956796813000130_ref10","doi-asserted-by":"publisher","DOI":"10.1007\/10720327_17"},{"key":"S0956796813000130_ref23","volume-title":"Haskell 98 Language and Libraries: The Revised Report","author":"Peyton Jones","year":"2003"},{"key":"S0956796813000130_ref26","first-page":"165","volume-title":"Proceedings of Principles of Programming Languages","author":"Voigtl\u00e4nder","year":"2009"},{"key":"S0956796813000130_ref27","first-page":"39","volume-title":"Proceedings of Partial Evaluation and Program Manipulation","author":"Voigtl\u00e4nder","year":"2012"},{"key":"S0956796813000130_ref29","first-page":"347","volume-title":"Proceedings of Functional Programming Languages and Computer Architecture","author":"Wadler","year":"1989"},{"key":"S0956796813000130_ref30","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(90)90147-A"},{"key":"S0956796813000130_ref28","first-page":"181","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Voigtl\u00e4nder","year":"2010"},{"key":"S0956796813000130_ref17","first-page":"47","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Matsuda","year":"2007"},{"key":"S0956796813000130_ref31","first-page":"1","volume-title":"Proceedings of Principles of Programming Languages","author":"Wadler","year":"1992"},{"key":"S0956796813000130_ref33","first-page":"392","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Wang","year":"2011"},{"key":"S0956796813000130_ref20","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13321-3_19"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796813000130","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,23]],"date-time":"2019-04-23T19:55:18Z","timestamp":1556049318000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796813000130\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,9]]},"references-count":33,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2013,9]]}},"alternative-id":["S0956796813000130"],"URL":"https:\/\/doi.org\/10.1017\/s0956796813000130","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,9]]}}}