{"id":"https://openalex.org/W7106050524","doi":"https://doi.org/10.22152/programming-journal.org/2025/10/19","title":"Filling the Gaps of Polarity: Implementing Dependent Data and Codata Types with Implicit Arguments","display_name":"Filling the Gaps of Polarity: Implementing Dependent Data and Codata Types with Implicit Arguments","publication_year":2025,"publication_date":"2025-10-15","ids":{"openalex":"https://openalex.org/W7106050524","doi":"https://doi.org/10.22152/programming-journal.org/2025/10/19"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2025/10/19","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2025/10/19","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/2511.15819","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Bohdan Liesnikov","orcid":null},"institutions":[{"id":"https://openalex.org/I98358874","display_name":"Delft University of Technology","ror":"https://ror.org/02e2c7k09","country_code":"NL","type":"education","lineage":["https://openalex.org/I98358874"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Bohdan Liesnikov","raw_affiliation_strings":["Delft University of Technology, Netherlands"],"affiliations":[{"raw_affiliation_string":"Delft University of Technology, Netherlands","institution_ids":["https://openalex.org/I98358874"]}]},{"author_position":"middle","author":{"id":null,"display_name":"David Binder","orcid":null},"institutions":[{"id":"https://openalex.org/I20581793","display_name":"University of Kent","ror":"https://ror.org/00xkeyj56","country_code":"GB","type":"education","lineage":["https://openalex.org/I20581793"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"David Binder","raw_affiliation_strings":["University of Kent, Canterbury, UK"],"affiliations":[{"raw_affiliation_string":"University of Kent, Canterbury, UK","institution_ids":["https://openalex.org/I20581793"]}]},{"author_position":"last","author":{"id":null,"display_name":"Tim S\u00fcberkr\u00fcb","orcid":null},"institutions":[{"id":"https://openalex.org/I8087733","display_name":"University of T\u00fcbingen","ror":"https://ror.org/03a1kwz48","country_code":"DE","type":"education","lineage":["https://openalex.org/I8087733"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Tim S\u00fcberkr\u00fcb","raw_affiliation_strings":["University of T\u00fcbingen, Germany"],"affiliations":[{"raw_affiliation_string":"University of T\u00fcbingen, Germany","institution_ids":["https://openalex.org/I8087733"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I98358874"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.79742043,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"10","issue":"3","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.9584000110626221,"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.9584000110626221,"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/T12490","display_name":"Software Engineering and Design Patterns","score":0.005900000222027302,"subfield":{"id":"https://openalex.org/subfields/3303","display_name":"Development"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}},{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.00559999980032444,"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/coinduction","display_name":"Coinduction","score":0.9233999848365784},{"id":"https://openalex.org/keywords/unification","display_name":"Unification","score":0.7767999768257141},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.5914999842643738},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.5486999750137329},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.41370001435279846},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.38589999079704285},{"id":"https://openalex.org/keywords/usable","display_name":"USable","score":0.3720000088214874},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.36820000410079956},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.3594000041484833},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.3450999855995178}],"concepts":[{"id":"https://openalex.org/C40220748","wikidata":"https://www.wikidata.org/wiki/Q4227156","display_name":"Coinduction","level":3,"score":0.9233999848365784},{"id":"https://openalex.org/C96146094","wikidata":"https://www.wikidata.org/wiki/Q609057","display_name":"Unification","level":2,"score":0.7767999768257141},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6603000164031982},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6137999892234802},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.5914999842643738},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.5486999750137329},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4388999938964844},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.41370001435279846},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.38589999079704285},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.3720000088214874},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.36820000410079956},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.3594000041484833},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3522000014781952},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.3450999855995178},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.3422999978065491},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.33959999680519104},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.33410000801086426},{"id":"https://openalex.org/C2164484","wikidata":"https://www.wikidata.org/wiki/Q5170150","display_name":"Core (optical fiber)","level":2,"score":0.32249999046325684},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.3109000027179718},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.30379998683929443},{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.30320000648498535},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.3012000024318695},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.29420000314712524},{"id":"https://openalex.org/C206880738","wikidata":"https://www.wikidata.org/wiki/Q431667","display_name":"Automated theorem proving","level":2,"score":0.2928999960422516},{"id":"https://openalex.org/C175971053","wikidata":"https://www.wikidata.org/wiki/Q827335","display_name":"Abstract data type","level":2,"score":0.29100000858306885},{"id":"https://openalex.org/C3746660","wikidata":"https://www.wikidata.org/wiki/Q1068763","display_name":"Rule of inference","level":2,"score":0.28610000014305115},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.28209999203681946},{"id":"https://openalex.org/C108010975","wikidata":"https://www.wikidata.org/wiki/Q500094","display_name":"Pruning","level":2,"score":0.28189998865127563},{"id":"https://openalex.org/C20528804","wikidata":"https://www.wikidata.org/wiki/Q997433","display_name":"Dependent type","level":3,"score":0.2741999924182892},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.2736999988555908},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.2653999924659729},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.26249998807907104},{"id":"https://openalex.org/C90559484","wikidata":"https://www.wikidata.org/wiki/Q778379","display_name":"Expression (computer science)","level":2,"score":0.2619999945163727},{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.26109999418258667},{"id":"https://openalex.org/C42058472","wikidata":"https://www.wikidata.org/wiki/Q810214","display_name":"Base (topology)","level":2,"score":0.2578999996185303},{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.2551000118255615}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.22152/programming-journal.org/2025/10/19","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2025/10/19","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2511.15819","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2511.15819","pdf_url":"https://arxiv.org/pdf/2511.15819","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"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":null,"raw_type":"text"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:2511.15819","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2511.15819","pdf_url":"https://arxiv.org/pdf/2511.15819","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"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":null,"raw_type":"text"},"sustainable_development_goals":[{"score":0.6344353556632996,"display_name":"No poverty","id":"https://metadata.un.org/sdg/1"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"The":[0,114],"expression":[1],"problem":[2],"describes":[3],"a":[4,13,33,42,80,105,147,158,162,181,190,223],"fundamental":[5],"tradeoff":[6],"between":[7,95],"two":[8,144],"types":[9,73,87,235],"of":[10,86,104,117,138,151,161,196,212],"extensibility:":[11],"extending":[12,32],"type":[14,27,34,96,125,153],"with":[15,35],"new":[16,36,43],"operations,":[17],"such":[18,38,110],"as":[19,39,111,222],"by":[20,40],"pattern":[21],"matching":[22],"on":[23],"an":[24,46,123],"algebraic":[25],"data":[26],"in":[28,48,199],"functional":[29],"programming,":[30],"and":[31,89,127,157,169,180,216,233],"constructors,":[37],"adding":[41],"object":[44],"implementing":[45],"interface":[47],"object-oriented":[49],"programming.":[50],"Most":[51],"dependently":[52,107,227],"typed":[53,108,228],"languages":[54,229],"have":[55],"good":[56],"support":[57,66,231],"for":[58,67,130,175,184,189,225],"the":[59,68,91,135,139,152,197,209,213],"former":[60],"style":[61,70],"through":[62,71],"inductive":[63,168,232],"types,":[64],"but":[65],"latter":[69],"coinductive":[72,170,234],"is":[74,79,120,202],"usually":[75],"much":[76],"poorer.":[77],"Polarity":[78],"language":[81],"that":[82,133,165,208,230],"treats":[83],"both":[84],"kinds":[85],"symmetrically":[88],"allows":[90],"developer":[92],"to":[93,121],"switch":[94],"representations.However,":[97],"it":[98],"currently":[99],"lacks":[100],"several":[101],"features":[102],"expected":[103],"state-of-the-art":[106],"language,":[109],"implicit":[112,131],"arguments.":[113],"central":[115],"aim":[116],"this":[118,200],"paper":[119,201],"provide":[122],"algorithmic":[124,149],"system":[126,154],"inference":[128],"algorithm":[129,164,183,215],"arguments":[132],"respect":[134],"core":[136],"symmetry":[137],"language.":[140],"Our":[141],"work":[142],"provides":[143],"key":[145],"contributions:":[146],"complete":[148],"description":[150,160],"backing":[155],"Polarity,":[156],"comprehensive":[159,210],"unification":[163,182,214],"covers":[166],"arbitrary":[167],"types.":[171],"We":[172,206],"give":[173],"rules":[174],"reduction":[176],"semantics,":[177],"conversion":[178],"checking,":[179],"pattern-matching,":[185],"which":[186],"are":[187],"essential":[188],"usable":[191],"implementation.":[192],"A":[193],"work-in-progress":[194],"implementation":[195],"algorithms":[198],"available":[203],"at":[204],"https://polarity-lang.github.io/.":[205],"expect":[207],"account":[211],"our":[217],"design":[218],"decisions":[219],"can":[220],"serve":[221],"blueprint":[224],"other":[226],"symmetrically.":[236]},"counts_by_year":[],"updated_date":"2025-11-20T23:13:51.555489","created_date":"2025-11-19T00:00:00"}
