{"id":"https://openalex.org/W3109017117","doi":"https://doi.org/10.1145/3428273","title":"Digging for fold: synthesis-aided API discovery for Haskell","display_name":"Digging for fold: synthesis-aided API discovery for Haskell","publication_year":2020,"publication_date":"2020-11-13","ids":{"openalex":"https://openalex.org/W3109017117","doi":"https://doi.org/10.1145/3428273","mag":"3109017117"},"language":"en","primary_location":{"id":"doi:10.1145/3428273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428273","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428273","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3428273","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5067742382","display_name":"Michael B. James","orcid":"https://orcid.org/0009-0007-2219-9355"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael B. James","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5056167925","display_name":"Zheng Guo","orcid":"https://orcid.org/0000-0002-0927-4011"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Zheng Guo","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5101673728","display_name":"Ziteng Wang","orcid":"https://orcid.org/0009-0001-8487-8093"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ziteng Wang","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011658011","display_name":"Shivani Doshi","orcid":null},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Shivani Doshi","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5079058381","display_name":"Hila Peleg","orcid":"https://orcid.org/0000-0002-0107-5659"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Hila Peleg","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5002412544","display_name":"Ranjit Jhala","orcid":"https://orcid.org/0000-0002-1802-9421"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ranjit Jhala","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5090671359","display_name":"Nadia Polikarpova","orcid":"https://orcid.org/0000-0001-5571-173X"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Nadia Polikarpova","raw_affiliation_strings":["University of California at San Diego, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":7,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.7848,"has_fulltext":true,"cited_by_count":18,"citation_normalized_percentile":{"value":0.92568186,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":98},"biblio":{"volume":"4","issue":"OOPSLA","first_page":"1","last_page":"27"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9995999932289124,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9995999932289124,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.9973000288009644,"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/haskell","display_name":"Haskell","score":0.9832912683486938},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8561163544654846},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6276808977127075},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5956094861030579},{"id":"https://openalex.org/keywords/fold","display_name":"Fold (higher-order function)","score":0.545353353023529},{"id":"https://openalex.org/keywords/program-synthesis","display_name":"Program synthesis","score":0.4427729845046997},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.42428362369537354},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.42105332016944885},{"id":"https://openalex.org/keywords/digging","display_name":"Digging","score":0.4157167971134186}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9832912683486938},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8561163544654846},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6276808977127075},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5956094861030579},{"id":"https://openalex.org/C53942344","wikidata":"https://www.wikidata.org/wiki/Q951651","display_name":"Fold (higher-order function)","level":2,"score":0.545353353023529},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.4427729845046997},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.42428362369537354},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.42105332016944885},{"id":"https://openalex.org/C2779080342","wikidata":"https://www.wikidata.org/wiki/Q4232202","display_name":"Digging","level":2,"score":0.4157167971134186},{"id":"https://openalex.org/C166957645","wikidata":"https://www.wikidata.org/wiki/Q23498","display_name":"Archaeology","level":1,"score":0.0},{"id":"https://openalex.org/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3428273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428273","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428273","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3428273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428273","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428273","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6182133220","display_name":null,"funder_award_id":"1911149","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":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3109017117.pdf","grobid_xml":"https://content.openalex.org/works/W3109017117.grobid-xml"},"referenced_works_count":16,"referenced_works":["https://openalex.org/W979215280","https://openalex.org/W1514516864","https://openalex.org/W2029976661","https://openalex.org/W2059895047","https://openalex.org/W2097335450","https://openalex.org/W2119717320","https://openalex.org/W2132525863","https://openalex.org/W2144952376","https://openalex.org/W2157976942","https://openalex.org/W2219864925","https://openalex.org/W2761958682","https://openalex.org/W2964362549","https://openalex.org/W2995341674","https://openalex.org/W4232188856","https://openalex.org/W4237412827","https://openalex.org/W4244488020"],"related_works":["https://openalex.org/W2112263414","https://openalex.org/W1602185604","https://openalex.org/W3004782279","https://openalex.org/W2028779182","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W4296274916","https://openalex.org/W2474047139","https://openalex.org/W52864878"],"abstract_inverted_index":{"We":[0],"present":[1],"Hoogle+,":[2],"a":[3,15,20,22,30,35,97,147],"web-based":[4],"API":[5,142],"discovery":[6],"tool":[7,33],"for":[8],"Haskell.":[9],"A":[10],"Hoogle+":[11,58,138,164],"user":[12,148],"can":[13,123],"specify":[14],"programming":[16],"task":[17],"using":[18],"either":[19],"type,":[21],"set":[23],"of":[24,37,52,57,137,153],"input-output":[25],"tests,":[26],"or":[27],"both.":[28],"Given":[29],"specification,":[31],"the":[32,131,135],"returns":[34],"list":[36],"matching":[38],"programs":[39,90],"composed":[40],"from":[41,71,83],"functions":[42],"in":[43],"popular":[44],"Haskell":[45,155],"libraries,":[46],"and":[47,103,169],"annotated":[48],"with":[49,92,140,150,163],"automatically-generated":[50],"examples":[51],"their":[53],"behavior.":[54],"These":[55],"features":[56],"are":[59],"powered":[60],"by":[61],"three":[62],"novel":[63],"techniques.":[64],"First,":[65],"to":[66,87,112,117,126,130,172],"enable":[67],"efficient":[68],"type-directed":[69],"synthesis":[70,105],"tests":[72,84],"only,":[73],"we":[74,95,109,145],"develop":[75,96],"an":[76],"algorithm":[77],"that":[78,99,122,160],"infers":[79],"likely":[80],"type":[81],"specifications":[82],".":[85,107],"Second,":[86],"return":[88],"high-quality":[89],"even":[91],"ambiguous":[93],"specifications,":[94],"technique":[98,116],"automatically":[100,118],"eliminates":[101],"meaningless":[102],"repetitive":[104],"results":[106],"Finally,":[108],"show":[110],"how":[111],"extend":[113],"this":[114],"elimination":[115],"generate":[119],"informative":[120],"inputs":[121],"be":[124],"used":[125],"demonstrate":[127],"program":[128],"behavior":[129],"user.":[132],"To":[133],"evaluate":[134],"effectiveness":[136],"compared":[139],"traditional":[141],"search":[143],"techniques,":[144],"perform":[146],"study":[149,158],"30":[151],"participants":[152],"varying":[154],"proficiency.":[156],"The":[157],"shows":[159],"programmers":[161],"equipped":[162],"generally":[165],"solve":[166,173],"tasks":[167,176],"faster":[168],"were":[170],"able":[171],"50%":[174],"more":[175],"overall.":[177]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":5},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":5},{"year":2021,"cited_by_count":2}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
