{"id":"https://openalex.org/W2131916293","doi":"https://doi.org/10.1017/s0956796806006034","title":"Practical type inference for arbitrary-rank types","display_name":"Practical type inference for arbitrary-rank types","publication_year":2006,"publication_date":"2006-06-09","ids":{"openalex":"https://openalex.org/W2131916293","doi":"https://doi.org/10.1017/s0956796806006034","mag":"2131916293"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796806006034","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006034","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/5339FB9DAB968768874D4C20FA6F8CB6/S0956796806006034a.pdf/div-class-title-practical-type-inference-for-arbitrary-rank-types-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/5339FB9DAB968768874D4C20FA6F8CB6/S0956796806006034a.pdf/div-class-title-practical-type-inference-for-arbitrary-rank-types-div.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5027817074","display_name":"Simon Peyton Jones","orcid":"https://orcid.org/0000-0002-6085-1435"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]},{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB","US"],"is_corresponding":true,"raw_author_name":"SIMON PEYTON JONES","raw_affiliation_strings":["Microsoft Research","Microsoft research#TAB#"],"affiliations":[{"raw_affiliation_string":"Microsoft Research","institution_ids":["https://openalex.org/I4210164937"]},{"raw_affiliation_string":"Microsoft research#TAB#","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5029108294","display_name":"Dimitrios Vytiniotis","orcid":null},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"DIMITRIOS VYTINIOTIS","raw_affiliation_strings":["University of Pennsylvania","#N#               * University of Pennsylvania"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania","institution_ids":["https://openalex.org/I36788626"]},{"raw_affiliation_string":"#N#               * University of Pennsylvania","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5049220962","display_name":"Stephanie Weirich","orcid":"https://orcid.org/0000-0002-6756-9168"},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"STEPHANIE WEIRICH","raw_affiliation_strings":["University of Pennsylvania","#N#               * University of Pennsylvania"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania","institution_ids":["https://openalex.org/I36788626"]},{"raw_affiliation_string":"#N#               * University of Pennsylvania","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5076718699","display_name":"Mark Shields","orcid":null},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]},{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB","US"],"is_corresponding":false,"raw_author_name":"MARK SHIELDS","raw_affiliation_strings":["Microsoft Research","Microsoft research#TAB#"],"affiliations":[{"raw_affiliation_string":"Microsoft Research","institution_ids":["https://openalex.org/I4210164937"]},{"raw_affiliation_string":"Microsoft research#TAB#","institution_ids":["https://openalex.org/I1290206253"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5027817074"],"corresponding_institution_ids":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"],"apc_list":null,"apc_paid":null,"fwci":24.8462,"has_fulltext":true,"cited_by_count":209,"citation_normalized_percentile":{"value":0.9962887,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":100},"biblio":{"volume":"17","issue":"1","first_page":"1","last_page":"82"},"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/T10260","display_name":"Software Engineering Research","score":0.9897000193595886,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9865000247955322,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/type-inference","display_name":"Type inference","score":0.9018027782440186},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8824613094329834},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7960761189460754},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.6885949969291687},{"id":"https://openalex.org/keywords/undecidable-problem","display_name":"Undecidable problem","score":0.6552634239196777},{"id":"https://openalex.org/keywords/rank","display_name":"Rank (graph theory)","score":0.6381652355194092},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.632996678352356},{"id":"https://openalex.org/keywords/system-f","display_name":"System F","score":0.5270241498947144},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5116525292396545},{"id":"https://openalex.org/keywords/point","display_name":"Point (geometry)","score":0.43052515387535095},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3963214159011841},{"id":"https://openalex.org/keywords/decidability","display_name":"Decidability","score":0.37577804923057556},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.341059148311615},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.32026174664497375},{"id":"https://openalex.org/keywords/lambda-calculus","display_name":"Lambda calculus","score":0.11983028054237366},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.11919105052947998}],"concepts":[{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.9018027782440186},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8824613094329834},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7960761189460754},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.6885949969291687},{"id":"https://openalex.org/C192034797","wikidata":"https://www.wikidata.org/wiki/Q3502995","display_name":"Undecidable problem","level":3,"score":0.6552634239196777},{"id":"https://openalex.org/C164226766","wikidata":"https://www.wikidata.org/wiki/Q7293202","display_name":"Rank (graph theory)","level":2,"score":0.6381652355194092},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.632996678352356},{"id":"https://openalex.org/C55128367","wikidata":"https://www.wikidata.org/wiki/Q2552799","display_name":"System F","level":3,"score":0.5270241498947144},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5116525292396545},{"id":"https://openalex.org/C28719098","wikidata":"https://www.wikidata.org/wiki/Q44946","display_name":"Point (geometry)","level":2,"score":0.43052515387535095},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3963214159011841},{"id":"https://openalex.org/C153269930","wikidata":"https://www.wikidata.org/wiki/Q430001","display_name":"Decidability","level":2,"score":0.37577804923057556},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.341059148311615},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.32026174664497375},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.11983028054237366},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.11919105052947998},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"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":2,"locations":[{"id":"doi:10.1017/s0956796806006034","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006034","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/5339FB9DAB968768874D4C20FA6F8CB6/S0956796806006034a.pdf/div-class-title-practical-type-inference-for-arbitrary-rank-types-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:repository.upenn.edu:cis_papers-1336","is_oa":false,"landing_page_url":"https://repository.upenn.edu/cis_papers/315","pdf_url":null,"source":{"id":"https://openalex.org/S4306402083","display_name":"ScholarlyCommons (University of Pennsylvania)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I79576946","host_organization_name":"University of Pennsylvania","host_organization_lineage":["https://openalex.org/I79576946"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Departmental Papers (CIS)","raw_type":"text"}],"best_oa_location":{"id":"doi:10.1017/s0956796806006034","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006034","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/5339FB9DAB968768874D4C20FA6F8CB6/S0956796806006034a.pdf/div-class-title-practical-type-inference-for-arbitrary-rank-types-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","score":0.44999998807907104,"display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2131916293.pdf","grobid_xml":"https://content.openalex.org/works/W2131916293.grobid-xml"},"referenced_works_count":50,"referenced_works":["https://openalex.org/W13705112","https://openalex.org/W60185894","https://openalex.org/W60733025","https://openalex.org/W1494407580","https://openalex.org/W1532023943","https://openalex.org/W1532865120","https://openalex.org/W1543641760","https://openalex.org/W1547274559","https://openalex.org/W1553136405","https://openalex.org/W1557561422","https://openalex.org/W1942389361","https://openalex.org/W1966981171","https://openalex.org/W1967061556","https://openalex.org/W1979323701","https://openalex.org/W1985088747","https://openalex.org/W1993209012","https://openalex.org/W2015256273","https://openalex.org/W2025407135","https://openalex.org/W2027048725","https://openalex.org/W2032220227","https://openalex.org/W2043188316","https://openalex.org/W2048706733","https://openalex.org/W2050702141","https://openalex.org/W2054969282","https://openalex.org/W2074231109","https://openalex.org/W2074674709","https://openalex.org/W2078944436","https://openalex.org/W2080040385","https://openalex.org/W2081748224","https://openalex.org/W2093896470","https://openalex.org/W2097157641","https://openalex.org/W2104299410","https://openalex.org/W2121637600","https://openalex.org/W2122537103","https://openalex.org/W2123360309","https://openalex.org/W2132037187","https://openalex.org/W2133472914","https://openalex.org/W2136776287","https://openalex.org/W2161193752","https://openalex.org/W2163976959","https://openalex.org/W2165431910","https://openalex.org/W2166822586","https://openalex.org/W2168280960","https://openalex.org/W2171691057","https://openalex.org/W2188944230","https://openalex.org/W2912259974","https://openalex.org/W4285719527","https://openalex.org/W6680019956","https://openalex.org/W6684896881","https://openalex.org/W6758321128"],"related_works":["https://openalex.org/W1886401053","https://openalex.org/W2112263414","https://openalex.org/W1602185604","https://openalex.org/W3004782279","https://openalex.org/W1550049051","https://openalex.org/W2095136535","https://openalex.org/W2005083846","https://openalex.org/W3091937109","https://openalex.org/W1992310464","https://openalex.org/W23571369"],"abstract_inverted_index":{"Abstract":[0],"Haskell's":[1],"popularity":[2],"has":[3,107],"driven":[4],"the":[5,18,30,76,86,100,133,176,180,234],"need":[6],"for":[7,57,216,229],"ever":[8],"more":[9,67,147],"expressive":[10],"type":[11,24,50,60,72,77,101,136,166,196,220],"system":[12,102,128,156],"features,":[13],"most":[14],"of":[15,22,88,112,135,250,278],"which":[16],"threaten":[17],"decidability":[19],"and":[20,80,94,103,125,141,146,154,171,222,273],"practicality":[21],"Damas-Milner":[23,219],"inference.":[25,197],"One":[26],"such":[27],"feature":[28],"is":[29,52,256,259,281],"ability":[31],"to":[32,54,70,74,81,163,173,179,226,244,284],"write":[33,233],"functions":[34,41,45],"with":[35],"higher-rank":[36,58,183,230],"types":[37,184,189],"\u2013":[38],"that":[39,42],"is,":[40],"take":[43,115],"polymorphic":[44],"as":[46,116,268],"their":[47,83],"arguments.":[48],"Complete":[49],"inference":[51,78,105,167],"known":[53],"be":[55,245],"undecidable":[56],"(impredicative)":[59],"systems,":[61],"but":[62,258],"in":[63,99,202,214,252,262],"practice":[64],"programmers":[65],"are":[66,92,97],"than":[68,149],"willing":[69],"add":[71],"annotations":[73,91,137],"guide":[75],"engine,":[79,212],"document":[82],"code.":[84],"However,":[85],"choice":[87],"just":[89],"what":[90,95],"required,":[93],"changes":[96],"required":[98],"its":[104],"algorithm,":[106],"been":[108],"an":[109],"ongoing":[110],"topic":[111],"research.":[113],"We":[114,160,198,232],"our":[117,269,274,279],"starting":[118],"point":[119,181],"a":[120,191,203,209,217,238,246],"\u03bb-calculus":[121],"proposed":[122],"by":[123,169,207],"Odersky":[124,153],"L\u00e4ufer.":[126],"Their":[127],"supports":[129],"arbitrary-rank":[130],"polymorphism":[131],"through":[132],"exploitation":[134],"on":[138,195],"\u03bb-bound":[139],"arguments":[140],"arbitrary":[142],"sub-terms.":[143],"Though":[144],"elegant,":[145],"convenient":[148],"some":[150],"other":[151],"proposals,":[152],"L\u00e4ufer's":[155],"requires":[157],"many":[158],"annotations.":[159],"show":[161],"how":[162,225],"use":[164,266],"local":[165],"(invented":[168],"Pierce":[170],"Turner)":[172],"greatly":[174],"reduce":[175],"annotation":[177],"burden,":[178],"where":[182],"become":[185],"eminently":[186],"usable.":[187],"Higher-rank":[188],"have":[190],"very":[192,204],"modest":[193],"impact":[194],"substantiate":[199],"this":[200],"claim":[201],"concrete":[205],"way,":[206],"presenting":[208],"complete":[210],"type-inference":[211,235],"written":[213],"Haskell,":[215],"traditional":[218],"system,":[221],"then":[223],"showing":[224],"extend":[227],"it":[228,241],"types.":[231],"engine":[236],"using":[237],"monadic":[239],"framework:":[240],"turns":[242],"out":[243],"particularly":[247],"compelling":[248],"example":[249,270],"monads":[251],"action.":[253],"The":[254],"paper":[255],"long,":[257],"strongly":[260],"tutorial":[261],"style.":[263],"Although":[264],"we":[265],"Haskell":[267],"source":[271],"language,":[272,276],"implementation":[275],"much":[277],"work":[280],"directly":[282],"applicable":[283],"any":[285],"ML-like":[286],"functional":[287],"language.":[288]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":10},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":6},{"year":2020,"cited_by_count":9},{"year":2019,"cited_by_count":10},{"year":2018,"cited_by_count":13},{"year":2017,"cited_by_count":12},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":6},{"year":2014,"cited_by_count":10},{"year":2013,"cited_by_count":10},{"year":2012,"cited_by_count":11}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
