{"id":"https://openalex.org/W2008732772","doi":"https://doi.org/10.1145/1140335.1140356","title":"Practical type inference based on success typings","display_name":"Practical type inference based on success typings","publication_year":2006,"publication_date":"2006-07-10","ids":{"openalex":"https://openalex.org/W2008732772","doi":"https://doi.org/10.1145/1140335.1140356","mag":"2008732772"},"language":"en","primary_location":{"id":"doi:10.1145/1140335.1140356","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1140335.1140356","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://doi.org/10.1145/1140335.1140356","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5085653534","display_name":"Tobias Lindahl","orcid":null},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]}],"countries":["SE"],"is_corresponding":true,"raw_author_name":"Tobias Lindahl","raw_affiliation_strings":["Uppsala University, Sweden","Uppsala university, Sweden#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Uppsala University, Sweden","institution_ids":["https://openalex.org/I123387679"]},{"raw_affiliation_string":"Uppsala university, Sweden#TAB#","institution_ids":["https://openalex.org/I123387679"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5009640372","display_name":"Konstantinos Sagonas","orcid":"https://orcid.org/0000-0001-9657-0179"},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]},{"id":"https://openalex.org/I174458059","display_name":"National Technical University of Athens","ror":"https://ror.org/03cx6bg69","country_code":"GR","type":"education","lineage":["https://openalex.org/I174458059"]}],"countries":["GR","SE"],"is_corresponding":false,"raw_author_name":"Konstantinos Sagonas","raw_affiliation_strings":["Uppsala University, Sweden and National Technical University of Athens, Greece"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Uppsala University, Sweden and National Technical University of Athens, Greece","institution_ids":["https://openalex.org/I174458059","https://openalex.org/I123387679"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5085653534"],"corresponding_institution_ids":["https://openalex.org/I123387679"],"apc_list":null,"apc_paid":null,"fwci":4.6596,"has_fulltext":false,"cited_by_count":87,"citation_normalized_percentile":{"value":0.94371274,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"167","last_page":"178"},"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.9988999962806702,"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.9988999962806702,"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.9983999729156494,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9948999881744385,"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/type-inference","display_name":"Type inference","score":0.9135701656341553},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8177704811096191},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6772786974906921},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6294779181480408},{"id":"https://openalex.org/keywords/erlang","display_name":"Erlang (programming language)","score":0.6214807629585266},{"id":"https://openalex.org/keywords/subtyping","display_name":"Subtyping","score":0.614383339881897},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5801150798797607},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.5760250091552734},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.4725201725959778},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.4713950455188751},{"id":"https://openalex.org/keywords/exception-handling","display_name":"Exception handling","score":0.43540728092193604},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.41911131143569946},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.41633403301239014},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.34282225370407104},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.295589804649353},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.17416131496429443}],"concepts":[{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.9135701656341553},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8177704811096191},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6772786974906921},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6294779181480408},{"id":"https://openalex.org/C82484044","wikidata":"https://www.wikidata.org/wiki/Q334879","display_name":"Erlang (programming language)","level":3,"score":0.6214807629585266},{"id":"https://openalex.org/C83852419","wikidata":"https://www.wikidata.org/wiki/Q2713292","display_name":"Subtyping","level":2,"score":0.614383339881897},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5801150798797607},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.5760250091552734},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.4725201725959778},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.4713950455188751},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.43540728092193604},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.41911131143569946},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.41633403301239014},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.34282225370407104},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.295589804649353},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.17416131496429443},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","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},{"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.1145/1140335.1140356","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1140335.1140356","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming","raw_type":"proceedings-article"},{"id":"pmh:oai:dspace.lib.ntua.gr:123456789/31716","is_oa":true,"landing_page_url":"http://doi.org/10.1145/1140335.1140356","pdf_url":null,"source":{"id":"https://openalex.org/S4377196837","display_name":"DSpace - NTUA (National Technical University of Athens)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I174458059","host_organization_name":"National Technical University of Athens","host_organization_lineage":["https://openalex.org/I174458059"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"PPDP'06 - Proceedings of the Eight ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming","raw_type":"info:eu-repo/semantics/conferenceObject"}],"best_oa_location":{"id":"pmh:oai:dspace.lib.ntua.gr:123456789/31716","is_oa":true,"landing_page_url":"http://doi.org/10.1145/1140335.1140356","pdf_url":null,"source":{"id":"https://openalex.org/S4377196837","display_name":"DSpace - NTUA (National Technical University of Athens)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I174458059","host_organization_name":"National Technical University of Athens","host_organization_lineage":["https://openalex.org/I174458059"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"PPDP'06 - Proceedings of the Eight ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming","raw_type":"info:eu-repo/semantics/conferenceObject"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":12,"referenced_works":["https://openalex.org/W148363917","https://openalex.org/W1556803451","https://openalex.org/W1584322803","https://openalex.org/W1588297513","https://openalex.org/W1963954367","https://openalex.org/W2000005946","https://openalex.org/W2002866920","https://openalex.org/W2015077407","https://openalex.org/W2022443117","https://openalex.org/W2055886480","https://openalex.org/W2116325485","https://openalex.org/W2293770661"],"related_works":["https://openalex.org/W3021253659","https://openalex.org/W2086733238","https://openalex.org/W3145485722","https://openalex.org/W1482645738","https://openalex.org/W2013637613","https://openalex.org/W2763815264","https://openalex.org/W3034079570","https://openalex.org/W4243145104","https://openalex.org/W2171400988","https://openalex.org/W2008732772"],"abstract_inverted_index":{"In":[0],"languages":[1],"where":[2],"the":[3,16,31,58,80,83,101,170,189,194,208],"compiler":[4],"performs":[5],"no":[6],"static":[7,110],"type":[8,59,74,88,111,131,151,209],"checks,":[9],"many":[10],"programs":[11,216],"never":[12,118],"go":[13],"wrong,":[14],"but":[15],"intended":[17],"use":[18,121],"of":[19,33,57,82,103,106,122,169,193,217],"functions":[20],"and":[21,71,117,166,182,185,191],"component":[22],"interfaces":[23],"is":[24,50,62],"often":[25,41],"undocumented":[26],"or":[27,85],"appears":[28,154],"only":[29],"in":[30,64,129,158],"form":[32],"comments":[34],"which":[35,61,90,153],"cannot":[36],"always":[37],"be":[38,180],"trusted.":[39],"This":[40],"makes":[42],"program":[43],"maintenance":[44],"problematic.":[45],"We":[46,187,201],"show":[47],"that":[48,125,140],"it":[49,198],"possible":[51],"to":[52,79,155,199],"reconstruct":[53],"a":[54,65,87,120,123,130],"significant":[55,218],"portion":[56],"information":[60],"implicit":[63],"program,":[66],"automatically":[67],"annotate":[68],"function":[69,124],"interfaces,":[70],"detect":[72],"definite":[73],"clashes":[75],"without":[76,212],"fundamental":[77],"changes":[78],"philosophy":[81],"language":[84,171],"imposing":[86],"system":[89],"unnecessarily":[91],"rejects":[92],"perfectly":[93],"reasonable":[94],"programs.":[95],"To":[96],"do":[97],"so,":[98],"we":[99],"introduce":[100],"notion":[102],"success":[104,113,145,177],"typings":[105,114,146,178],"functions.":[107],"Unlike":[108,135],"most":[109,136],"systems,":[112],"incorporate":[115],"subtyping":[116],"disallow":[119],"will":[126],"not":[127],"result":[128],"clash":[132],"during":[133],"runtime.":[134],"soft":[137],"typing":[138],"systems":[139],"have":[141],"previously":[142],"been":[143],"proposed,":[144],"allow":[147],"for":[148],"compositional,":[149],"bottom-up":[150],"inference":[152,210],"scale":[156],"well":[157],"practice.":[159],"Moreover,":[160],"by":[161,196],"taking":[162],"control-flow":[163],"into":[164],"account":[165],"exploiting":[167],"properties":[168],"such":[172],"as":[173],"its":[174],"module":[175],"system,":[176],"can":[179],"refined":[181],"become":[183],"accurate":[184],"precise":[186],"demonstrate":[188],"power":[190],"practicality":[192],"approach":[195],"applying":[197],"Erlang.":[200],"report":[202],"on":[203,215],"our":[204],"experiences":[205],"from":[206],"employing":[207],"algorithm,":[211],"any":[213],"guidance,":[214],"size":[219]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":9},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":5},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":7},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":6},{"year":2015,"cited_by_count":8},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":9},{"year":2012,"cited_by_count":4}],"updated_date":"2026-05-14T08:36:36.166977","created_date":"2025-10-10T00:00:00"}
