{"id":"https://openalex.org/W4412986019","doi":"https://doi.org/10.22152/programming-journal.org/2025/10/17","title":"If-T: A Benchmark for Type Narrowing","display_name":"If-T: A Benchmark for Type Narrowing","publication_year":2025,"publication_date":"2025-06-15","ids":{"openalex":"https://openalex.org/W4412986019","doi":"https://doi.org/10.22152/programming-journal.org/2025/10/17"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2025/10/17","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2025/10/17","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/2508.03830","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5100302645","display_name":"Hanwen Guo","orcid":"https://orcid.org/0009-0000-7118-2145"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Hanwen Guo","raw_affiliation_strings":["University of Utah, USA"],"affiliations":[{"raw_affiliation_string":"University of Utah, USA","institution_ids":["https://openalex.org/I223532165"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5002785598","display_name":"Ben Greenman","orcid":"https://orcid.org/0000-0001-7078-9287"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ben Greenman","raw_affiliation_strings":["University of Utah, USA"],"affiliations":[{"raw_affiliation_string":"University of Utah, USA","institution_ids":["https://openalex.org/I223532165"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5100302645"],"corresponding_institution_ids":["https://openalex.org/I223532165"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.37956076,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"10","issue":"2","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10703","display_name":"Business Process Modeling and Analysis","score":0.5942000150680542,"subfield":{"id":"https://openalex.org/subfields/1404","display_name":"Management Information Systems"},"field":{"id":"https://openalex.org/fields/14","display_name":"Business, Management and Accounting"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}},"topics":[{"id":"https://openalex.org/T10703","display_name":"Business Process Modeling and Analysis","score":0.5942000150680542,"subfield":{"id":"https://openalex.org/subfields/1404","display_name":"Management Information Systems"},"field":{"id":"https://openalex.org/fields/14","display_name":"Business, Management and Accounting"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.6110495328903198},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5242971777915955},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.41744309663772583},{"id":"https://openalex.org/keywords/biology","display_name":"Biology","score":0.19554471969604492},{"id":"https://openalex.org/keywords/geography","display_name":"Geography","score":0.17054197192192078},{"id":"https://openalex.org/keywords/cartography","display_name":"Cartography","score":0.1283603012561798}],"concepts":[{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.6110495328903198},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5242971777915955},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.41744309663772583},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.19554471969604492},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.17054197192192078},{"id":"https://openalex.org/C58640448","wikidata":"https://www.wikidata.org/wiki/Q42515","display_name":"Cartography","level":1,"score":0.1283603012561798},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.22152/programming-journal.org/2025/10/17","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2025/10/17","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:2508.03830","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2508.03830","pdf_url":"https://arxiv.org/pdf/2508.03830","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:2508.03830","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2508.03830","pdf_url":"https://arxiv.org/pdf/2508.03830","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":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W2378211422","https://openalex.org/W4321353415","https://openalex.org/W2745001401","https://openalex.org/W2130974462","https://openalex.org/W2028665553","https://openalex.org/W2086519370","https://openalex.org/W4246352526"],"abstract_inverted_index":{"**Context:**":[0],"The":[1,395],"design":[2,101,114,243],"of":[3,39,68,83,115,146,170,191,261,277,292,334,347,352,447,450],"static":[4],"type":[5,56,77,98,116,156,185,257,282,319,424,466],"systems":[6,43,118,225,430],"that":[7,21,53,138,187,196,303,308],"can":[8,356,469],"validate":[9,214],"dynamically-typed":[10],"programs":[11,195,299],"(**gradually**)":[12],"is":[13,20,135,160,251,367,420],"an":[14],"ongoing":[15],"challenge.":[16],"A":[17],"key":[18],"difficulty":[19],"dynamic":[22,45],"code":[23,216],"rarely":[24],"follows":[25],"datatype-driven":[26],"design.":[27],"Programs":[28],"instead":[29],"use":[30,357],"runtime":[31],"tests":[32],"to":[33,73,105,199,213,229,232,317,327,360,404,457],"narrow":[34],"down":[35],"the":[36,55,76,95,113,163,176,189,254,259,287,342,345,358,370,383,402,427,443],"proper":[37],"usage":[38],"incoming":[40],"data.":[41],"Type":[42,418],"for":[44,97,184,281,385,413,422,471],"languages":[46,263],"thus":[47],"need":[48,96],"a":[49,66,154,180,203,209,222,275,290,315,364,455,461,472],"**type":[50],"narrowing**":[51],"mechanism":[52],"refines":[54],"environment":[57],"along":[58],"individual":[59],"control":[60],"paths":[61],"based":[62],"on":[63,256],"dominating":[64],"tests,":[65],"form":[67],"flow-sensitive":[69],"typing.":[70],"In":[71],"order":[72],"express":[74],"refinements,":[75],"system":[78,467],"must":[79],"have":[80,273,381,434],"some":[81],"notion":[82],"sets":[84],"and":[85,92,108,126,141,158,217,267,294,306,336,372,393,411,445,479],"subsets.":[86],"Since":[87],"set-theoretic":[88],"types":[89],"are":[90,148,226,235,239,375],"computationally":[91],"ergonomically":[93],"complex,":[94],"narrowing":[99,117,147,186,210,320,415,419],"raises":[100],"questions":[102],"about":[103],"how":[104,162],"balance":[106,474],"precision":[107],"performance.":[109,248,480],"**Inquiry:**":[110],"To":[111],"date,":[112],"has":[119],"been":[120,435],"driven":[121],"by":[122,241,253,441],"intuition,":[123],"past":[124],"experience,":[125],"examples":[127,359],"from":[128],"users":[129],"in":[130,168,350,460],"various":[131],"language":[132,340],"communities.":[133],"There":[134],"no":[136],"standard":[137,155],"captures":[139],"desirable":[140],"undesirable":[142],"behaviors.":[143],"Prior":[144],"formalizations":[145],"also":[149],"significantly":[150],"more":[151],"complex":[152],"than":[153],"system,":[157],"it":[159,324],"unclear":[161],"extra":[164],"complexity":[165,349,433],"pays":[166],"off":[167],"terms":[169,351],"concrete":[171,353],"examples.":[172,338,354],"This":[173],"paper":[174],"addresses":[175],"problems":[177],"through":[178],"If-T,":[179],"language-agnostic":[181],"**design":[182],"benchmark**":[183],"characterizes":[188],"abilities":[190],"implementations":[192,374,459],"using":[193],"simple":[194],"draw":[197],"attention":[198],"fundamental":[200],"questions.":[201],"Unlike":[202,221],"traditional":[204],"performance-focused":[205],"benchmark,":[206],"If-T":[207,250,313,437,453],"measures":[208],"system's":[211],"ability":[212,403],"correct":[215],"reject":[218],"incorrect":[219],"code.":[220],"test":[223],"suite,":[224],"not":[227,310],"required":[228],"fully":[230],"conform":[231],"If-T.":[233],"Deviations":[234],"acceptable":[236],"provided":[237],"they":[238],"justified":[240],"well-reasoned":[242],"considerations,":[244],"such":[245,264,400],"as":[246,265,401,454],"compile-time":[247],"**Approach:**":[249],"guided":[252],"literature":[255],"narrowing,":[258],"documentation":[260],"gradual":[262,423],"TypeScript,":[266,388],"experiments":[268],"with":[269,431],"typechecker":[270,348],"implementations.":[271],"We":[272,380],"identified":[274],"set":[276,291],"core":[278],"technical":[279],"dimensions":[280],"narrowing.":[283],"For":[284,322,339],"each":[285,448],"dimension,":[286],"benchmark":[288,343,371,384],"contains":[289],"topics":[293],"(at":[295],"least)":[296],"two":[297],"characterizing":[298],"per":[300],"topic:":[301],"one":[302,307],"should":[304,309],"typecheck":[305],"typecheck.":[311],"**Knowledge:**":[312],"provides":[314,325],"baseline":[316],"measure":[318],"systems.":[321],"researchers,":[323],"criteria":[326],"categorize":[328],"future":[329,465],"designs":[330,468],"via":[331],"its":[332,373],"collection":[333],"positive":[335],"negative":[337],"designers,":[341],"demonstrates":[344],"payoff":[346],"Designers":[355],"decide":[361],"whether":[362],"supporting":[363],"particular":[365],"example":[366],"worthwhile.":[368],"Both":[369],"freely":[376],"available":[377],"online.":[378],"**Grounding:**":[379],"implemented":[382],"five":[386],"typecheckers:":[387],"Flow,":[389],"Typed":[390],"Racket,":[391],"mypy,":[392],"Pyright.":[394],"results":[396],"highlight":[397],"important":[398],"differences,":[399],"track":[405],"logical":[406],"implications":[407],"among":[408,475],"program":[409],"variables":[410],"typechecking":[412],"user-defined":[414],"predicates.":[416],"**Importance:**":[417],"essential":[421],"systems,":[425],"but":[426],"tradeoffs":[428,440],"between":[429],"different":[432],"unclear.":[436],"clarifies":[438],"these":[439],"illustrating":[442],"benefits":[444],"limitations":[446],"level":[449],"complexity.":[451],"With":[452],"way":[456],"assess":[458],"fair,":[462],"cross-language":[463],"manner,":[464],"strive":[470],"better":[473],"precision,":[476],"annotation":[477],"burden,":[478]},"counts_by_year":[],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
