{"id":"https://openalex.org/W2515060297","doi":"https://doi.org/10.1145/2951913.2951914","title":"Ghostbuster: a tool for simplifying and converting GADTs","display_name":"Ghostbuster: a tool for simplifying and converting GADTs","publication_year":2016,"publication_date":"2016-08-29","ids":{"openalex":"https://openalex.org/W2515060297","doi":"https://doi.org/10.1145/2951913.2951914","mag":"2515060297"},"language":"en","primary_location":{"id":"doi:10.1145/2951913.2951914","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2951913.2951914","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2951913.2951914","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/2951913.2951914","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5079180368","display_name":"Trevor L. McDonell","orcid":"https://orcid.org/0000-0001-7806-9751"},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Trevor L. McDonell","raw_affiliation_strings":["Indiana University, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, USA","institution_ids":["https://openalex.org/I592451"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5062315818","display_name":"Timothy A. K. Zakian","orcid":null},"institutions":[{"id":"https://openalex.org/I40120149","display_name":"University of Oxford","ror":"https://ror.org/052gg0110","country_code":"GB","type":"education","lineage":["https://openalex.org/I40120149"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Timothy A. K. Zakian","raw_affiliation_strings":["Oxford University, UK"],"affiliations":[{"raw_affiliation_string":"Oxford University, UK","institution_ids":["https://openalex.org/I40120149"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5074262851","display_name":"Matteo Cimini","orcid":"https://orcid.org/0000-0003-0162-9997"},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Matteo Cimini","raw_affiliation_strings":["Indiana University, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, USA","institution_ids":["https://openalex.org/I592451"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078145335","display_name":"Ryan Newton","orcid":"https://orcid.org/0000-0003-3934-9165"},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ryan R. Newton","raw_affiliation_strings":["Indiana University, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, USA","institution_ids":["https://openalex.org/I592451"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5079180368"],"corresponding_institution_ids":["https://openalex.org/I592451"],"apc_list":null,"apc_paid":null,"fwci":1.3252,"has_fulltext":true,"cited_by_count":3,"citation_normalized_percentile":{"value":0.87388479,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"338","last_page":"350"},"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.9994999766349792,"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.9994999766349792,"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/T10260","display_name":"Software Engineering Research","score":0.9947999715805054,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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.9922999739646912,"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/haskell","display_name":"Haskell","score":0.9586800336837769},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7804960608482361},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6932967901229858},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5653505325317383},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.5534268021583557},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.542781412601471},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.526566743850708},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5213990211486816},{"id":"https://openalex.org/keywords/focus","display_name":"Focus (optics)","score":0.5156199336051941},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4999232292175293},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4222012460231781},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.32123124599456787}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9586800336837769},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7804960608482361},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6932967901229858},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5653505325317383},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.5534268021583557},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.542781412601471},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.526566743850708},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5213990211486816},{"id":"https://openalex.org/C192209626","wikidata":"https://www.wikidata.org/wiki/Q190909","display_name":"Focus (optics)","level":2,"score":0.5156199336051941},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4999232292175293},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4222012460231781},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.32123124599456787},{"id":"https://openalex.org/C120665830","wikidata":"https://www.wikidata.org/wiki/Q14620","display_name":"Optics","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},{"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/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2951913.2951914","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2951913.2951914","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2951913.2951914","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/2951913.2951914","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2951913.2951914","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2951913.2951914","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1740605103","display_name":null,"funder_award_id":"1453508 and 1337242","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3274046396","display_name":null,"funder_award_id":"1453508","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G528678018","display_name":null,"funder_award_id":"1337242","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"},{"id":"https://openalex.org/F4320336183","display_name":"Clarendon Fund","ror":null}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2515060297.pdf","grobid_xml":"https://content.openalex.org/works/W2515060297.grobid-xml"},"referenced_works_count":29,"referenced_works":["https://openalex.org/W72661297","https://openalex.org/W1522049235","https://openalex.org/W1535296962","https://openalex.org/W1587287586","https://openalex.org/W1827112781","https://openalex.org/W1967061556","https://openalex.org/W1971373556","https://openalex.org/W1972301184","https://openalex.org/W1982230416","https://openalex.org/W1987203566","https://openalex.org/W2001537678","https://openalex.org/W2009775190","https://openalex.org/W2017112188","https://openalex.org/W2017532341","https://openalex.org/W2021478277","https://openalex.org/W2048536148","https://openalex.org/W2051001073","https://openalex.org/W2055372384","https://openalex.org/W2083310717","https://openalex.org/W2093737074","https://openalex.org/W2095136535","https://openalex.org/W2104216136","https://openalex.org/W2104958979","https://openalex.org/W2107214848","https://openalex.org/W2109775380","https://openalex.org/W2113739692","https://openalex.org/W2154390633","https://openalex.org/W4213090963","https://openalex.org/W6638774856"],"related_works":["https://openalex.org/W1564538666","https://openalex.org/W2526970984","https://openalex.org/W1688372159","https://openalex.org/W1528956417","https://openalex.org/W2493130382","https://openalex.org/W2145738007","https://openalex.org/W2112263414","https://openalex.org/W2971609332","https://openalex.org/W2110095505","https://openalex.org/W2779713464"],"abstract_inverted_index":{"Generalized":[0],"Algebraic":[1],"Dataypes,":[2],"or":[3],"simply":[4],"GADTs,":[5],"can":[6],"encode":[7],"non-trivial":[8],"properties":[9,18,37],"in":[10,21,38,77],"the":[11,14,71,74,81,93,97,114,123,141,154],"types":[12],"of":[13,62,73,96,137],"constructors.":[15],"Once":[16],"such":[17],"are":[19,122],"encoded":[20],"a":[22,47,55,130],"datatype,":[23],"however,":[24],"all":[25],"code":[26],"manipulating":[27],"that":[28,33,58],"datatype":[29,76],"must":[30],"provide":[31],"proof":[32],"it":[34],"maintains":[35],"these":[36,51,89],"order":[39],"to":[40,84],"typecheck.":[41],"In":[42],"this":[43],"paper,":[44],"we":[45,102,120],"take":[46],"step":[48],"towards":[49],"gradualizing":[50],"obligations.":[52],"We":[53,128],"introduce":[54],"tool,":[56],"Ghostbuster,":[57],"produces":[59],"simplified":[60,75,90,117],"versions":[61],"GADTs":[63,138],"which":[64,119],"elide":[65],"selected":[66],"type":[67],"parameters,":[68],"thereby":[69],"weakening":[70],"guarantees":[72],"exchange":[78],"for":[79,133],"reducing":[80],"obligations":[82],"necessary":[83],"manipulate":[85],"it.":[86],"Like":[87],"ornaments,":[88],"datatypes":[91,148],"preserve":[92],"recursive":[94],"structure":[95],"original,":[98],"but":[99],"unlike":[100],"ornaments":[101],"focus":[103],"on":[104,140],"information-preserving":[105],"bidirectional":[106],"transformations.":[107],"Ghostbuster":[108],"generates":[109],"type-safe":[110],"conversion":[111,151],"functions":[112,152],"between":[113,153],"original":[115],"and":[116,149],"datatypes,":[118],"prove":[121],"identity":[124],"function":[125],"when":[126],"composed.":[127],"evaluate":[129],"prototype":[131],"tool":[132],"Haskell":[134],"against":[135],"thousands":[136],"found":[139],"Hackage":[142],"package":[143],"database,":[144],"generating":[145],"simpler":[146],"Haskell'98":[147],"round-trip":[150],"two.":[155]},"counts_by_year":[{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":2}],"updated_date":"2026-04-21T08:09:41.155169","created_date":"2025-10-10T00:00:00"}
