{"id":"https://openalex.org/W2293338131","doi":"https://doi.org/10.1145/2837614.2837660","title":"System f-omega with equirecursive types for datatype-generic programming","display_name":"System f-omega with equirecursive types for datatype-generic programming","publication_year":2016,"publication_date":"2016-01-07","ids":{"openalex":"https://openalex.org/W2293338131","doi":"https://doi.org/10.1145/2837614.2837660","mag":"2293338131"},"language":"en","primary_location":{"id":"doi:10.1145/2837614.2837660","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2837614.2837660","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","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/A5026739779","display_name":"Yufei Cai","orcid":"https://orcid.org/0000-0002-0460-961X"},"institutions":[{"id":"https://openalex.org/I8087733","display_name":"University of T\u00fcbingen","ror":"https://ror.org/03a1kwz48","country_code":"DE","type":"education","lineage":["https://openalex.org/I8087733"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Yufei Cai","raw_affiliation_strings":["University of T\u00fcbingen, Germany"],"affiliations":[{"raw_affiliation_string":"University of T\u00fcbingen, Germany","institution_ids":["https://openalex.org/I8087733"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030151158","display_name":"Paolo G. Giarrusso","orcid":null},"institutions":[{"id":"https://openalex.org/I8087733","display_name":"University of T\u00fcbingen","ror":"https://ror.org/03a1kwz48","country_code":"DE","type":"education","lineage":["https://openalex.org/I8087733"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Paolo G. Giarrusso","raw_affiliation_strings":["University of T\u00fcbingen, Germany"],"affiliations":[{"raw_affiliation_string":"University of T\u00fcbingen, Germany","institution_ids":["https://openalex.org/I8087733"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5049077225","display_name":"Klaus Ostermann","orcid":"https://orcid.org/0000-0001-5294-5506"},"institutions":[{"id":"https://openalex.org/I8087733","display_name":"University of T\u00fcbingen","ror":"https://ror.org/03a1kwz48","country_code":"DE","type":"education","lineage":["https://openalex.org/I8087733"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Klaus Ostermann","raw_affiliation_strings":["University of T\u00fcbingen, Germany"],"affiliations":[{"raw_affiliation_string":"University of T\u00fcbingen, Germany","institution_ids":["https://openalex.org/I8087733"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5026739779"],"corresponding_institution_ids":["https://openalex.org/I8087733"],"apc_list":null,"apc_paid":null,"fwci":0.857,"has_fulltext":false,"cited_by_count":11,"citation_normalized_percentile":{"value":0.82816285,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"30","last_page":"43"},"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.9919000267982483,"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/T11010","display_name":"Logic, Reasoning, and Knowledge","score":0.9907000064849854,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/soundness","display_name":"Soundness","score":0.7888063192367554},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7287047505378723},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6994731426239014},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.6639413237571716},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.5140210390090942},{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.4644396901130676},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4629635810852051},{"id":"https://openalex.org/keywords/abstract-data-type","display_name":"Abstract data type","score":0.41306740045547485},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.08909058570861816}],"concepts":[{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.7888063192367554},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7287047505378723},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6994731426239014},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.6639413237571716},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.5140210390090942},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.4644396901130676},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4629635810852051},{"id":"https://openalex.org/C175971053","wikidata":"https://www.wikidata.org/wiki/Q827335","display_name":"Abstract data type","level":2,"score":0.41306740045547485},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.08909058570861816}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2837614.2837660","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2837614.2837660","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":69,"referenced_works":["https://openalex.org/W9614445","https://openalex.org/W20313843","https://openalex.org/W1485257692","https://openalex.org/W1537446812","https://openalex.org/W1544370566","https://openalex.org/W1557561422","https://openalex.org/W1589260337","https://openalex.org/W1590150976","https://openalex.org/W1601383237","https://openalex.org/W1608714802","https://openalex.org/W1614164110","https://openalex.org/W1664326696","https://openalex.org/W1688372159","https://openalex.org/W1751016442","https://openalex.org/W1768450951","https://openalex.org/W1851509138","https://openalex.org/W1891773423","https://openalex.org/W1968168625","https://openalex.org/W1979982425","https://openalex.org/W1980939032","https://openalex.org/W1982209843","https://openalex.org/W1991604845","https://openalex.org/W1991660671","https://openalex.org/W2014995396","https://openalex.org/W2022683189","https://openalex.org/W2045344413","https://openalex.org/W2067976080","https://openalex.org/W2079958455","https://openalex.org/W2088336977","https://openalex.org/W2093896470","https://openalex.org/W2101254143","https://openalex.org/W2109548990","https://openalex.org/W2116813111","https://openalex.org/W2120487396","https://openalex.org/W2122685887","https://openalex.org/W2123727486","https://openalex.org/W2124274632","https://openalex.org/W2131770667","https://openalex.org/W2131828631","https://openalex.org/W2135098752","https://openalex.org/W2136651263","https://openalex.org/W2152414370","https://openalex.org/W2155209389","https://openalex.org/W2159748649","https://openalex.org/W2162592943","https://openalex.org/W2167268698","https://openalex.org/W2170800927","https://openalex.org/W2173780645","https://openalex.org/W2494576483","https://openalex.org/W2561675875","https://openalex.org/W2791774374","https://openalex.org/W2913811625","https://openalex.org/W3043607029","https://openalex.org/W4230659860","https://openalex.org/W4237113984","https://openalex.org/W4247773878","https://openalex.org/W4254660223","https://openalex.org/W6628874697","https://openalex.org/W6633355477","https://openalex.org/W6636025201","https://openalex.org/W6636547792","https://openalex.org/W6638225870","https://openalex.org/W6645968549","https://openalex.org/W6672478680","https://openalex.org/W6675356881","https://openalex.org/W6678736406","https://openalex.org/W6683104578","https://openalex.org/W6684745430","https://openalex.org/W6759164395"],"related_works":["https://openalex.org/W1688372159","https://openalex.org/W2523205872","https://openalex.org/W2597112604","https://openalex.org/W2157155332","https://openalex.org/W2493130382","https://openalex.org/W2155863409","https://openalex.org/W2145738007","https://openalex.org/W1594164162","https://openalex.org/W2091470061","https://openalex.org/W1986044902"],"abstract_inverted_index":{"Traversing":[0],"an":[1,66,133],"algebraic":[2,27],"datatype":[3,150,187],"by":[4,25,114],"hand":[5],"requires":[6],"boilerplate":[7,23],"code":[8,24],"which":[9,34,46],"duplicates":[10],"the":[11,14,54,69,83,86,184],"structure":[12],"of":[13,56,68,85,135,186,199],"datatype.":[15],"Datatype-generic":[16],"programming":[17],"(DGP)":[18],"aims":[19],"to":[20,143,165,180],"eliminate":[21],"such":[22],"decomposing":[26],"datatypes":[28],"into":[29],"type":[30,87,92,103,112,125],"constructor":[31],"applications":[32],"from":[33],"generic":[35,171],"traversals":[36,42,172],"can":[37,151,173],"be":[38,152,174],"synthesized.":[39],"However,":[40],"different":[41,44,57],"require":[43],"decompositions,":[45],"yield":[47],"isomorphic":[48],"but":[49],"unequal":[50],"types.":[51,80,141],"This":[52],"hinders":[53],"interoperability":[55],"DGP":[58,163,195],"techniques.":[59],"In":[60,106],"this":[61],"paper,":[62],"we":[63,110,127],"propose":[64],"F\u03c9\u03bc,":[65],"extension":[67,134],"higher-order":[70],"polymorphic":[71],"lambda":[72],"calculus":[73],"F\u03c9":[74],"with":[75,100,158],"records,":[76],"variants,":[77],"and":[78,89,130,155,176],"equirecursive":[79,140,144],"We":[81,168],"prove":[82],"soundness":[84,108],"system,":[88],"show":[90],"that":[91],"checking":[93,104,137],"for":[94,138,148,201],"first-order":[95],"recursive":[96],"types":[97,116],"is":[98],"decidable":[99],"a":[101,149],"practical":[102],"algorithm.":[105],"our":[107],"proof":[109],"define":[111],"equality":[113,126],"interpreting":[115],"as":[117],"infinitary":[118],"\u03bb-terms":[119],"(in":[120],"particular,":[121],"Berarducci-trees).":[122],"To":[123],"decide":[124],"\u03b2-normalize":[128],"types,":[129,145],"then":[131],"use":[132],"equivalence":[136],"usual":[139],"Thanks":[142],"new":[146],"decompositions":[147],"added":[153],"modularly":[154],"still":[156],"interoperate":[157],"each":[159],"other,":[160],"allowing":[161],"multiple":[162],"techniques":[164,196],"work":[166],"together.":[167],"sketch":[169],"how":[170],"synthesized,":[175],"apply":[177],"these":[178],"components":[179],"some":[181],"examples.":[182],"Since":[183],"set":[185],"decomposition":[188],"becomes":[189],"extensible,":[190],"System":[191],"F\u03c9\u03bc":[192],"enables":[193],"using":[194],"incrementally,":[197],"instead":[198],"planning":[200],"them":[202],"upfront":[203],"or":[204],"doing":[205],"invasive":[206],"refactoring.":[207]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":3},{"year":2021,"cited_by_count":3},{"year":2019,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
