{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:20Z","timestamp":1779836720541,"version":"3.53.1"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"6","license":[{"start":{"date-parts":[[1998,11,1]],"date-time":"1998-11-01T00:00:00Z","timestamp":909878400000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1998,11]]},"abstract":"<jats:p>We present an extension of the Hindley\u2013Milner type system that supports a generous class \nof type constructors called functors, and provide a parametrically polymorphic algorithm for \ntheir mapping, i.e. for applying a function to each datum appearing in a value of constructed \ntype. The algorithm comes from shape theory, which provides a uniform method for locating \ndata within a shape. The resulting system is Church\u2013Rosser and strongly normalizing, and \nsupports type inference. Several different semantics are possible, which affects the choice of \nconstants in the language, and are used to illustrate the relationship to polytypic programming.<\/jats:p>","DOI":"10.1017\/s0956796898003128","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T09:26:15Z","timestamp":1027761975000},"page":"573-619","source":"Crossref","is-referenced-by-count":24,"title":["Functorial ML"],"prefix":"10.1017","volume":"8","author":[{"given":"C. B.","family":"JAY","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"G.","family":"BELL\u00c8","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"E.","family":"MOGGI","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[1998,11,1]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796898003128","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:35:29Z","timestamp":1779834929000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796898003128\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998,11]]},"references-count":0,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1998,11]]}},"alternative-id":["S0956796898003128"],"URL":"https:\/\/doi.org\/10.1017\/s0956796898003128","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1998,11]]}}}