{"id":"https://openalex.org/W2121787849","doi":"https://doi.org/10.1145/1159803.1159836","title":"Extensible programming with first-class cases","display_name":"Extensible programming with first-class cases","publication_year":2006,"publication_date":"2006-09-16","ids":{"openalex":"https://openalex.org/W2121787849","doi":"https://doi.org/10.1145/1159803.1159836","mag":"2121787849"},"language":"en","primary_location":{"id":"doi:10.1145/1159803.1159836","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1159803.1159836","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5107211321","display_name":"M. Blume","orcid":null},"institutions":[{"id":"https://openalex.org/I160992636","display_name":"Toyota Technological Institute at Chicago","ror":"https://ror.org/02sn5gb64","country_code":"US","type":"education","lineage":["https://openalex.org/I160992636"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Matthias Blume","raw_affiliation_strings":["Toyota Technological Institute at Chicago","TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Toyota Technological Institute at Chicago","institution_ids":["https://openalex.org/I160992636"]},{"raw_affiliation_string":"TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO","institution_ids":["https://openalex.org/I160992636"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5015051107","display_name":"Umut A. Acar","orcid":"https://orcid.org/0000-0002-2623-4986"},"institutions":[{"id":"https://openalex.org/I160992636","display_name":"Toyota Technological Institute at Chicago","ror":"https://ror.org/02sn5gb64","country_code":"US","type":"education","lineage":["https://openalex.org/I160992636"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Umut A. Acar","raw_affiliation_strings":["Toyota Technological Institute at Chicago","TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Toyota Technological Institute at Chicago","institution_ids":["https://openalex.org/I160992636"]},{"raw_affiliation_string":"TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO","institution_ids":["https://openalex.org/I160992636"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013269310","display_name":"Wonseok Chae","orcid":null},"institutions":[{"id":"https://openalex.org/I160992636","display_name":"Toyota Technological Institute at Chicago","ror":"https://ror.org/02sn5gb64","country_code":"US","type":"education","lineage":["https://openalex.org/I160992636"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Wonseok Chae","raw_affiliation_strings":["Toyota Technological Institute at Chicago","TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Toyota Technological Institute at Chicago","institution_ids":["https://openalex.org/I160992636"]},{"raw_affiliation_string":"TOYOTA TECHNOLOGICAL INSTITUTE AT CHICAGO","institution_ids":["https://openalex.org/I160992636"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I160992636"],"apc_list":null,"apc_paid":null,"fwci":1.3985,"has_fulltext":false,"cited_by_count":28,"citation_normalized_percentile":{"value":0.8529568,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"239","last_page":"250"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9950000047683716,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.992900013923645,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8532757759094238},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8311282396316528},{"id":"https://openalex.org/keywords/programming-style","display_name":"Programming style","score":0.6519233584403992},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6110379695892334},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5417341589927673},{"id":"https://openalex.org/keywords/powerpc","display_name":"PowerPC","score":0.5346469283103943},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.49088960886001587},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.48535528779029846},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4752338230609894},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.46896636486053467},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.42841416597366333},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.1846815049648285},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.12955760955810547}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8532757759094238},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8311282396316528},{"id":"https://openalex.org/C2776245389","wikidata":"https://www.wikidata.org/wiki/Q962139","display_name":"Programming style","level":2,"score":0.6519233584403992},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6110379695892334},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5417341589927673},{"id":"https://openalex.org/C56005371","wikidata":"https://www.wikidata.org/wiki/Q209860","display_name":"PowerPC","level":3,"score":0.5346469283103943},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.49088960886001587},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.48535528779029846},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4752338230609894},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.46896636486053467},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.42841416597366333},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1846815049648285},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.12955760955810547}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1159803.1159836","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1159803.1159836","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.380.2653","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.380.2653","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://people.cs.uchicago.edu/~blume/papers/icfp06-submitted.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.551.2672","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.551.2672","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.brinckerhoff.org/clements/csc530-sp08/Readings/blume-2006.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":42,"referenced_works":["https://openalex.org/W157176027","https://openalex.org/W192458036","https://openalex.org/W1506833497","https://openalex.org/W1507881659","https://openalex.org/W1510878057","https://openalex.org/W1519095101","https://openalex.org/W1519885450","https://openalex.org/W1523100015","https://openalex.org/W1525436703","https://openalex.org/W1546727036","https://openalex.org/W1549804464","https://openalex.org/W1567378416","https://openalex.org/W1580664042","https://openalex.org/W1584951182","https://openalex.org/W1829244603","https://openalex.org/W1966226379","https://openalex.org/W1977655588","https://openalex.org/W2002301065","https://openalex.org/W2022373880","https://openalex.org/W2036378583","https://openalex.org/W2037683408","https://openalex.org/W2045663419","https://openalex.org/W2059456764","https://openalex.org/W2073904768","https://openalex.org/W2092632814","https://openalex.org/W2101085206","https://openalex.org/W2102699068","https://openalex.org/W2109518186","https://openalex.org/W2127581079","https://openalex.org/W2133546079","https://openalex.org/W2137783828","https://openalex.org/W2138964563","https://openalex.org/W2147044763","https://openalex.org/W2166822586","https://openalex.org/W2618896829","https://openalex.org/W4254825663","https://openalex.org/W6606459853","https://openalex.org/W6607813988","https://openalex.org/W6628874697","https://openalex.org/W6631227934","https://openalex.org/W6632970877","https://openalex.org/W6634775351"],"related_works":["https://openalex.org/W3005777145","https://openalex.org/W4294335159","https://openalex.org/W2287183925","https://openalex.org/W1568025667","https://openalex.org/W2157155332","https://openalex.org/W2054765143","https://openalex.org/W1987975642","https://openalex.org/W3101427607","https://openalex.org/W1643994014","https://openalex.org/W1989143821"],"abstract_inverted_index":{"We":[0,91],"present":[1],"language":[2,67,89,98,152],"mechanisms":[3,68,79],"for":[4,96,102,178],"polymorphic,":[5],"extensible":[6,15],"records":[7],"and":[8,58,99,115,126,145,180],"their":[9],"exact":[10],"dual,":[11],"polymorphic":[12],"sums":[13,125,185],"with":[14,28,112,134,142],"first-class":[16],"cases.":[17,30],"These":[18,66],"features":[19,144],"make":[20],"it":[21],"possible":[22],"to":[23,40,44,62,72,117,168],"easily":[24],"extend":[25],"existing":[26],"code":[27,41,176],"new":[29],"In":[31],"fact,":[32],"such":[33],"extensions":[34,53],"do":[35],"not":[36],"require":[37,157],"any":[38],"changes":[39],"that":[42,50],"adheres":[43],"a":[45,70,93,103,137,165],"particular":[46],"programming":[47],"style.":[48],"Using":[49],"style,":[51],"individual":[52],"can":[54],"be":[55,60],"written":[56],"independently":[57],"later":[59],"composed":[61],"form":[63],"larger":[64],"components.":[65],"provide":[69,100],"solution":[71],"the":[73,77,81,97,132,162,182,191],"expression":[74],"problem.We":[75],"study":[76],"proposed":[78],"in":[80,155],"context":[82],"of":[83,131,139,184],"an":[84,108],"implicitly":[85],"typed,":[86],"purely":[87],"functional":[88],"PolyR.":[90],"give":[92],"type":[94,159],"system":[95],"rules":[101],"2-phase":[104],"transformation:":[105],"first":[106,122],"into":[107],"explicitly":[109],"typed":[110],"\u03bb-calculus":[111],"record":[113],"polymorphism,":[114],"finally":[116],"efficient":[118],"index-passing":[119],"code.":[120],"The":[121,172],"phase":[123],"eliminates":[124],"cases":[127],"by":[128,186,190],"taking":[129],"advantage":[130],"duality":[133],"records.We":[135],"implement":[136],"version":[138],"PolyR":[140],"extended":[141],"imperative":[143],"pattern":[146],"matching":[147],"-":[148,161],"we":[149],"call":[150],"this":[151],"MLPolyR.":[153],"Programs":[154],"MLPolyR":[156],"no":[158],"annotations":[160],"implementation":[163],"employs":[164],"reconstruction":[166],"algorithm":[167],"infer":[169],"all":[170],"types.":[171],"compiler":[173],"generates":[174],"machine":[175],"(currently":[177],"PowerPC)":[179],"optimizes":[181],"representation":[183],"eliminating":[187],"closures":[188],"generated":[189],"dual":[192],"construction.":[193]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":3},{"year":2013,"cited_by_count":1},{"year":2012,"cited_by_count":5}],"updated_date":"2026-06-26T08:34:08.712188","created_date":"2025-10-10T00:00:00"}
