{"id":"https://openalex.org/W2890875961","doi":"https://doi.org/10.1145/3240719.3241787","title":"From algebra to abstract machine: a verified generic construction","display_name":"From algebra to abstract machine: a verified generic construction","publication_year":2018,"publication_date":"2018-09-18","ids":{"openalex":"https://openalex.org/W2890875961","doi":"https://doi.org/10.1145/3240719.3241787","mag":"2890875961"},"language":"en","primary_location":{"id":"doi:10.1145/3240719.3241787","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3240719.3241787","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 3rd ACM SIGPLAN International Workshop on Type-Driven Development","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/A5087618755","display_name":"Carlos Tom\u00e9 Corti\u00f1as","orcid":"https://orcid.org/0000-0001-5069-6577"},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Carlos Tom\u00e9 Corti\u00f1as","raw_affiliation_strings":["Utrecht University, Netherlands"],"affiliations":[{"raw_affiliation_string":"Utrecht University, Netherlands","institution_ids":["https://openalex.org/I193662353"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5019085361","display_name":"Wouter Swierstra","orcid":"https://orcid.org/0000-0002-0295-7944"},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Wouter Swierstra","raw_affiliation_strings":["Utrecht University, Netherlands"],"affiliations":[{"raw_affiliation_string":"Utrecht University, Netherlands","institution_ids":["https://openalex.org/I193662353"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5087618755"],"corresponding_institution_ids":["https://openalex.org/I193662353"],"apc_list":null,"apc_paid":null,"fwci":0.2525,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.50831093,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"78","last_page":"90"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9994999766349792,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9994999766349792,"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"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9983000159263611,"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.9940000176429749,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6298950910568237},{"id":"https://openalex.org/keywords/stack","display_name":"Stack (abstract data type)","score":0.604776918888092},{"id":"https://openalex.org/keywords/algebraic-number","display_name":"Algebraic number","score":0.5983880758285522},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.593136191368103},{"id":"https://openalex.org/keywords/recursive-functions","display_name":"Recursive functions","score":0.5314480066299438},{"id":"https://openalex.org/keywords/algebra-over-a-field","display_name":"Algebra over a field","score":0.5289837121963501},{"id":"https://openalex.org/keywords/algebraic-structure","display_name":"Algebraic structure","score":0.49641138315200806},{"id":"https://openalex.org/keywords/fold","display_name":"Fold (higher-order function)","score":0.47474271059036255},{"id":"https://openalex.org/keywords/\u03bc-operator","display_name":"\u03bc operator","score":0.4393162429332733},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4303070306777954},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.38207772374153137},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3380895256996155},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.33762675523757935},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.31127411127090454},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.2844432294368744}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6298950910568237},{"id":"https://openalex.org/C9395851","wikidata":"https://www.wikidata.org/wiki/Q177929","display_name":"Stack (abstract data type)","level":2,"score":0.604776918888092},{"id":"https://openalex.org/C9376300","wikidata":"https://www.wikidata.org/wiki/Q168817","display_name":"Algebraic number","level":2,"score":0.5983880758285522},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.593136191368103},{"id":"https://openalex.org/C2982939207","wikidata":"https://www.wikidata.org/wiki/Q1175101","display_name":"Recursive functions","level":2,"score":0.5314480066299438},{"id":"https://openalex.org/C136119220","wikidata":"https://www.wikidata.org/wiki/Q1000660","display_name":"Algebra over a field","level":2,"score":0.5289837121963501},{"id":"https://openalex.org/C182419690","wikidata":"https://www.wikidata.org/wiki/Q205464","display_name":"Algebraic structure","level":2,"score":0.49641138315200806},{"id":"https://openalex.org/C53942344","wikidata":"https://www.wikidata.org/wiki/Q951651","display_name":"Fold (higher-order function)","level":2,"score":0.47474271059036255},{"id":"https://openalex.org/C85955891","wikidata":"https://www.wikidata.org/wiki/Q307772","display_name":"\u03bc operator","level":3,"score":0.4393162429332733},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4303070306777954},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.38207772374153137},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3380895256996155},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.33762675523757935},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.31127411127090454},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.2844432294368744},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3240719.3241787","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3240719.3241787","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 3rd ACM SIGPLAN International Workshop on Type-Driven Development","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":28,"referenced_works":["https://openalex.org/W398758961","https://openalex.org/W569543113","https://openalex.org/W1539303361","https://openalex.org/W1575675278","https://openalex.org/W1578113853","https://openalex.org/W1585398629","https://openalex.org/W1597282693","https://openalex.org/W1614164110","https://openalex.org/W1982209843","https://openalex.org/W2012619465","https://openalex.org/W2079640625","https://openalex.org/W2086201554","https://openalex.org/W2102435409","https://openalex.org/W2113757735","https://openalex.org/W2130446944","https://openalex.org/W2136651263","https://openalex.org/W2146471655","https://openalex.org/W2147254790","https://openalex.org/W2148944677","https://openalex.org/W2167268698","https://openalex.org/W2490166346","https://openalex.org/W2912949875","https://openalex.org/W2913811625","https://openalex.org/W3146874579","https://openalex.org/W4213279211","https://openalex.org/W4237116508","https://openalex.org/W4240072532","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2065676782","https://openalex.org/W6819771","https://openalex.org/W2368379187","https://openalex.org/W4244106347","https://openalex.org/W1956860819","https://openalex.org/W955824272","https://openalex.org/W1635266006","https://openalex.org/W1596057910","https://openalex.org/W4252615823","https://openalex.org/W1986019457"],"abstract_inverted_index":{"Many":[0],"functions":[1],"over":[2],"algebraic":[3],"datatypes":[4],"can":[5],"be":[6],"expressed":[7],"in":[8,30,79],"terms":[9,31],"of":[10,32,68,74],"a":[11,25,27,33,37,45,75,80],"fold.":[12,61],"Doing":[13,62],"so,":[14],"however,":[15],"has":[16],"one":[17],"notable":[18],"drawback:":[19],"folds":[20,69],"are":[21],"not":[22],"tail-recursive.":[23],"As":[24],"result,":[26],"function":[28,50,78],"defined":[29],"fold":[34],"may":[35],"raise":[36],"stack":[38],"overflow":[39],"when":[40],"executed.":[41],"This":[42],"paper":[43],"defines":[44],"datatype":[46],"generic,":[47],"tail-recursive":[48,77],"higher-order":[49],"that":[51],"is":[52],"guaranteed":[53],"to":[54],"produce":[55],"the":[56,60,65,71],"same":[57],"result":[58],"as":[59],"so":[63],"combines":[64],"compositional":[66],"nature":[67],"and":[70],"performance":[72],"benefits":[73],"hand-written":[76],"single":[81],"setting.":[82]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2021,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
