{"id":"https://openalex.org/W2533281993","doi":"https://doi.org/10.1145/2998392.2998400","title":"Implementing higher-kinded types in Dotty","display_name":"Implementing higher-kinded types in Dotty","publication_year":2016,"publication_date":"2016-10-21","ids":{"openalex":"https://openalex.org/W2533281993","doi":"https://doi.org/10.1145/2998392.2998400","mag":"2533281993"},"language":"en","primary_location":{"id":"doi:10.1145/2998392.2998400","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2998392.2998400","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://infoscience.epfl.ch/record/222780","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5085410724","display_name":"Martin Odersky","orcid":"https://orcid.org/0009-0005-3923-8993"},"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":"Martin Odersky","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/A5045737071","display_name":"Guillaume Martres","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":"Guillaume Martres","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/A5065658268","display_name":"Dmitry Petrashko","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":"Dmitry Petrashko","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/A5085410724"],"corresponding_institution_ids":["https://openalex.org/I5124864"],"apc_list":null,"apc_paid":null,"fwci":1.7139,"has_fulltext":false,"cited_by_count":11,"citation_normalized_percentile":{"value":0.89269311,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"51","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.9998000264167786,"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.9998000264167786,"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/T11010","display_name":"Logic, Reasoning, and Knowledge","score":0.9697999954223633,"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.9564999938011169,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.8561750650405884},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8035435080528259},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7866101861000061},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6951891183853149},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6852036118507385},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5719489455223083},{"id":"https://openalex.org/keywords/lambda-calculus","display_name":"Lambda calculus","score":0.5556386709213257},{"id":"https://openalex.org/keywords/expressive-power","display_name":"Expressive power","score":0.5412667989730835},{"id":"https://openalex.org/keywords/construct","display_name":"Construct (python library)","score":0.48990529775619507},{"id":"https://openalex.org/keywords/extension","display_name":"Extension (predicate logic)","score":0.4368996024131775},{"id":"https://openalex.org/keywords/scheme","display_name":"Scheme (mathematics)","score":0.43669992685317993},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.355283260345459},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.14480933547019958}],"concepts":[{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.8561750650405884},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8035435080528259},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7866101861000061},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6951891183853149},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6852036118507385},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5719489455223083},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.5556386709213257},{"id":"https://openalex.org/C195818886","wikidata":"https://www.wikidata.org/wiki/Q5421724","display_name":"Expressive power","level":2,"score":0.5412667989730835},{"id":"https://openalex.org/C2780801425","wikidata":"https://www.wikidata.org/wiki/Q5164392","display_name":"Construct (python library)","level":2,"score":0.48990529775619507},{"id":"https://openalex.org/C2778029271","wikidata":"https://www.wikidata.org/wiki/Q5421931","display_name":"Extension (predicate logic)","level":2,"score":0.4368996024131775},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.43669992685317993},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.355283260345459},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.14480933547019958},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/2998392.2998400","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2998392.2998400","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala","raw_type":"proceedings-article"},{"id":"pmh:oai:infoscience.epfl.ch:222780","is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/222780","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":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"},{"id":"pmh:oai:infoscience.tind.io:222780","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/130854","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:222780","is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/222780","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":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":8,"referenced_works":["https://openalex.org/W1526736056","https://openalex.org/W1978680769","https://openalex.org/W1984807151","https://openalex.org/W2104204098","https://openalex.org/W2156426055","https://openalex.org/W2171747309","https://openalex.org/W2536396847","https://openalex.org/W4244046502"],"related_works":["https://openalex.org/W2905831480","https://openalex.org/W2112263414","https://openalex.org/W3004782279","https://openalex.org/W1602185604","https://openalex.org/W2028779182","https://openalex.org/W2004997206","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W4252522690","https://openalex.org/W2095136535"],"abstract_inverted_index":{"dotty":[0,105],"is":[1,76],"a":[2,19,29,52],"new,":[3],"experimental":[4],"Scala":[5],"compiler":[6],"based":[7],"on":[8,61],"DOT,":[9],"the":[10,62,68,94,104,109,122],"calculus":[11,70],"of":[12,22,32,45,67,114,124],"Dependent":[13],"Object":[14],"Types.":[15],"Higher-kinded":[16],"types":[17,40],"are":[18,41],"natural":[20],"extension":[21],"first-order":[23],"lambda":[24],"calculus,":[25],"and":[26,34,83,111,117],"have":[27,90],"been":[28],"core":[30],"construct":[31],"Haskell":[33],"Scala.":[35],"As":[36],"long":[37],"as":[38],"such":[39],"just":[42],"partial":[43],"applications":[44],"generic":[46],"classes,":[47],"they":[48],"can":[49],"be":[50,72],"given":[51],"meaning":[53],"in":[54,93,103],"DOT":[55,69],"relatively":[56],"straightforwardly.":[57],"But":[58],"general":[59],"lambdas":[60],"type":[63],"level":[64],"require":[65],"extensions":[66],"to":[71],"expressible.":[73],"This":[74],"paper":[75],"an":[77],"experience":[78],"report":[79],"where":[80],"we":[81,89],"describe":[82],"discuss":[84,108],"four":[85],"implementation":[86,125],"strategies":[87],"that":[88],"tried":[91],"out":[92],"last":[95],"three":[96],"years.":[97],"Each":[98],"strategy":[99],"was":[100],"fully":[101],"implemented":[102],"compiler.":[106],"We":[107],"usability":[110],"expressive":[112],"power":[113],"each":[115],"scheme,":[116],"give":[118],"some":[119],"indications":[120],"about":[121],"amount":[123],"difficulties":[126],"encountered.":[127]},"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":3},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
