{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,22]],"date-time":"2026-06-22T20:47:06Z","timestamp":1782161226296,"version":"3.54.5"},"publisher-location":"Cham","reference-count":58,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783032227225","type":"print"},{"value":"9783032227232","type":"electronic"}],"license":[{"start":{"date-parts":[[2026,1,1]],"date-time":"2026-01-01T00:00:00Z","timestamp":1767225600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2026,1,1]],"date-time":"2026-01-01T00:00:00Z","timestamp":1767225600000},"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]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    A bidirectional transformation is a pair of transformations satisfying certain well-behavedness properties: one maps source data into view data, and the other translates changes on the view back to the source. However, when multiple views share a source, an update on one view may affect the others, making it hard to maintain correspondence while preserving the user\u2019s update, especially when multiple views are changed at once. Ensuring these properties within a compositional framework is even more challenging. In this paper, we propose\n                    <jats:italic>partial-state lenses<\/jats:italic>\n                    , which allow source and view states to be partially specified to precisely represent the user\u2019s update intentions. These intentions are partially ordered, providing clear semantics for merging intentions of updates coming from multiple views and a refined notion of update preservation compatible with this merging. We formalize partial-state lenses, together with partial-specifiedness-aware well-behavedness that supports compositional reasoning and ensures update preservation. In addition, we demonstrate the utility of the proposed system through examples.\n                  <\/jats:p>","DOI":"10.1007\/978-3-032-22723-2_2","type":"book-chapter","created":{"date-parts":[[2026,4,10]],"date-time":"2026-04-10T12:02:40Z","timestamp":1775822560000},"page":"32-63","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Lenses for Partially-Specified States"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9747-4899","authenticated-orcid":false,"given":"Kazutaka","family":"Matsuda","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3845-9928","authenticated-orcid":false,"given":"Minh","family":"Nguyen","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7780-630X","authenticated-orcid":false,"given":"Meng","family":"Wang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2026,4,10]]},"reference":[{"key":"2_CR1","doi-asserted-by":"crossref","unstructured":"Abou-Saleh, F., Cheney, J., Gibbons, J., McKinna, J., Stevens, P.: Reflections on monadic lenses. In: Lindley, S., McBride, C., Trinder, P.W., Sannella, D. (eds.) 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.\u00a09600, pp. 1\u201331. Springer (2016). https:\/\/doi.org\/10.1007\/978-3-319-30936-1_1","DOI":"10.1007\/978-3-319-30936-1_1"},{"key":"2_CR2","unstructured":"Ahman, D., Uustalu, T.: Taking updates seriously. In: Eramo, R., Johnson, M. (eds.) Proceedings of the 6th International Workshop on Bidirectional Transformations co-located with The European Joint Conferences on Theory and Practice of Software, BX@ETAPS 2017, Uppsala, Sweden, April 29, 2017. CEUR Workshop Proceedings, vol.\u00a01827, pp. 59\u201373. CEUR-WS.org (2017), https:\/\/ceur-ws.org\/Vol-1827\/paper11.pdf"},{"key":"2_CR3","doi-asserted-by":"crossref","unstructured":"Almeida, P.S., Shoker, A., Baquero, C.: Delta state replicated data types. J. Parallel Distributed Comput. 111, 162\u2013173 (2018). https:\/\/doi.org\/10.1016\/j.jpdc.2017.08.003","DOI":"10.1016\/j.jpdc.2017.08.003"},{"key":"2_CR4","doi-asserted-by":"crossref","unstructured":"Bancilhon, F., Spyratos, N.: Update semantics of relational views. ACM Trans. Database Syst. 6(4), 557\u2013575 (1981). https:\/\/doi.org\/10.1145\/319628.319634","DOI":"10.1145\/319628.319634"},{"key":"2_CR5","doi-asserted-by":"crossref","unstructured":"Barbosa, D.M.J., Cretin, J., Foster, N., Greenberg, M., Pierce, B.C.: Matching lenses: alignment and view update. In: Hudak, P., Weirich, S. (eds.) Proceeding of the 15th ACM SIGPLAN international conference on Functional programming, ICFP 2010, Baltimore, Maryland, USA, September 27-29, 2010. pp. 193\u2013204. ACM (2010). https:\/\/doi.org\/10.1145\/1863543.1863572","DOI":"10.1145\/1863543.1863572"},{"key":"2_CR6","doi-asserted-by":"crossref","unstructured":"Bohannon, A., Foster, J.N., Pierce, B.C., Pilkiewicz, A., Schmitt, A.: Boomerang: resourceful lenses for string data. In: Necula, G.C., Wadler, P. (eds.) Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, San Francisco, California, USA, January 7-12, 2008. pp. 407\u2013419. ACM (2008). https:\/\/doi.org\/10.1145\/1328438.1328487","DOI":"10.1145\/1328438.1328487"},{"key":"2_CR7","doi-asserted-by":"crossref","unstructured":"Bohannon, A., Pierce, B.C., Vaughan, J.A.: Relational lenses: a language for updatable views. In: Vansummeren, S. (ed.) Proceedings of the Twenty-Fifth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, June 26-28, 2006, Chicago, Illinois, USA. pp. 338\u2013347. ACM (2006). https:\/\/doi.org\/10.1145\/1142351.1142399","DOI":"10.1145\/1142351.1142399"},{"key":"2_CR8","unstructured":"Boisseau, G.: String diagrams for optics. In: Ariola, Z.M. (ed.) 5th International Conference on Formal Structures for Computation and Deduction, FSCD 2020, June 29-July 6, 2020, Paris, France (Virtual Conference). LIPIcs, vol.\u00a0167, pp. 17:1\u201317:18. Schloss Dagstuhl - Leibniz-Zentrum f\u00fcr Informatik (2020). https:\/\/doi.org\/10.4230\/LIPIcs.FSCD.2020.17"},{"key":"2_CR9","doi-asserted-by":"crossref","unstructured":"Chin, W.: Towards an automated tupling strategy. In: Schmidt, D.A. (ed.) Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM\u201993, Copenhagen, Denmark, June 14-16, 1993. pp. 119\u2013132. ACM (1993). https:\/\/doi.org\/10.1145\/154630.154643","DOI":"10.1145\/154630.154643"},{"key":"2_CR10","doi-asserted-by":"crossref","unstructured":"Cunha, J., Fernandes, J.P., Mendes, J., Pacheco, H., Saraiva, J.: Bidirectional transformation of model-driven spreadsheets. In: Hu, Z., de\u00a0Lara, J. (eds.) Theory and Practice of Model Transformations - 5th International Conference, ICMT@TOOLS 2012, Prague, Czech Republic, May 28-29, 2012. Proceedings. Lecture Notes in Computer Science, vol.\u00a07307, pp. 105\u2013120. Springer (2012). https:\/\/doi.org\/10.1007\/978-3-642-30476-7_7","DOI":"10.1007\/978-3-642-30476-7_7"},{"key":"2_CR11","doi-asserted-by":"crossref","unstructured":"Diskin, Z., Xiong, Y., Czarnecki, K.: From state- to delta-based bidirectional model transformations: the asymmetric case. J. Object Technol. 10, 6: 1\u201325 (2011). https:\/\/doi.org\/10.5381\/jot.2011.10.1.a6","DOI":"10.5381\/jot.2011.10.1.a6"},{"key":"2_CR12","doi-asserted-by":"crossref","unstructured":"Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. In: Palsberg, J., Abadi, M. (eds.) Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12-14, 2005. pp. 233\u2013246. ACM (2005). https:\/\/doi.org\/10.1145\/1040305.1040325","DOI":"10.1145\/1040305.1040325"},{"key":"2_CR13","doi-asserted-by":"publisher","unstructured":"Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3) (2007). https:\/\/doi.org\/10.1145\/1232420.1232424","DOI":"10.1145\/1232420.1232424"},{"key":"2_CR14","doi-asserted-by":"crossref","unstructured":"Foster, J.N., Pilkiewicz, A., Pierce, B.C.: Quotient lenses. In: Hook, J., Thiemann, P. (eds.) Proceeding of the 13th ACM SIGPLAN international conference on Functional programming, ICFP 2008, Victoria, BC, Canada, September 20-28, 2008. pp. 383\u2013396. ACM (2008). https:\/\/doi.org\/10.1145\/1411204.1411257","DOI":"10.1145\/1411204.1411257"},{"key":"2_CR15","doi-asserted-by":"crossref","unstructured":"Goldstein, H., Frohlich, S., Wang, M., Pierce, B.C.: Reflecting on random generation. Proc. ACM Program. Lang. 7(ICFP), 322\u2013355 (2023). https:\/\/doi.org\/10.1145\/3607842","DOI":"10.1145\/3607842"},{"key":"2_CR16","doi-asserted-by":"crossref","unstructured":"Hegner, S.J.: Foundations of canonical update support for closed database views. In: Abiteboul, S., Kanellakis, P.C. (eds.) ICDT\u201990, Third International Conference on Database Theory, Paris, France, December 12-14, 1990, Proceedings. Lecture Notes in Computer Science, vol.\u00a0470, pp. 422\u2013436. Springer (1990). https:\/\/doi.org\/10.1007\/3-540-53507-1_93","DOI":"10.1007\/3-540-53507-1_93"},{"key":"2_CR17","doi-asserted-by":"crossref","unstructured":"Hegner, S.J.: An order-based theory of updates for closed database views. Ann. Math. Artif. Intell. 40(1-2), 63\u2013125 (2004). https:\/\/doi.org\/10.1023\/A:1026158013113","DOI":"10.1023\/A:1026158013113"},{"key":"2_CR18","doi-asserted-by":"crossref","unstructured":"Hidaka, S., Hu, Z., Inaba, K., Kato, H., Matsuda, K., Nakano, K.: Bidirectionalizing graph transformations. In: Hudak, P., Weirich, S. (eds.) Proceeding of the 15th ACM SIGPLAN international conference on Functional programming, ICFP 2010, Baltimore, Maryland, USA, September 27-29, 2010. pp. 205\u2013216. ACM (2010). https:\/\/doi.org\/10.1145\/1863543.1863573","DOI":"10.1145\/1863543.1863573"},{"key":"2_CR19","doi-asserted-by":"crossref","unstructured":"Hofmann, M., Pierce, B.C., Wagner, D.: Symmetric lenses. In: Ball, T., Sagiv, M. (eds.) Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January 26-28, 2011. pp. 371\u2013384. ACM (2011). https:\/\/doi.org\/10.1145\/1926385.1926428","DOI":"10.1145\/1926385.1926428"},{"key":"2_CR20","doi-asserted-by":"crossref","unstructured":"Hofmann, M., Pierce, B.C., Wagner, D.: Edit lenses. In: Field, J., Hicks, M. (eds.) Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, January 22-28, 2012. pp. 495\u2013508. ACM (2012). https:\/\/doi.org\/10.1145\/2103656.2103715","DOI":"10.1145\/2103656.2103715"},{"key":"2_CR21","doi-asserted-by":"crossref","unstructured":"Horn, R., Perera, R., Cheney, J.: Incremental relational lenses. Proc. ACM Program. Lang. 2(ICFP), 74:1\u201374:30 (2018). https:\/\/doi.org\/10.1145\/3236769","DOI":"10.1145\/3236769"},{"key":"2_CR22","doi-asserted-by":"crossref","unstructured":"Hu, Z., Iwasaki, H., Takeichi, M., Takano, A.: Tupling calculation eliminates multiple data traversals. In: Peyton Jones, S.L., Tofte, M., Berman, A.M. (eds.) Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming (ICFP \u201997), Amsterdam, The Netherlands, June 9-11, 1997. pp. 164\u2013175. ACM (1997). https:\/\/doi.org\/10.1145\/258948.258964","DOI":"10.1145\/258948.258964"},{"key":"2_CR23","doi-asserted-by":"crossref","unstructured":"Hu, Z., Ko, H.: Principles and practice of bidirectional programming in BiGUL. In: Gibbons, J., Stevens, P. (eds.) Bidirectional Transformations - International Summer School, Oxford, UK, July 25-29, 2016, Tutorial Lectures. Lecture Notes in Computer Science, vol.\u00a09715, pp. 100\u2013150. Springer (2016). https:\/\/doi.org\/10.1007\/978-3-319-79108-1_4","DOI":"10.1007\/978-3-319-79108-1_4"},{"key":"2_CR24","doi-asserted-by":"crossref","unstructured":"Hu, Z., Mu, S., Takeichi, M.: A programmable editor for developing structured documents based on bidirectional transformations. In: Heintze, N., Sestoft, P. (eds.) Proceedings of the 2004 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2004, Verona, Italy, August 24-25, 2004. pp. 178\u2013189. ACM (2004). https:\/\/doi.org\/10.1145\/1014007.1014025","DOI":"10.1145\/1014007.1014025"},{"key":"2_CR25","doi-asserted-by":"crossref","unstructured":"Keller, A.M.: Comments on Bancilhon and Spyratos\u2019 \"update semantics and relational views\". ACM Trans. Database Syst. 12(3), 521\u2013523 (1987). https:\/\/doi.org\/10.1145\/27629.214296","DOI":"10.1145\/27629.214296"},{"key":"2_CR26","doi-asserted-by":"crossref","unstructured":"Ko, H., Zan, T., Hu, Z.: BiGUL: a formally verified core language for putback-based bidirectional programming. In: Erwig, M., Rompf, T. (eds.) Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2016, St. Petersburg, FL, USA, January 20 - 22, 2016. pp. 61\u201372. ACM (2016). http:\/\/doi.acm.org\/10.1145\/2847538.2847544","DOI":"10.1145\/2847538.2847544"},{"key":"2_CR27","unstructured":"van Laarhoven, T.: Cps based functional references. blog post: https:\/\/www.twanvl.nl\/blog\/haskell\/cps-functional-references (2009), visited 2024-10-08"},{"key":"2_CR28","doi-asserted-by":"crossref","unstructured":"Macedo, N., Pacheco, H., Sousa, N.R., Cunha, A.: Bidirectional spreadsheet formulas. In: Fleming, S.D., Fish, A., Scaffidi, C. (eds.) IEEE Symposium on Visual Languages and Human-Centric Computing, VL\/HCC 2014, Melbourne, VIC, Australia, July 28 - August 1, 2014. pp. 161\u2013168. IEEE Computer Society (2014). https:\/\/doi.org\/10.1109\/VLHCC.2014.6883041","DOI":"10.1109\/VLHCC.2014.6883041"},{"key":"2_CR29","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Frohlich, S., Wang, M., Wu, N.: Embedding by unembedding. Proc. ACM Program. Lang. 7(ICFP), 1\u201347 (2023). https:\/\/doi.org\/10.1145\/3607830","DOI":"10.1145\/3607830"},{"key":"2_CR30","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Hu, Z., Nakano, K., Hamana, M., Takeichi, M.: Bidirectionalization transformation based on automatic derivation of view complement functions. In: Hinze, R., Ramsey, N. (eds.) Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming, ICFP 2007, Freiburg, Germany, October 1-3, 2007. pp. 47\u201358. ACM (2007). https:\/\/doi.org\/10.1145\/1291151.1291162","DOI":"10.1145\/1291151.1291162"},{"key":"2_CR31","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Nguyen, M., Wang, M.: Lenses for partially-specified states (extended version) (2026), https:\/\/arxiv.org\/abs\/2601.04573","DOI":"10.1007\/978-3-032-22723-2_2"},{"key":"2_CR32","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: FliPpr: A prettier invertible printing system. In: Felleisen, M., Gardner, P. (eds.) ESOP. Lecture Notes in Computer Science, vol.\u00a07792, pp. 101\u2013120. Springer (2013). https:\/\/doi.org\/10.1007\/978-3-642-37036-6_6","DOI":"10.1007\/978-3-642-37036-6_6"},{"key":"2_CR33","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: Applicative bidirectional programming with lenses. In: Fisher, K., Reppy, J.H. (eds.) ICFP. pp. 62\u201374. ACM (2015). http:\/\/doi.acm.org\/10.1145\/2784731.2784750","DOI":"10.1145\/2784731.2784750"},{"key":"2_CR34","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: \u201cBidirectionalization for free\u201d for monomorphic transformations. Sci. Comput. Program. 111, 79\u2013109 (2015). https:\/\/doi.org\/10.1016\/j.scico.2014.07.008","DOI":"10.1016\/j.scico.2014.07.008"},{"key":"2_CR35","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: Applicative bidirectional programming: Mixing lenses and semantic bidirectionalization. J. Funct. Program. 28, \u00a0e15 (2018). https:\/\/doi.org\/10.1017\/S0956796818000096","DOI":"10.1017\/S0956796818000096"},{"key":"2_CR36","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: Embedding invertible languages with binders: a case of the FliPpr language. In: Wu, N. (ed.) Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell, Haskell@ICFP 2018, St. Louis, MO, USA, September 27-17, 2018. pp. 158\u2013171. ACM (2018). https:\/\/doi.org\/10.1145\/3242744.3242758","DOI":"10.1145\/3242744.3242758"},{"key":"2_CR37","doi-asserted-by":"crossref","unstructured":"Matsuda, K., Wang, M.: HOBiT: Programming lenses without using lens combinators. In: Ahmed, A. (ed.) ESOP. Lecture Notes in Computer Science, vol. 10801, pp. 31\u201359. Springer (2018). https:\/\/doi.org\/10.1007\/978-3-319-89884-1_2","DOI":"10.1007\/978-3-319-89884-1_2"},{"key":"2_CR38","doi-asserted-by":"crossref","unstructured":"Mayer, M., Kuncak, V., Chugh, R.: Bidirectional evaluation with direct manipulation. Proc. ACM Program. Lang. 2(OOPSLA), 127:1\u2013127:28 (2018). https:\/\/doi.org\/10.1145\/3276497","DOI":"10.1145\/3276497"},{"key":"2_CR39","unstructured":"Meertens, L.: Designing constraint maintainers for user interaction (1998), available on: https:\/\/www.kestrel.edu\/people\/meertens\/pub\/dcm.pdf"},{"key":"2_CR40","doi-asserted-by":"crossref","unstructured":"Mu, S., Hu, Z., Takeichi, M.: An algebraic approach to bi-directional updating. In: Chin, W. (ed.) Programming Languages and Systems: Second Asian Symposium, APLAS 2004, Taipei, Taiwan, November 4-6, 2004. Proceedings. Lecture Notes in Computer Science, vol.\u00a03302, pp. 2\u201320. Springer (2004). https:\/\/doi.org\/10.1007\/978-3-540-30477-7_2","DOI":"10.1007\/978-3-540-30477-7_2"},{"key":"2_CR41","unstructured":"O\u2019Connor, R.: Functor is to lens as applicative is to biplate: Introducing multiplate. CoRR abs\/1103.2841 (2011), http:\/\/arxiv.org\/abs\/1103.2841, accepted in WGP \u201911, but not included in its proceedings"},{"key":"2_CR42","doi-asserted-by":"crossref","unstructured":"Pacheco, H., Cunha, A.: Generic point-free lenses. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) Mathematics of Program Construction, 10th International Conference, MPC 2010, Qu\u00e9bec City, Canada, June 21-23, 2010. Proceedings. Lecture Notes in Computer Science, vol.\u00a06120, pp. 331\u2013352. Springer (2010). https:\/\/doi.org\/10.1007\/978-3-642-13321-3_19","DOI":"10.1007\/978-3-642-13321-3_19"},{"key":"2_CR43","doi-asserted-by":"crossref","unstructured":"Pickering, M., Gibbons, J., Wu, N.: Profunctor optics: Modular data accessors. Art Sci. Eng. Program. 1(2), \u00a07 (2017). https:\/\/doi.org\/10.22152\/programming-journal.org\/2017\/1\/7","DOI":"10.22152\/programming-journal.org\/2017\/1\/7"},{"key":"2_CR44","unstructured":"Riley, M.: Categories of optics (2018), https:\/\/arxiv.org\/abs\/1809.00738"},{"key":"2_CR45","doi-asserted-by":"crossref","unstructured":"Shapiro, M., Pregui\u00e7a, N.M., Baquero, C., Zawirski, M.: Conflict-free replicated data types. In: D\u00e9fago, X., Petit, F., Villain, V. (eds.) Stabilization, Safety, and Security of Distributed Systems - 13th International Symposium, SSS 2011, Grenoble, France, October 10-12, 2011. Proceedings. Lecture Notes in Computer Science, vol.\u00a06976, pp. 386\u2013400. Springer (2011). https:\/\/doi.org\/10.1007\/978-3-642-24550-3_29","DOI":"10.1007\/978-3-642-24550-3_29"},{"key":"2_CR46","doi-asserted-by":"crossref","unstructured":"Stevens, P.: A landscape of bidirectional model transformations. In: L\u00e4mmel, R., Visser, J., Saraiva, J. (eds.) GTTSE. Lecture Notes in Computer Science, vol.\u00a05235, pp. 408\u2013424. Springer (2008). https:\/\/doi.org\/10.1007\/978-3-540-88643-3_10","DOI":"10.1007\/978-3-540-88643-3_10"},{"key":"2_CR47","unstructured":"Takeichi, M.: Configuring bidirectional programs with functions. Presented at IFL 2009: International Symposium\/Workshop on Implementation and Application of Functional Languages (2009), available from: https:\/\/takeichimasato.net\/attachments\/XFun0.pdf"},{"key":"2_CR48","doi-asserted-by":"crossref","unstructured":"Voigtl\u00e4nder, J.: Bidirectionalization for free! (pearl). In: Shao, Z., Pierce, B.C. (eds.) Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2009, Savannah, GA, USA, January 21-23, 2009. pp. 165\u2013176. ACM (2009). https:\/\/doi.org\/10.1145\/1480881.1480904","DOI":"10.1145\/1480881.1480904"},{"key":"2_CR49","doi-asserted-by":"crossref","unstructured":"Voigtl\u00e4nder, J., Hu, Z., Matsuda, K., Wang, M.: Combining syntactic and semantic bidirectionalization. In: Hudak, P., Weirich, S. (eds.) Proceeding of the 15th ACM SIGPLAN international conference on Functional programming, ICFP 2010, Baltimore, Maryland, USA, September 27-29, 2010. pp. 181\u2013192. ACM (2010). https:\/\/doi.org\/10.1145\/1863543.1863571","DOI":"10.1145\/1863543.1863571"},{"key":"2_CR50","doi-asserted-by":"crossref","unstructured":"Voigtl\u00e4nder, J., Hu, Z., Matsuda, K., Wang, M.: Enhancing semantic bidirectionalization via shape bidirectionalizer plug-ins. J. Funct. Program. 23(5), 515\u2013551 (2013). https:\/\/doi.org\/10.1017\/S0956796813000130","DOI":"10.1017\/S0956796813000130"},{"key":"2_CR51","doi-asserted-by":"crossref","unstructured":"Williams, J., Gordon, A.D.: Where-provenance for bidirectional editing in spreadsheets. J. Comput. Lang. 73, 101155 (2022). https:\/\/doi.org\/10.1016\/j.cola.2022.101155","DOI":"10.1016\/j.cola.2022.101155"},{"key":"2_CR52","doi-asserted-by":"crossref","unstructured":"Xie, R., Schrijvers, T., Hu, Z.: Biparsers: Exact printing for data synchronisation. Proc. ACM Program. Lang. 9(POPL), 2205\u20132231 (2025). https:\/\/doi.org\/10.1145\/3704910","DOI":"10.1145\/3704910"},{"key":"2_CR53","doi-asserted-by":"crossref","unstructured":"Xiong, Y., Liu, D., Hu, Z., Zhao, H., Takeichi, M., Mei, H.: Towards automatic model synchronization from model transformations. In: Stirewalt, R.E.K., Egyed, A., Fischer, B. (eds.) 22nd IEEE\/ACM International Conference on Automated Software Engineering (ASE 2007), November 5-9, 2007, Atlanta, Georgia, USA. pp. 164\u2013173. ACM (2007). https:\/\/doi.org\/10.1145\/1321631.1321657","DOI":"10.1145\/1321631.1321657"},{"key":"2_CR54","doi-asserted-by":"crossref","unstructured":"Yu, Y., Lin, Y., Hu, Z., Hidaka, S., Kato, H., Montrieux, L.: Maintaining invariant traceability through bidirectional transformations. In: Glinz, M., Murphy, G.C., Pezz\u00e8, M. (eds.) 34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland. pp. 540\u2013550. IEEE Computer Society (2012). https:\/\/doi.org\/10.1109\/ICSE.2012.6227162","DOI":"10.1109\/ICSE.2012.6227162"},{"key":"2_CR55","doi-asserted-by":"crossref","unstructured":"Zhang, X., Hu, Z.: Towards bidirectional live programming for incomplete programs. In: 44th IEEE\/ACM 44th International Conference on Software Engineering, ICSE 2022, Pittsburgh, PA, USA, May 25-27, 2022. pp. 2154\u20132164. ACM (2022). https:\/\/doi.org\/10.1145\/3510003.3510195","DOI":"10.1145\/3510003.3510195"},{"key":"2_CR56","doi-asserted-by":"crossref","unstructured":"Zhang, X., Xie, R., Guo, G., He, X., Zan, T., Hu, Z.: Fusing direct manipulations into functional programs. Proc. ACM Program. Lang. 8(POPL), 1211\u20131238 (2024). https:\/\/doi.org\/10.1145\/3632883","DOI":"10.1145\/3632883"},{"key":"2_CR57","unstructured":"Zhu, Z., Ko, H., Martins, P., Saraiva, J., Hu, Z.: BiYacc: Roll your parser and reflective printer into one. In: Cunha, A., Kindler, E. (eds.) Proceedings of the 4th International Workshop on Bidirectional Transformations co-located with Software Technologies: Applications and Foundations, STAF 2015, L\u2019Aquila, Italy, July 24, 2015. CEUR Workshop Proceedings, vol.\u00a01396, pp. 43\u201350. CEUR-WS.org (2015), https:\/\/ceur-ws.org\/Vol-1396\/p43-zhu.pdf"},{"key":"2_CR58","doi-asserted-by":"publisher","unstructured":"Zhu, Z., Zhang, Y., Ko, H., Martins, P., Saraiva, J., Hu, Z.: Parsing and reflective printing, bidirectionally. In: van\u00a0der Storm, T., Balland, E., Varr\u00f3, D. (eds.) Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, Amsterdam, The Netherlands, October 31 - November 1, 2016. pp. 2\u201314. ACM (2016). https:\/\/doi.org\/10.1145\/2997364","DOI":"10.1145\/2997364"}],"container-title":["Lecture Notes in Computer Science","Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-032-22723-2_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,22]],"date-time":"2026-06-22T19:52:25Z","timestamp":1782157945000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-032-22723-2_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026]]},"ISBN":["9783032227225","9783032227232"],"references-count":58,"URL":"https:\/\/doi.org\/10.1007\/978-3-032-22723-2_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026]]},"assertion":[{"value":"10 April 2026","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":"The accompanying artifact is available at\n                      \n                      . It contains a prototype implementation of partial-state lenses in Haskell for reproducing the behavior of the lenses discussed in Sects.\n                      \n                      and\n                      \n                      , and a mechanized formalization of definitions and statements in this paper. Their source code repositories are hosted at\n                      \n                      and\n                      \n                      .","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Data Availability"}},{"value":"ESOP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"European Symposium on Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Turin","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Italy","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2026","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11 April 2026","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 April 2026","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"35","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"esop2026","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/etaps.org\/about\/esop\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}