{"id":"https://openalex.org/W2136758562","doi":"https://doi.org/10.1145/2633357.2633361","title":"Promoting functions to type families in Haskell","display_name":"Promoting functions to type families in Haskell","publication_year":2014,"publication_date":"2014-09-02","ids":{"openalex":"https://openalex.org/W2136758562","doi":"https://doi.org/10.1145/2633357.2633361","mag":"2136758562"},"language":"en","primary_location":{"id":"doi:10.1145/2633357.2633361","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2633357.2633361","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2014 ACM SIGPLAN symposium on Haskell","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://www.research.ed.ac.uk/en/publications/de8226a9-912f-4b03-9ea0-d57fdec50a29","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5082913747","display_name":"Richard A. Eisenberg","orcid":"https://orcid.org/0000-0002-7669-9781"},"institutions":[{"id":"https://openalex.org/I79576946","display_name":"University of Pennsylvania","ror":"https://ror.org/00b30xv10","country_code":"US","type":"education","lineage":["https://openalex.org/I79576946"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Richard A. Eisenberg","raw_affiliation_strings":["University of Pennsylvania, Philadelphia, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, Philadelphia, PA, USA","institution_ids":["https://openalex.org/I79576946"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5045726166","display_name":"Jan Stolarek","orcid":"https://orcid.org/0000-0002-0140-5689"},"institutions":[{"id":"https://openalex.org/I188884621","display_name":"Lodz University of Technology","ror":"https://ror.org/00s8fpf52","country_code":"PL","type":"education","lineage":["https://openalex.org/I188884621"]}],"countries":["PL"],"is_corresponding":false,"raw_author_name":"Jan Stolarek","raw_affiliation_strings":["Politechnika \u0141\u00f3dzka, \u0141\u00f3dzka, Poland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Politechnika \u0141\u00f3dzka, \u0141\u00f3dzka, Poland","institution_ids":["https://openalex.org/I188884621"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.4812,"has_fulltext":false,"cited_by_count":22,"citation_normalized_percentile":{"value":0.91368771,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"95","last_page":"106"},"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.9955999851226807,"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.994700014591217,"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/haskell","display_name":"Haskell","score":0.9907737970352173},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8074278831481934},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7486628890037537},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.7382990121841431},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7225812673568726},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5916080474853516},{"id":"https://openalex.org/keywords/term","display_name":"Term (time)","score":0.5516534447669983},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5315508842468262},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3880252242088318}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9907737970352173},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8074278831481934},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7486628890037537},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.7382990121841431},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7225812673568726},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5916080474853516},{"id":"https://openalex.org/C61797465","wikidata":"https://www.wikidata.org/wiki/Q1188986","display_name":"Term (time)","level":2,"score":0.5516534447669983},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5315508842468262},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3880252242088318},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/2633357.2633361","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2633357.2633361","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2014 ACM SIGPLAN symposium on Haskell","raw_type":"proceedings-article"},{"id":"pmh:oai:pure.ed.ac.uk:openaire/de8226a9-912f-4b03-9ea0-d57fdec50a29","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/de8226a9-912f-4b03-9ea0-d57fdec50a29","pdf_url":null,"source":{"id":"https://openalex.org/S4306400321","display_name":"Edinburgh Research Explorer (University of Edinburgh)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I98677209","host_organization_name":"University of Edinburgh","host_organization_lineage":["https://openalex.org/I98677209"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Eisenberg, R A & Stolarek, J 2014, Promoting Functions to Type Families in Haskell. in Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell. Haskell '14, New York, NY, USA, pp. 95-106. https://doi.org/10.1145/2633357.2633361","raw_type":"contributionToPeriodical"},{"id":"pmh:oai:pure.ed.ac.uk:publications/de8226a9-912f-4b03-9ea0-d57fdec50a29","is_oa":false,"landing_page_url":"http://hdl.handle.net/20.500.11820/de8226a9-912f-4b03-9ea0-d57fdec50a29","pdf_url":null,"source":{"id":"https://openalex.org/S4406922455","display_name":"Edinburgh Research Explorer","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""}],"best_oa_location":{"id":"pmh:oai:pure.ed.ac.uk:openaire/de8226a9-912f-4b03-9ea0-d57fdec50a29","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/de8226a9-912f-4b03-9ea0-d57fdec50a29","pdf_url":null,"source":{"id":"https://openalex.org/S4306400321","display_name":"Edinburgh Research Explorer (University of Edinburgh)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I98677209","host_organization_name":"University of Edinburgh","host_organization_lineage":["https://openalex.org/I98677209"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Eisenberg, R A & Stolarek, J 2014, Promoting Functions to Type Families in Haskell. in Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell. Haskell '14, New York, NY, USA, pp. 95-106. https://doi.org/10.1145/2633357.2633361","raw_type":"contributionToPeriodical"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G3987589001","display_name":"SHF: SMALL: Dependently-typed Haskell","funder_award_id":"1116620","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":31,"referenced_works":["https://openalex.org/W775976006","https://openalex.org/W1532865120","https://openalex.org/W1594279870","https://openalex.org/W1827112781","https://openalex.org/W1926572647","https://openalex.org/W1968424997","https://openalex.org/W1989642656","https://openalex.org/W2009775190","https://openalex.org/W2028880435","https://openalex.org/W2043416466","https://openalex.org/W2059895047","https://openalex.org/W2069858276","https://openalex.org/W2096529083","https://openalex.org/W2104644663","https://openalex.org/W2107214848","https://openalex.org/W2112474400","https://openalex.org/W2118172707","https://openalex.org/W2118349261","https://openalex.org/W2125690388","https://openalex.org/W2129777450","https://openalex.org/W2131916293","https://openalex.org/W2140647971","https://openalex.org/W2156285626","https://openalex.org/W2168938117","https://openalex.org/W2182283312","https://openalex.org/W2741285182","https://openalex.org/W4246781209","https://openalex.org/W4285719527","https://openalex.org/W6631999538","https://openalex.org/W6638774856","https://openalex.org/W6685798501"],"related_works":["https://openalex.org/W1757338326","https://openalex.org/W2192862863","https://openalex.org/W1967226206","https://openalex.org/W2098374496","https://openalex.org/W1583431014","https://openalex.org/W4246781209","https://openalex.org/W1573380057","https://openalex.org/W2129129872","https://openalex.org/W4297749046","https://openalex.org/W1601811574"],"abstract_inverted_index":{"Haskell,":[0],"as":[1,19],"implemented":[2],"in":[3],"the":[4,28,31,43,76],"Glasgow":[5],"Haskell":[6],"Compiler":[7],"(GHC),":[8],"is":[9,37,81,122],"enriched":[10],"with":[11,64],"many":[12,39],"extensions":[13],"that":[14,103],"support":[15],"type-level":[16,32],"programming,":[17],"such":[18],"promoted":[20],"datatypes,":[21],"kind":[22],"polymorphism,":[23],"and":[24,53,83,98,126],"type":[25,77,93,117],"families.":[26,94],"Yet,":[27],"expressiveness":[29],"of":[30,67,85,90,125],"language":[33],"remains":[34],"limited.":[35],"It":[36],"missing":[38],"features":[40,102],"present":[41,60],"at":[42,75],"term":[44],"level,":[45],"including":[46],"case":[47],"expressions,":[48],"anonymous":[49],"functions,":[50,52],"partially-applied":[51],"let":[54],"expressions.":[55],"In":[56,107],"this":[57],"paper,":[58],"we":[59,110],"an":[61],"algorithm":[62],"-":[63,69],"a":[65,87,112],"proof":[66],"correctness":[68],"to":[70,92],"encode":[71],"these":[72],"term-level":[73,101],"constructs":[74],"level.":[78],"Our":[79],"approach":[80],"automated":[82],"capable":[84,124],"promoting":[86],"wide":[88],"array":[89],"functions":[91],"We":[95],"also":[96],"highlight":[97],"discuss":[99],"those":[100],"are":[104],"not":[105],"promotable.":[106],"so":[108],"doing,":[109],"offer":[111],"critique":[113],"on":[114],"GHC's":[115],"existing":[116],"system,":[118],"showing":[119],"what":[120],"it":[121,128],"already":[123],"where":[127],"may":[129],"want":[130],"improvement.":[131]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":3},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":5},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":2}],"updated_date":"2026-07-30T17:31:21.811387","created_date":"2025-10-10T00:00:00"}
