{"id":"https://openalex.org/W2889794696","doi":"https://doi.org/10.23638/lmcs-16(1:15)2020","title":"Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)","display_name":"Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)","publication_year":2022,"publication_date":"2022-02-22","ids":{"openalex":"https://openalex.org/W2889794696","doi":"https://doi.org/10.23638/lmcs-16(1:15)2020","mag":"2889794696"},"language":"en","primary_location":{"id":"doi:10.23638/lmcs-16(1:15)2020","is_oa":true,"landing_page_url":"https://doi.org/10.23638/lmcs-16(1:15)2020","pdf_url":"https://lmcs.episciences.org/6098/pdf","source":{"id":"https://openalex.org/S114379355","display_name":"Logical Methods in Computer Science","issn_l":"1860-5974","issn":["1860-5974"],"is_oa":true,"is_in_doaj":true,"is_core":true,"host_organization":"https://openalex.org/P4310313916","host_organization_name":"Logical Methods in Computer Science e.V.","host_organization_lineage":["https://openalex.org/P4310313916"],"host_organization_lineage_names":["Logical Methods in Computer Science e.V."],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Logical Methods in Computer Science","raw_type":"journal-article"},"type":"preprint","indexed_in":["arxiv","crossref","datacite","doaj"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://lmcs.episciences.org/6098/pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5084702945","display_name":"Giuseppe Castagna","orcid":"https://orcid.org/0000-0003-0951-7535"},"institutions":[{"id":"https://openalex.org/I1294671590","display_name":"Centre National de la Recherche Scientifique","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]},{"id":"https://openalex.org/I204730241","display_name":"Universit\u00e9 Paris Cit\u00e9","ror":"https://ror.org/05f82e368","country_code":"FR","type":"education","lineage":["https://openalex.org/I204730241"]},{"id":"https://openalex.org/I4210117673","display_name":"Institut de Recherche en Informatique Fondamentale","ror":"https://ror.org/02krdtz55","country_code":"FR","type":"facility","lineage":["https://openalex.org/I1294671590","https://openalex.org/I1294671590","https://openalex.org/I204730241","https://openalex.org/I4210089394","https://openalex.org/I4210117673","https://openalex.org/I4210139971"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Giuseppe Castagna","raw_affiliation_strings":["IRIF (UMR_8243) - Institut de Recherche en Informatique Fondamentale (Universit\u00e9 de Paris\r\nB\u00e2timent Sophie Germain, Case courrier 7014\r\n8 Place Aur\u00e9lie Nemours\r\n75205 Paris Cedex 13  - France)","CNRS - Centre National de la Recherche Scientifique (France)"],"affiliations":[{"raw_affiliation_string":"IRIF (UMR_8243) - Institut de Recherche en Informatique Fondamentale (Universit\u00e9 de Paris\r\nB\u00e2timent Sophie Germain, Case courrier 7014\r\n8 Place Aur\u00e9lie Nemours\r\n75205 Paris Cedex 13  - France)","institution_ids":["https://openalex.org/I4210117673","https://openalex.org/I204730241"]},{"raw_affiliation_string":"CNRS - Centre National de la Recherche Scientifique (France)","institution_ids":["https://openalex.org/I1294671590"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5084702945"],"corresponding_institution_ids":["https://openalex.org/I1294671590","https://openalex.org/I204730241","https://openalex.org/I4210117673"],"apc_list":null,"apc_paid":null,"fwci":0.1388,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.50737807,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":"Volume 16, Issue 1","issue":null,"first_page":null,"last_page":null},"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.9966999888420105,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9925000071525574,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.72859787940979},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6817681789398193},{"id":"https://openalex.org/keywords/reading","display_name":"Reading (process)","score":0.5896307229995728},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5760186910629272},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.47458764910697937},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.45982033014297485},{"id":"https://openalex.org/keywords/covariance","display_name":"Covariance","score":0.4316059350967407},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.4278477132320404},{"id":"https://openalex.org/keywords/excuse","display_name":"Excuse","score":0.4188380539417267},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.41717270016670227},{"id":"https://openalex.org/keywords/mathematics-education","display_name":"Mathematics education","score":0.3801598846912384},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.3474423885345459},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.3151457905769348},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.14812394976615906},{"id":"https://openalex.org/keywords/law","display_name":"Law","score":0.09798544645309448}],"concepts":[{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.72859787940979},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6817681789398193},{"id":"https://openalex.org/C554936623","wikidata":"https://www.wikidata.org/wiki/Q199657","display_name":"Reading (process)","level":2,"score":0.5896307229995728},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5760186910629272},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.47458764910697937},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.45982033014297485},{"id":"https://openalex.org/C178650346","wikidata":"https://www.wikidata.org/wiki/Q201984","display_name":"Covariance","level":2,"score":0.4316059350967407},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.4278477132320404},{"id":"https://openalex.org/C2777998198","wikidata":"https://www.wikidata.org/wiki/Q552754","display_name":"Excuse","level":2,"score":0.4188380539417267},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.41717270016670227},{"id":"https://openalex.org/C145420912","wikidata":"https://www.wikidata.org/wiki/Q853077","display_name":"Mathematics education","level":1,"score":0.3801598846912384},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3474423885345459},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.3151457905769348},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.14812394976615906},{"id":"https://openalex.org/C199539241","wikidata":"https://www.wikidata.org/wiki/Q7748","display_name":"Law","level":1,"score":0.09798544645309448},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","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/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"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/C17744445","wikidata":"https://www.wikidata.org/wiki/Q36442","display_name":"Political science","level":0,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.23638/lmcs-16(1:15)2020","is_oa":true,"landing_page_url":"https://doi.org/10.23638/lmcs-16(1:15)2020","pdf_url":"https://lmcs.episciences.org/6098/pdf","source":{"id":"https://openalex.org/S114379355","display_name":"Logical Methods in Computer Science","issn_l":"1860-5974","issn":["1860-5974"],"is_oa":true,"is_in_doaj":true,"is_core":true,"host_organization":"https://openalex.org/P4310313916","host_organization_name":"Logical Methods in Computer Science e.V.","host_organization_lineage":["https://openalex.org/P4310313916"],"host_organization_lineage_names":["Logical Methods in Computer Science e.V."],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Logical Methods in Computer Science","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:1809.01427","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1809.01427","pdf_url":"https://arxiv.org/pdf/1809.01427","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":null,"raw_type":"text"},{"id":"doi:10.48550/arxiv.1809.01427","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.1809.01427","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"},{"id":"mag:3097352678","is_oa":true,"landing_page_url":"https://arxiv.org/pdf/1809.01427.pdf","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":"arXiv (Cornell University)","raw_type":null}],"best_oa_location":{"id":"doi:10.23638/lmcs-16(1:15)2020","is_oa":true,"landing_page_url":"https://doi.org/10.23638/lmcs-16(1:15)2020","pdf_url":"https://lmcs.episciences.org/6098/pdf","source":{"id":"https://openalex.org/S114379355","display_name":"Logical Methods in Computer Science","issn_l":"1860-5974","issn":["1860-5974"],"is_oa":true,"is_in_doaj":true,"is_core":true,"host_organization":"https://openalex.org/P4310313916","host_organization_name":"Logical Methods in Computer Science e.V.","host_organization_lineage":["https://openalex.org/P4310313916"],"host_organization_lineage_names":["Logical Methods in Computer Science e.V."],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Logical Methods in Computer Science","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","score":0.8799999952316284,"display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2889794696.pdf"},"referenced_works_count":28,"referenced_works":["https://openalex.org/W167435283","https://openalex.org/W1482171176","https://openalex.org/W1505718642","https://openalex.org/W1524515856","https://openalex.org/W1525643703","https://openalex.org/W1548627669","https://openalex.org/W1966814918","https://openalex.org/W1988897846","https://openalex.org/W1990370351","https://openalex.org/W1994181029","https://openalex.org/W2002858003","https://openalex.org/W2017743728","https://openalex.org/W2047304692","https://openalex.org/W2053228623","https://openalex.org/W2072137506","https://openalex.org/W2074590804","https://openalex.org/W2075994573","https://openalex.org/W2087271899","https://openalex.org/W2087871591","https://openalex.org/W2098884586","https://openalex.org/W2099281706","https://openalex.org/W2116793756","https://openalex.org/W2171351846","https://openalex.org/W2171425038","https://openalex.org/W2295020882","https://openalex.org/W2900351133","https://openalex.org/W2965154005","https://openalex.org/W2990522395"],"related_works":["https://openalex.org/W2912657529","https://openalex.org/W2050136122","https://openalex.org/W4385536313","https://openalex.org/W4381891017","https://openalex.org/W3196095676","https://openalex.org/W3012836300","https://openalex.org/W2264209468","https://openalex.org/W2020914843","https://openalex.org/W2163981019","https://openalex.org/W3006157134"],"abstract_inverted_index":{"Twenty":[0],"years":[1],"ago,":[2],"in":[3,24,43,57,63,98,138],"an":[4,85,89],"article":[5,56],"titled":[6],"&amp;quot;Covariance":[7],"and":[8,18,30,66,101,149],"contravariance:":[9],"conflict":[10],"without":[11],"a":[12,70,161],"cause&amp;quot;,":[13],"I":[14,50,114],"argued":[15],"that":[16,55,91,129,136],"covariant":[17],"contravariant":[19],"specialization":[20],"of":[21,54,60,80,117,126,141,156,164],"method":[22],"parameters":[23],"object-oriented":[25],"programming":[26,67],"had":[27],"different":[28],"purposes":[29],"deduced":[31],"that,":[32],"not":[33],"only":[34,132],"they":[35,39],"could,":[36],"but":[37],"actually":[38],"should":[40],"both":[41],"coexist":[42],"the":[44,52,58,78,139,165],"same":[45],"language.":[46],"In":[47],"this":[48,74,81,118,153],"work":[49,154],"reexamine":[51],"result":[53],"light":[59],"recent":[61],"advances":[62],"(sub-)typing":[64],"theory":[65],"languages,":[68],"taking":[69],"fresh":[71],"look":[72],"at":[73,93],"old":[75],"issue.":[76],"Actually,":[77],"revamping":[79],"problem":[82],"is":[83,160],"just":[84],"excuse":[86],"for":[87],"writing":[88],"essay":[90],"aims":[92],"explaining":[94],"sophisticated":[95],"type-theoretic":[96],"concepts,":[97],"simple":[99],"terms":[100],"by":[102],"examples,":[103],"to":[104,120,133],"undergraduate":[105],"computer":[106],"science":[107],"students":[108],"and/or":[109],"willing":[110],"functional":[111],"programmers.":[112],"Finally,":[113],"took":[115],"advantage":[116],"opportunity":[119],"describe":[121],"some":[122,142],"undocumented":[123],"advanced":[124],"techniques":[125],"type-systems":[127],"implementation":[128],"are":[130],"known":[131],"few":[134],"insiders":[135],"dug":[137],"code":[140],"compilers:":[143],"therefore,":[144],"even":[145],"expert":[146],"language":[147],"designers":[148],"implementers":[150],"may":[151],"find":[152],"worth":[155],"reading.":[157],"Comment:":[158],"This":[159],"corrected":[162],"version":[163],"paper":[166],"arXiv:1809.01427v7":[167],"published":[168],"originally":[169],"on":[170],"Feb.":[171],"13,":[172],"2020":[173]},"counts_by_year":[{"year":2022,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":3},{"year":2017,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
