{"id":"https://openalex.org/W4307731888","doi":"https://doi.org/10.1145/3563304","title":"MLstruct: principal type inference in a Boolean algebra of structural types","display_name":"MLstruct: principal type inference in a Boolean algebra of structural types","publication_year":2022,"publication_date":"2022-10-31","ids":{"openalex":"https://openalex.org/W4307731888","doi":"https://doi.org/10.1145/3563304"},"language":"en","primary_location":{"id":"doi:10.1145/3563304","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563304","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563304","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/3563304","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5002106868","display_name":"Lionel Parreaux","orcid":"https://orcid.org/0000-0002-8805-0728"},"institutions":[{"id":"https://openalex.org/I200769079","display_name":"Hong Kong University of Science and Technology","ror":"https://ror.org/00q4vv597","country_code":"HK","type":"education","lineage":["https://openalex.org/I200769079"]}],"countries":["HK"],"is_corresponding":true,"raw_author_name":"Lionel Parreaux","raw_affiliation_strings":["Hong Kong University of Science and Technology, China"],"raw_orcid":"https://orcid.org/0000-0002-8805-0728","affiliations":[{"raw_affiliation_string":"Hong Kong University of Science and Technology, China","institution_ids":["https://openalex.org/I200769079"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5040131798","display_name":"Chun Yin Chau","orcid":null},"institutions":[{"id":"https://openalex.org/I200769079","display_name":"Hong Kong University of Science and Technology","ror":"https://ror.org/00q4vv597","country_code":"HK","type":"education","lineage":["https://openalex.org/I200769079"]}],"countries":["HK"],"is_corresponding":false,"raw_author_name":"Chun Yin Chau","raw_affiliation_strings":["Hong Kong University of Science and Technology, China"],"raw_orcid":"https://orcid.org/0000-0003-0323-6644","affiliations":[{"raw_affiliation_string":"Hong Kong University of Science and Technology, China","institution_ids":["https://openalex.org/I200769079"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5002106868"],"corresponding_institution_ids":["https://openalex.org/I200769079"],"apc_list":null,"apc_paid":null,"fwci":3.1924,"has_fulltext":true,"cited_by_count":27,"citation_normalized_percentile":{"value":0.92861447,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":96,"max":100},"biblio":{"volume":"6","issue":"OOPSLA2","first_page":"449","last_page":"478"},"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.9997000098228455,"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.9997000098228455,"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.9977999925613403,"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.9894000291824341,"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/subtyping","display_name":"Subtyping","score":0.7520883083343506},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6838103532791138},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.6746904850006104},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6279429793357849},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.5795310139656067},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.48957356810569763},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4844777584075928},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.4433669447898865},{"id":"https://openalex.org/keywords/negation","display_name":"Negation","score":0.4421229362487793},{"id":"https://openalex.org/keywords/intersection","display_name":"Intersection (aeronautics)","score":0.4153577983379364},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.36082351207733154},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.3577916622161865}],"concepts":[{"id":"https://openalex.org/C83852419","wikidata":"https://www.wikidata.org/wiki/Q2713292","display_name":"Subtyping","level":2,"score":0.7520883083343506},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6838103532791138},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.6746904850006104},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6279429793357849},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.5795310139656067},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.48957356810569763},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4844777584075928},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.4433669447898865},{"id":"https://openalex.org/C2185349","wikidata":"https://www.wikidata.org/wiki/Q190558","display_name":"Negation","level":2,"score":0.4421229362487793},{"id":"https://openalex.org/C64543145","wikidata":"https://www.wikidata.org/wiki/Q162942","display_name":"Intersection (aeronautics)","level":2,"score":0.4153577983379364},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.36082351207733154},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.3577916622161865},{"id":"https://openalex.org/C146978453","wikidata":"https://www.wikidata.org/wiki/Q3798668","display_name":"Aerospace engineering","level":1,"score":0.0},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.0},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3563304","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563304","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563304","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"},{"id":"pmh:oai:repository.hkust.edu.hk:1783.1-125942","is_oa":false,"landing_page_url":"https://repository.hkust.edu.hk/ir/Record/1783.1-125942","pdf_url":null,"source":{"id":"https://openalex.org/S4306401796","display_name":"Rare & Special e-Zone (The Hong Kong University of Science and Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I200769079","host_organization_name":"Hong Kong University of Science and Technology","host_organization_lineage":["https://openalex.org/I200769079"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Article"}],"best_oa_location":{"id":"doi:10.1145/3563304","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563304","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563304","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":[{"score":0.7400000095367432,"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4307731888.pdf","grobid_xml":"https://content.openalex.org/works/W4307731888.grobid-xml"},"referenced_works_count":50,"referenced_works":["https://openalex.org/W175791261","https://openalex.org/W1505718642","https://openalex.org/W1507723317","https://openalex.org/W1527933453","https://openalex.org/W1557561422","https://openalex.org/W1559945648","https://openalex.org/W1703087989","https://openalex.org/W1963954367","https://openalex.org/W1969093922","https://openalex.org/W1970227944","https://openalex.org/W1973186567","https://openalex.org/W1975280443","https://openalex.org/W1988897846","https://openalex.org/W1990370351","https://openalex.org/W2001744589","https://openalex.org/W2022443117","https://openalex.org/W2041659737","https://openalex.org/W2051981528","https://openalex.org/W2055292912","https://openalex.org/W2068457689","https://openalex.org/W2081992169","https://openalex.org/W2085670481","https://openalex.org/W2090415524","https://openalex.org/W2092120865","https://openalex.org/W2092632814","https://openalex.org/W2093036100","https://openalex.org/W2101085206","https://openalex.org/W2102699068","https://openalex.org/W2123727486","https://openalex.org/W2128529251","https://openalex.org/W2131770667","https://openalex.org/W2156211387","https://openalex.org/W2156604292","https://openalex.org/W2157821258","https://openalex.org/W2163976959","https://openalex.org/W2166822586","https://openalex.org/W2295020882","https://openalex.org/W2415457035","https://openalex.org/W2898536371","https://openalex.org/W3027723509","https://openalex.org/W3047158069","https://openalex.org/W3106786378","https://openalex.org/W3194305276","https://openalex.org/W3215094100","https://openalex.org/W4229652664","https://openalex.org/W4249075482","https://openalex.org/W4251852318","https://openalex.org/W4294840040","https://openalex.org/W6893946158","https://openalex.org/W6948014394"],"related_works":["https://openalex.org/W1993590887","https://openalex.org/W3134090126","https://openalex.org/W3027723509","https://openalex.org/W2733168542","https://openalex.org/W2563592207","https://openalex.org/W4298104918","https://openalex.org/W2552165488","https://openalex.org/W1510917942","https://openalex.org/W1810290248","https://openalex.org/W1595983599"],"abstract_inverted_index":{"Intersection":[0],"and":[1,19,57,62,114,124,146,166],"union":[2],"types":[3,33],"are":[4],"becoming":[5],"more":[6],"popular":[7],"by":[8],"the":[9,12,88,106,128,158],"day,":[10],"entering":[11],"mainstream":[13],"in":[14,46],"programming":[15,168],"languages":[16,169],"like":[17],"TypeScript":[18],"Scala":[20],"3.":[21],"Yet,":[22],"no":[23],"language":[24,49,110],"so":[25],"far":[26],"has":[27],"managed":[28],"to":[29,43,142,156],"combine":[30],"these":[31],"powerful":[32,92],"with":[34,50,170],"principal":[35,64],"polymorphic":[36],"type":[37,65,148,162],"inference.":[38,66],"We":[39],"present":[40,165],"a":[41,48,75,91,121,131,144],"solution":[42],"this":[44,152],"problem":[45],"MLstruct,":[47],"subtyped":[51],"records,":[52],"equirecursive":[53],"types,":[54],"first-class":[55],"unions":[56],"intersections,":[58],"class-based":[59],"instance":[60],"matching,":[61],"ML-style":[63],"While":[67],"MLstruct":[68],"is":[69],"mostly":[70],"structurally":[71],"typed,":[72],"it":[73,84],"contains":[74],"healthy":[76],"sprinkle":[77],"of":[78,90,94,108,130,160],"nominality":[79],"for":[80,164],"classes,":[81],"which":[82],"gives":[83,138],"desirable":[85],"semantics,":[86],"enabling":[87],"expression":[89],"form":[93,120],"extensible":[95],"variants":[96],"that":[97,127],"does":[98],"not":[99],"need":[100],"row":[101],"variables.":[102],"Technically,":[103],"we":[104,125,154],"define":[105],"constructs":[107],"our":[109],"using":[111],"conjunction,":[112],"disjunction,":[113],"negation":[115],"connectives,":[116],"making":[117],"sure":[118],"they":[119],"Boolean":[122],"algebra,":[123],"show":[126],"addition":[129],"few":[132],"nonstandard":[133],"but":[134],"sound":[135,145],"subtyping":[136,172],"rules":[137],"us":[139],"enough":[140],"structure":[141],"derive":[143],"complete":[147],"inference":[149,163],"algorithm.":[150],"With":[151],"work,":[153],"hope":[155],"foster":[157],"development":[159],"better":[161],"future":[167],"expressive":[171],"systems.":[173]},"counts_by_year":[{"year":2026,"cited_by_count":4},{"year":2025,"cited_by_count":8},{"year":2024,"cited_by_count":8},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":3}],"updated_date":"2026-05-13T08:25:38.343686","created_date":"2025-10-10T00:00:00"}
