{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:54:05Z","timestamp":1776891245388,"version":"3.51.2"},"reference-count":23,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"1","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":4694,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1996,1]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    A\n                    <jats:italic>generic<\/jats:italic>\n                    functional program is one which is parameterised by datatype. By installing specific choices, for example lists or trees, different programs are obtained that are, nevertheless, abstractly the same. The purpose of this paper is to explore the possibility of deriving generic programs. Part of the theory of lists that deals with segments is recast as a theory about \u2018segments\u2019 in a wide class of datatypes, and then used to pose and solve a generic version of a well-known problem.\n                  <\/jats:p>","DOI":"10.1017\/s0956796800001556","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:11:24Z","timestamp":1226056284000},"page":"1-28","source":"Crossref","is-referenced-by-count":28,"title":["Generic functional programming with types and relations"],"prefix":"10.46298","volume":"6","author":[{"given":"Richard","family":"Bird","sequence":"first","affiliation":[]},{"given":"Oege","family":"De Moor","sequence":"additional","affiliation":[]},{"given":"Paul","family":"Hoogendijk","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800001556_ref023","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(90)90147-A"},{"key":"S0956796800001556_ref009","first-page":"47","article-title":"A 2-categorical approach to geometric morphisms I","volume":"32","author":"Carboni","year":"1991","journal-title":"Cahiers de topologie et geometrie differentielle categoriques"},{"key":"S0956796800001556_ref012","volume-title":"Categories, allegories","volume":"39","author":"Freyd","year":"1990"},{"key":"S0956796800001556_ref013","unstructured":"Gibbons J. (1991) Algebras for tree algorithms. DPhil thesis, Programming Research Group, Computing Laboratory, Oxford University."},{"key":"S0956796800001556_ref004","first-page":"3","volume-title":"Logic of Programming and Calculi of Discrete Design","volume":"36","author":"Bird","year":"1987"},{"key":"S0956796800001556_ref019","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(90)90023-7"},{"key":"S0956796800001556_ref008","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.122"},{"key":"S0956796800001556_ref015","first-page":"229","volume-title":"Proc. sion Computing Science in the Netherlands","author":"Jeuring","year":"1989"},{"key":"S0956796800001556_ref018","doi-asserted-by":"publisher","DOI":"10.1007\/BF01752392"},{"key":"S0956796800001556_ref006","first-page":"287","volume-title":"Research Topics in Functional Programming","author":"Bird","year":"1990"},{"key":"S0956796800001556_ref021","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1524.001.0001","volume-title":"Basic Category Theory for Computer Scientists","author":"Pierce","year":"1991"},{"key":"S0956796800001556_ref016","volume-title":"Topos Theory","author":"Johnstone","year":"1977"},{"key":"S0956796800001556_ref011","unstructured":"De Moor O. (1993) Working notes on membership of data types. Unpublished manuscript"},{"key":"S0956796800001556_ref014","volume-title":"Topoi \u2013 the categorial analysis of logic","volume":"98","author":"Goldblatt","year":"1986"},{"key":"S0956796800001556_ref007","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-61455-2_12"},{"key":"S0956796800001556_ref003","volume-title":"Category Theory for Computing Science","author":"Barr","year":"1990"},{"key":"S0956796800001556_ref001","doi-asserted-by":"crossref","unstructured":"Aarts C. J. , Backhouse R. C. , Hoogendijk P. , Voermans E. and Van der Woude J. C. S. P. (1992) A relational theory of datatypes. Available via anonymous ftp from ftp.win.tue.nl in directory pub\/math.prog.construction.","DOI":"10.1007\/3-540-57499-9_15"},{"key":"S0956796800001556_ref002","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4899-0021-0"},{"key":"S0956796800001556_ref022","doi-asserted-by":"crossref","unstructured":"Swierstra S. D. and De Moor O. (1992) Virtual data structures. Proc. State-of-the-Art Seminar on Formal Program Development,Rio de Janeiro,Brazil (to appear).","DOI":"10.1007\/3-540-57499-9_26"},{"key":"S0956796800001556_ref020","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4612-4962-7"},{"key":"S0956796800001556_ref010","unstructured":"De Moor O. (1992) Categories, relations and dynamic programming. DPhil thesis. Technical Monograph PRG-98. Computing Laboratory, Oxford University."},{"key":"S0956796800001556_ref017","doi-asserted-by":"crossref","unstructured":"Jones M. P. (1993) A system of constructor classes: overloading and implicit higher-order polymorphism. Proc. FPCA. To appear.","DOI":"10.1145\/165180.165190"},{"key":"S0956796800001556_ref005","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-74884-4_5"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800001556","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:18:10Z","timestamp":1776889090000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800001556\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1996,1]]},"references-count":23,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1996,1]]}},"alternative-id":["S0956796800001556"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800001556","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1996,1]]}}}