{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T07:22:19Z","timestamp":1743060139932,"version":"3.40.3"},"publisher-location":"Cham","reference-count":26,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031433443"},{"type":"electronic","value":"9783031433450"}],"license":[{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"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":[[2023]]},"DOI":"10.1007\/978-3-031-43345-0_2","type":"book-chapter","created":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T22:01:49Z","timestamp":1697925709000},"page":"25-59","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Why Adjunctions Matter\u2014A Functional Programmer Perspective"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0196-4229","authenticated-orcid":false,"given":"Jos\u00e9 Nuno","family":"Oliveira","sequence":"first","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2023,10,22]]},"reference":[{"issue":"1\u20132","key":"2_CR1","first-page":"153","volume":"15","author":"K Backhouse","year":"2004","unstructured":"Backhouse, K., Backhouse, R.C.: Safety of abstract interpretations for free, via logical relations and Galois connections. SCP 15(1\u20132), 153\u2013196 (2004)","journal-title":"SCP"},{"key":"2_CR2","unstructured":"Backhouse, R.C.: Mathematics of Program Construction, p. 608. University of Nottingham. Unpublished Book Draft (2004)"},{"key":"2_CR3","unstructured":"Backhouse, R.C., de Bruin, P., Hoogendijk, P., Malcolm, G., Voermans, T.S., van der Woude, J.: Polynomial relators. In: Nivat, M., Rattray, C.S., Rus, T., Scollo, G. (eds.) Proceedings of the 2nd Conference on Algebraic Methodology and Software Technology, AMAST 1991, pp. 303\u2013326. Springer, Heidelberg (1991). Workshops in Computing (1992)"},{"key":"2_CR4","doi-asserted-by":"crossref","unstructured":"Bird, R., de Moor, O.: Algebra of Programming. Prentice-Hall, Upper Saddle River (1997)","DOI":"10.1007\/978-3-642-61455-2_12"},{"key":"2_CR5","doi-asserted-by":"crossref","unstructured":"Boisseau, G., Gibbons, J.: What you Needa know about Yoneda: profunctor optics and the Yoneda lemma (functional pearl). Proc. ACM Program. Lang. 2(ICFP), 84:1\u201384:27 (2018)","DOI":"10.1145\/3236779"},{"key":"2_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-13346-1_1","volume-title":"Semantics of Data Types","author":"R Burstall","year":"1984","unstructured":"Burstall, R., Lampson, B.: A Kernel language for abstract data types and modules. In: Kahn, G., MacQueen, D.B., Plotkin, G. (eds.) SDT 1984. LNCS, vol. 173, pp. 1\u201350. Springer, Heidelberg (1984). https:\/\/doi.org\/10.1007\/3-540-13346-1_1"},{"key":"2_CR7","unstructured":"Burstall, R.M., Goguen, J.A.: Algebras, theories and freeness. Technical report CSR-101-82, University of Edinburgh, February 1982"},{"key":"2_CR8","doi-asserted-by":"publisher","first-page":"e2","DOI":"10.1017\/S0956796822000156","volume":"33","author":"O Danvy","year":"2023","unstructured":"Danvy, O.: Folding left and right matters: direct style, accumulators, and continuations. J. Funct. Program. 33, e2 (2023)","journal-title":"J. Funct. Program."},{"key":"2_CR9","doi-asserted-by":"crossref","unstructured":"Gibbons, J., Hinze, R.: Just do it: simple monadic equational reasoning. In: Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming, ICFP 2011, pp. 2\u201314. ACM, New York (2011)","DOI":"10.1145\/2034773.2034777"},{"issue":"1","key":"2_CR10","doi-asserted-by":"publisher","first-page":"95","DOI":"10.1145\/147508.147524","volume":"39","author":"JA Goguen","year":"1992","unstructured":"Goguen, J.A., Burstall, R.M.: Institutions: abstract model theory for specification and programming. J. ACM 39(1), 95\u2013146 (1992)","journal-title":"J. ACM"},{"issue":"11","key":"2_CR11","first-page":"2108","volume":"78","author":"R Hinze","year":"2013","unstructured":"Hinze, R.: Adjoint folds and unfolds \u2013 an extended study. SCP 78(11), 2108\u20132159 (2013)","journal-title":"SCP"},{"key":"2_CR12","unstructured":"Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2012). Revised edition, ISBN 0-262-01715-2"},{"issue":"11","key":"2_CR13","first-page":"2160","volume":"78","author":"HD Macedo","year":"2013","unstructured":"Macedo, H.D., Oliveira, J.N.: Typing linear algebra: a biproduct-oriented approach. SCP 78(11), 2160\u20132191 (2013)","journal-title":"SCP"},{"key":"2_CR14","series-title":"Graduate Texts in Mathematics","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4757-4721-8","volume-title":"Categories for the Working Mathematician","author":"S Mac Lane","year":"1978","unstructured":"Mac Lane, S.: Categories for the Working Mathematician. GTM, vol. 5. Springer, New York (1978). https:\/\/doi.org\/10.1007\/978-1-4757-4721-8"},{"issue":"1","key":"2_CR15","doi-asserted-by":"publisher","first-page":"55","DOI":"10.1016\/0890-5401(91)90052-4","volume":"93","author":"E Moggi","year":"1991","unstructured":"Moggi, E.: Notions of computation and monads. Inf. Comput. 93(1), 55\u201392 (1991)","journal-title":"Inf. Comput."},{"key":"2_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"294","DOI":"10.1007\/978-3-642-21070-9_22","volume-title":"Relational and Algebraic Methods in Computer Science","author":"S-C Mu","year":"2011","unstructured":"Mu, S.-C., Oliveira, J.N.: Programming from Galois connections. In: de Swart, H. (ed.) RAMICS 2011. LNCS, vol. 6663, pp. 294\u2013313. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-21070-9_22"},{"key":"2_CR17","unstructured":"Oliveira, J.N.: Biproducts of Galois connections. Presentation at the IFIP WG 2.1 #79 Meeting, Otterlo, NL, January 2019"},{"key":"2_CR18","unstructured":"Oliveira, J.N.: Program Design by Calculation (2021). Unpublished book draft, February 2021. Informatics Dept., U. Minho (pdf)"},{"key":"2_CR19","unstructured":"Oliveira, J.N.: A note on the under-appreciated for-loop. Technical report TR-HASLab:01:2020 (2020). (pdf), HASLab\/U.Minho and INESC TEC"},{"key":"2_CR20","unstructured":"Oliveira, J.N.: On the power of adjoint recursion. Presentation at the IFIP WG 2.1 #06 Meeting (Online), October 2021"},{"key":"2_CR21","doi-asserted-by":"crossref","unstructured":"Silva, P.F., Oliveira, J.N.: \u2018Galculator\u2019: functional prototype of a Galois-connection based proof assistant. In: PPDP 2008, pp. 44\u201355. ACM (2008)","DOI":"10.1145\/1389449.1389456"},{"key":"2_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-60675-0_35","volume-title":"Functional Programming Languages in Education","author":"DA Turner","year":"1995","unstructured":"Turner, D.A.: Elementary strong functional programming. In: Hartel, P.H., Plasmeijer, R. (eds.) FPLE 1995. LNCS, vol. 1022, pp. 1\u201313. Springer, Heidelberg (1995). https:\/\/doi.org\/10.1007\/3-540-60675-0_35"},{"key":"2_CR23","doi-asserted-by":"crossref","unstructured":"Wadler, P.L.: Theorems for free! In: 4th International Symposium on Functional Programming Languages and Computer Architecture, London, pp. 347\u2013359. ACM, September 1989","DOI":"10.1145\/99370.99404"},{"key":"2_CR24","doi-asserted-by":"crossref","unstructured":"Wadler, P.L.: Comprehending monads. In: Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, Nice, France (1990)","DOI":"10.1145\/91556.91592"},{"key":"2_CR25","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/3054.001.0001","volume-title":"The Formal Semantics of Programming Languages: An Introduction","author":"G Winskel","year":"1993","unstructured":"Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. MIT Press, Cambridge (1993)"},{"key":"2_CR26","doi-asserted-by":"crossref","unstructured":"Yang, Z., Wu, N.: Fantastic morphisms and where to find them - a guide to recursion schemes. In: MPC 2022. LNCS, vol. 13544, pp. 222\u2013267. Springer, Cham (2022)","DOI":"10.1007\/978-3-031-16912-0_9"}],"container-title":["Lecture Notes in Computer Science","Recent Trends in Algebraic Development Techniques"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-43345-0_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T22:02:17Z","timestamp":1697925737000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-43345-0_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031433443","9783031433450"],"references-count":26,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-43345-0_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2023]]},"assertion":[{"value":"22 October 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"WADT","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Workshop on Algebraic Development Techniques","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Aveiro","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Portugal","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"28 June 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"30 June 2022","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":"adt2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/wadt2022.web.ua.pt\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"25","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"8","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"32% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"1","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}