{"id":"https://openalex.org/W2890686367","doi":"https://doi.org/10.1145/3241653.3241658","title":"Truly abstract interfaces for algebraic data types: the extractor typing problem","display_name":"Truly abstract interfaces for algebraic data types: the extractor typing problem","publication_year":2018,"publication_date":"2018-09-17","ids":{"openalex":"https://openalex.org/W2890686367","doi":"https://doi.org/10.1145/3241653.3241658","mag":"2890686367"},"language":"en","primary_location":{"id":"doi:10.1145/3241653.3241658","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3241653.3241658","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 9th ACM SIGPLAN International Symposium on Scala","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://infoscience.epfl.ch/record/261291/files/Truly%20Abstract%20Interfaces%20for%20Algebraic%20Data%20Types.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5050200223","display_name":"Nicolas Stucki","orcid":"https://orcid.org/0000-0003-1391-1375"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":true,"raw_author_name":"Nicolas Stucki","raw_affiliation_strings":["EPFL, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030151158","display_name":"Paolo G. Giarrusso","orcid":null},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Paolo G. Giarrusso","raw_affiliation_strings":["EPFL, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5114252454","display_name":"Martin Odersky","orcid":null},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Martin Odersky","raw_affiliation_strings":["EPFL, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5050200223"],"corresponding_institution_ids":["https://openalex.org/I5124864"],"apc_list":null,"apc_paid":null,"fwci":0.3258,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.67556086,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"56","last_page":"60"},"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.9993000030517578,"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.9993000030517578,"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.9965000152587891,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.984499990940094,"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/computer-science","display_name":"Computer science","score":0.7629415988922119},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.641852617263794},{"id":"https://openalex.org/keywords/algebraic-number","display_name":"Algebraic number","score":0.6286004781723022},{"id":"https://openalex.org/keywords/decoupling","display_name":"Decoupling (probability)","score":0.6100122928619385},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.5759909749031067},{"id":"https://openalex.org/keywords/extractor","display_name":"Extractor","score":0.555743932723999},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.45810556411743164},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.44239819049835205},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4074980318546295},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.38434624671936035},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.18768733739852905},{"id":"https://openalex.org/keywords/engineering","display_name":"Engineering","score":0.06201663613319397}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7629415988922119},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.641852617263794},{"id":"https://openalex.org/C9376300","wikidata":"https://www.wikidata.org/wiki/Q168817","display_name":"Algebraic number","level":2,"score":0.6286004781723022},{"id":"https://openalex.org/C205606062","wikidata":"https://www.wikidata.org/wiki/Q5249645","display_name":"Decoupling (probability)","level":2,"score":0.6100122928619385},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.5759909749031067},{"id":"https://openalex.org/C117978034","wikidata":"https://www.wikidata.org/wiki/Q5422192","display_name":"Extractor","level":2,"score":0.555743932723999},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.45810556411743164},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.44239819049835205},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4074980318546295},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.38434624671936035},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.18768733739852905},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.06201663613319397},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.0},{"id":"https://openalex.org/C133731056","wikidata":"https://www.wikidata.org/wiki/Q4917288","display_name":"Control engineering","level":1,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"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/C21880701","wikidata":"https://www.wikidata.org/wiki/Q2144042","display_name":"Process engineering","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3241653.3241658","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3241653.3241658","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 9th ACM SIGPLAN International Symposium on Scala","raw_type":"proceedings-article"},{"id":"pmh:oai:infoscience.epfl.ch:261291","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/record/261291/files/Truly%20Abstract%20Interfaces%20for%20Algebraic%20Data%20Types.pdf","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"conference proceedings"}],"best_oa_location":{"id":"pmh:oai:infoscience.epfl.ch:261291","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/record/261291/files/Truly%20Abstract%20Interfaces%20for%20Algebraic%20Data%20Types.pdf","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"conference proceedings"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G5291884993","display_name":null,"funder_award_id":"200021_166154","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"}],"funders":[{"id":"https://openalex.org/F4320320924","display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","ror":"https://ror.org/00yjd3n13"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":21,"referenced_works":["https://openalex.org/W194952179","https://openalex.org/W221670187","https://openalex.org/W1577182889","https://openalex.org/W1606121052","https://openalex.org/W1988549141","https://openalex.org/W2063553958","https://openalex.org/W2109795737","https://openalex.org/W2110464036","https://openalex.org/W2111151482","https://openalex.org/W2114980032","https://openalex.org/W2121787849","https://openalex.org/W2150101804","https://openalex.org/W2289066165","https://openalex.org/W2395838510","https://openalex.org/W2555814573","https://openalex.org/W2561675875","https://openalex.org/W2592188706","https://openalex.org/W2772827996","https://openalex.org/W2890686367","https://openalex.org/W4230441739","https://openalex.org/W4237211893"],"related_works":["https://openalex.org/W4248962295","https://openalex.org/W2911968761","https://openalex.org/W4210820774","https://openalex.org/W2016525881","https://openalex.org/W2980326929","https://openalex.org/W4294335159","https://openalex.org/W2287183925","https://openalex.org/W1568025667","https://openalex.org/W1987975642","https://openalex.org/W3101427607"],"abstract_inverted_index":{"Pattern":[0],"matching":[1,26],"enables":[2],"inspecting":[3],"algebraic":[4,16],"data":[5,17,29],"types,":[6],"but":[7],"typically":[8],"prevents":[9],"hiding":[10],"the":[11,14,35,44],"implementation":[12],"of":[13],"matched":[15],"type.":[18],"In":[19],"Scala,":[20],"instead,":[21],"extractors":[22],"also":[23],"allow":[24],"pattern":[25],"on":[27,34],"non-algebraic":[28],"types":[30],"and":[31],"invoking":[32],"methods":[33],"obtained":[36],"objects,":[37],"while":[38],"partially":[39],"decoupling":[40],"API":[41,45],"consumers":[42],"from":[43],"implementation.":[46]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2018,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
