{"id":"https://openalex.org/W2069858276","doi":"https://doi.org/10.1017/s0956796811000098","title":"<scp>OutsideIn(X)</scp> Modular type inference with local assumptions","display_name":"<scp>OutsideIn(X)</scp> Modular type inference with local assumptions","publication_year":2011,"publication_date":"2011-05-16","ids":{"openalex":"https://openalex.org/W2069858276","doi":"https://doi.org/10.1017/s0956796811000098","mag":"2069858276"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796811000098","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796811000098","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/65110D74CF75563F91F9C68010604329/S0956796811000098a.pdf/div-class-title-span-class-sc-outsidein-x-span-modular-type-inference-with-local-assumptions-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/65110D74CF75563F91F9C68010604329/S0956796811000098a.pdf/div-class-title-span-class-sc-outsidein-x-span-modular-type-inference-with-local-assumptions-div.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5029108294","display_name":"Dimitrios Vytiniotis","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":"DIMITRIOS VYTINIOTIS","raw_affiliation_strings":["Microsoft Research (e-mail:","Microsoft research (e-mail: dimitris@microsoft.com)"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Microsoft Research (e-mail:","institution_ids":["https://openalex.org/I4210164937"]},{"raw_affiliation_string":"Microsoft research (e-mail: dimitris@microsoft.com)","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","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":false,"raw_author_name":"SIMON PEYTON JONES","raw_affiliation_strings":["Microsoft Research","Microsoft research#TAB#"],"raw_orcid":null,"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/A5050247934","display_name":"Tom Schrijvers","orcid":"https://orcid.org/0000-0001-8771-5559"},"institutions":[{"id":"https://openalex.org/I32597200","display_name":"Ghent University","ror":"https://ror.org/00cv9y106","country_code":"BE","type":"education","lineage":["https://openalex.org/I32597200"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"TOM SCHRIJVERS","raw_affiliation_strings":["Universiteit Gent","Universiteit-Gent"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Universiteit Gent","institution_ids":["https://openalex.org/I32597200"]},{"raw_affiliation_string":"Universiteit-Gent","institution_ids":["https://openalex.org/I32597200"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5035364564","display_name":"Martin Sulzmann","orcid":"https://orcid.org/0000-0002-8165-3403"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"MARTIN SULZMANN","raw_affiliation_strings":["Informatik Consulting Systems AG","Informatik consulting systems ag#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Informatik Consulting Systems AG","institution_ids":[]},{"raw_affiliation_string":"Informatik consulting systems ag#TAB#","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":14.2354,"has_fulltext":true,"cited_by_count":132,"citation_normalized_percentile":{"value":0.98923902,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":93,"max":100},"biblio":{"volume":"21","issue":"4-5","first_page":"333","last_page":"412"},"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.9997000098228455,"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.9997000098228455,"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.9927999973297119,"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.9839000105857849,"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.8267583847045898},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7710410356521606},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.6283089518547058},{"id":"https://openalex.org/keywords/constraint","display_name":"Constraint (computer-aided design)","score":0.6100998520851135},{"id":"https://openalex.org/keywords/metatheory","display_name":"Metatheory","score":0.6048637628555298},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.5980923771858215},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.5708173513412476},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.5444572567939758},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.5112273693084717},{"id":"https://openalex.org/keywords/axiom","display_name":"Axiom","score":0.506644070148468},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.47230008244514465},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.42319706082344055},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.18484166264533997},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.17626440525054932},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.149694561958313}],"concepts":[{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.8267583847045898},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7710410356521606},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.6283089518547058},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.6100998520851135},{"id":"https://openalex.org/C39387531","wikidata":"https://www.wikidata.org/wiki/Q1096708","display_name":"Metatheory","level":2,"score":0.6048637628555298},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.5980923771858215},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.5708173513412476},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.5444572567939758},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.5112273693084717},{"id":"https://openalex.org/C167729594","wikidata":"https://www.wikidata.org/wiki/Q17736","display_name":"Axiom","level":2,"score":0.506644070148468},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.47230008244514465},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.42319706082344055},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.18484166264533997},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.17626440525054932},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.149694561958313},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","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":6,"locations":[{"id":"doi:10.1017/s0956796811000098","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796811000098","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/65110D74CF75563F91F9C68010604329/S0956796811000098a.pdf/div-class-title-span-class-sc-outsidein-x-span-modular-type-inference-with-local-assumptions-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:lirias2repo.kuleuven.be:123456789/415560","is_oa":true,"landing_page_url":"https://lirias.kuleuven.be/handle/123456789/415560","pdf_url":null,"source":{"id":"https://openalex.org/S7407055369","display_name":"Lirias","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"Journal of Functional Programming, vol. 21 (4-5), Art.No. 4-5, (333-412)","raw_type":"info:eu-repo/semantics/article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.167.4165","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.167.4165","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://research.microsoft.com/Users/simonpj/papers/constraints/jfp-outsidein.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.225.4868","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.225.4868","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://research.microsoft.com/en-us/people/dimitris/jfp-outsidein.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.422.5603","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.422.5603","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://research.microsoft.com/en-us/um/people/simonpj/papers/constraints/jfp-outsidein.pdf","raw_type":"text"},{"id":"pmh:oai:archive.ugent.be:1202271","is_oa":false,"landing_page_url":"http://hdl.handle.net/1854/LU-1202271","pdf_url":null,"source":{"id":"https://openalex.org/S4306400478","display_name":"Ghent University Academic Bibliography (Ghent University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I32597200","host_organization_name":"Ghent University","host_organization_lineage":["https://openalex.org/I32597200"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ISSN: 0956-7968","raw_type":"info:eu-repo/semantics/article"}],"best_oa_location":{"id":"doi:10.1017/s0956796811000098","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796811000098","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/65110D74CF75563F91F9C68010604329/S0956796811000098a.pdf/div-class-title-span-class-sc-outsidein-x-span-modular-type-inference-with-local-assumptions-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":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2069858276.pdf","grobid_xml":"https://content.openalex.org/works/W2069858276.grobid-xml"},"referenced_works_count":56,"referenced_works":["https://openalex.org/W33416941","https://openalex.org/W116104591","https://openalex.org/W1489195191","https://openalex.org/W1523100015","https://openalex.org/W1539860096","https://openalex.org/W1549891365","https://openalex.org/W1550049051","https://openalex.org/W1551706119","https://openalex.org/W1553136405","https://openalex.org/W1567682528","https://openalex.org/W1573380057","https://openalex.org/W1590698795","https://openalex.org/W1594279870","https://openalex.org/W1595479588","https://openalex.org/W1606566547","https://openalex.org/W1827112781","https://openalex.org/W1829301681","https://openalex.org/W1961135409","https://openalex.org/W1976764708","https://openalex.org/W1982230416","https://openalex.org/W1984514567","https://openalex.org/W1999336350","https://openalex.org/W2002866920","https://openalex.org/W2009179353","https://openalex.org/W2029422023","https://openalex.org/W2033174346","https://openalex.org/W2052822938","https://openalex.org/W2059895047","https://openalex.org/W2068457689","https://openalex.org/W2078944436","https://openalex.org/W2079333278","https://openalex.org/W2082765113","https://openalex.org/W2091033850","https://openalex.org/W2093737074","https://openalex.org/W2093896470","https://openalex.org/W2095136535","https://openalex.org/W2096001571","https://openalex.org/W2096973632","https://openalex.org/W2097414162","https://openalex.org/W2098374496","https://openalex.org/W2107214848","https://openalex.org/W2112150205","https://openalex.org/W2125690388","https://openalex.org/W2131916293","https://openalex.org/W2140647971","https://openalex.org/W2146937878","https://openalex.org/W2151156765","https://openalex.org/W2154390633","https://openalex.org/W2156926516","https://openalex.org/W2161408472","https://openalex.org/W2163976959","https://openalex.org/W2165344577","https://openalex.org/W2166129645","https://openalex.org/W2166822586","https://openalex.org/W2168938117","https://openalex.org/W4213090963"],"related_works":["https://openalex.org/W1886401053","https://openalex.org/W2129777450","https://openalex.org/W1550049051","https://openalex.org/W1619105309","https://openalex.org/W2095136535","https://openalex.org/W2113619131","https://openalex.org/W4231010649","https://openalex.org/W4292002158","https://openalex.org/W2137676482","https://openalex.org/W1850217788"],"abstract_inverted_index":{"Abstract":[0],"Advanced":[1],"type":[2,8,11,34,42,45,115,120,209,234,239],"system":[3,210],"features,":[4],"such":[5],"as":[6,40,140,256],"GADTs,":[7],"classes":[9,235],"and":[10,24,55,66,82,151,254],"families,":[12,240],"have":[13],"proven":[14],"to":[15,64,146],"be":[16],"invaluable":[17],"language":[18],"extensions":[19],"for":[20,33,88,118,170,183,193,231],"ensuring":[21],"data":[22],"invariants":[23],"program":[25],"correctness.":[26],"Unfortunately,":[27],"they":[28,37],"pose":[29],"a":[30,112,148,180,227,241],"tough":[31],"problem":[32],"inference":[35,116,152],"when":[36,207],"are":[38],"used":[39,104],"local":[41,60,90,98,119],"assumptions.":[43,121],"Local":[44],"assumptions":[46],"often":[47],"result":[48],"in":[49,136,176,244],"the":[50,57,80,130,137,156,168,187,190,197,208,222],"lack":[51],"of":[52,59,158,189,258],"principal":[53,204,218],"types":[54],"cast":[56],"generalisation":[58,100],"let-bindings":[61],"prohibitively":[62],"difficult":[63],"implement":[65],"specify.":[67],"User-declared":[68],"axioms":[69],"only":[70,102,200],"make":[71],"this":[72,76],"situation":[73],"worse.":[74],"In":[75],"paper,":[77],"we":[78,110,225],"explain":[79],"problems":[81],"\u2013":[83,86],"perhaps":[84],"controversially":[85],"argue":[87],"abandoning":[89],"let-binding":[91],"generalisation.":[92],"We":[93,166,185],"give":[94,226],"empirical":[95],"results":[96],"that":[97,196,214],"let":[99],"is":[101,127],"sporadically":[103],"by":[105,160],"Haskell":[106],"programmers.":[107],"Moving":[108],"on,":[109],"present":[111],"novel":[113],"constraint-based":[114],"approach":[117],"Our":[122],"system,":[123],"called":[124],"OutsideIn(X)":[125,154],",":[126],"parameterised":[128],"over":[129],"particular":[131,228],"underlying":[132],"constraint":[133,181,191,229,249],"domain":[134],"X,":[135],"same":[138],"way":[139],"HM(X).":[141],"This":[142,248],"stratification":[143],"allows":[144],"us":[145],"use":[147],"common":[149],"metatheory":[150],"algorithm.":[153],"extends":[155],"constraints":[157,163],"X":[159,194,232],"introducing":[161],"implication":[162,173],"on":[164,179],"top.":[165],"describe":[167],"strategy":[169],"solving":[171],"these":[172],"constraints,":[174],"which,":[175],"turn,":[177],"relies":[178],"solver":[182,192,230,250],"X.":[184],"characterise":[186],"properties":[188],"so":[195],"resulting":[198],"algorithm":[199],"accepts":[201,212],"programs":[202,213],"with":[203],"types,":[205],"even":[206],"specification":[211],"do":[215],"not":[216],"enjoy":[217],"types.":[219],"Going":[220],"beyond":[221],"general":[223],"framework,":[224],"=":[233],"+":[236,238],"GADTs":[237],"non-trivial":[242],"challenge":[243],"its":[245],"own":[246],"right.":[247],"has":[251],"been":[252],"implemented":[253],"distributed":[255],"part":[257],"GHC":[259],"7.":[260]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":5},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":9},{"year":2019,"cited_by_count":16},{"year":2018,"cited_by_count":14},{"year":2017,"cited_by_count":8},{"year":2016,"cited_by_count":16},{"year":2015,"cited_by_count":17},{"year":2014,"cited_by_count":14},{"year":2013,"cited_by_count":10},{"year":2012,"cited_by_count":8}],"updated_date":"2026-05-27T06:14:07.914337","created_date":"2025-10-10T00:00:00"}
