{"id":"https://openalex.org/W4405809911","doi":"https://doi.org/10.1017/s0956796824000121","title":"A simple blame calculus for explicit nulls","display_name":"A simple blame calculus for explicit nulls","publication_year":2024,"publication_date":"2024-12-26","ids":{"openalex":"https://openalex.org/W4405809911","doi":"https://doi.org/10.1017/s0956796824000121"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796824000121","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796824000121","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/96948A42A051299CFF5D2940ADF7A5B0/S0956796824000121a.pdf/div-class-title-a-simple-blame-calculus-for-explicit-nulls-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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","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":"hybrid","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/96948A42A051299CFF5D2940ADF7A5B0/S0956796824000121a.pdf/div-class-title-a-simple-blame-calculus-for-explicit-nulls-div.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5039616179","display_name":"Ond\u0159ej Lhot\u00e1k","orcid":"https://orcid.org/0000-0001-9066-1889"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"OND\u0158EJ LHOT\u00c1K","raw_affiliation_strings":["University of Waterloo, Waterloo, Canada (e-mail:"],"raw_orcid":"https://orcid.org/0000-0001-9066-1889","affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, Canada (e-mail:","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5018878077","display_name":"Philip Wadler","orcid":"https://orcid.org/0000-0001-7619-6378"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"PHILIP WADLER","raw_affiliation_strings":["School of Informatics, University of Edinburgh, Edinburgh, UK (e-mail:"],"raw_orcid":"https://orcid.org/0000-0001-7619-6378","affiliations":[{"raw_affiliation_string":"School of Informatics, University of Edinburgh, Edinburgh, UK (e-mail:","institution_ids":["https://openalex.org/I98677209"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5039616179"],"corresponding_institution_ids":["https://openalex.org/I151746483"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.20981073,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"34","issue":null,"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.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.9800000190734863,"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/T10142","display_name":"Formal Methods in Verification","score":0.9779000282287598,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/blame","display_name":"Blame","score":0.7523453235626221},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7116283774375916},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5479863882064819},{"id":"https://openalex.org/keywords/calculus","display_name":"Calculus (dental)","score":0.5479757785797119},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.5101400017738342},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.49015650153160095},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.43738484382629395},{"id":"https://openalex.org/keywords/null","display_name":"Null (SQL)","score":0.4295361638069153},{"id":"https://openalex.org/keywords/algebra-over-a-field","display_name":"Algebra over a field","score":0.3207727074623108},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.20762595534324646},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.18319013714790344},{"id":"https://openalex.org/keywords/philosophy","display_name":"Philosophy","score":0.08087480068206787},{"id":"https://openalex.org/keywords/epistemology","display_name":"Epistemology","score":0.07222267985343933}],"concepts":[{"id":"https://openalex.org/C2781466463","wikidata":"https://www.wikidata.org/wiki/Q621695","display_name":"Blame","level":2,"score":0.7523453235626221},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7116283774375916},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5479863882064819},{"id":"https://openalex.org/C2777686260","wikidata":"https://www.wikidata.org/wiki/Q144037","display_name":"Calculus (dental)","level":2,"score":0.5479757785797119},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.5101400017738342},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.49015650153160095},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.43738484382629395},{"id":"https://openalex.org/C203763787","wikidata":"https://www.wikidata.org/wiki/Q371029","display_name":"Null (SQL)","level":2,"score":0.4295361638069153},{"id":"https://openalex.org/C136119220","wikidata":"https://www.wikidata.org/wiki/Q1000660","display_name":"Algebra over a field","level":2,"score":0.3207727074623108},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.20762595534324646},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.18319013714790344},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.08087480068206787},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.07222267985343933},{"id":"https://openalex.org/C118552586","wikidata":"https://www.wikidata.org/wiki/Q7867","display_name":"Psychiatry","level":1,"score":0.0},{"id":"https://openalex.org/C71924100","wikidata":"https://www.wikidata.org/wiki/Q11190","display_name":"Medicine","level":0,"score":0.0},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.0},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.0},{"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},{"id":"https://openalex.org/C199343813","wikidata":"https://www.wikidata.org/wiki/Q12128","display_name":"Dentistry","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1017/s0956796824000121","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796824000121","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/96948A42A051299CFF5D2940ADF7A5B0/S0956796824000121a.pdf/div-class-title-a-simple-blame-calculus-for-explicit-nulls-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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:pure.ed.ac.uk:publications/5c07b1a8-86db-4a10-8dda-246ba456904d","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/5c07b1a8-86db-4a10-8dda-246ba456904d","pdf_url":null,"source":{"id":"https://openalex.org/S4406922455","display_name":"Edinburgh Research Explorer","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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lhot\u00e1k, O & Wadler, P 2024, 'A simple blame calculus for explicit nulls', Journal of Functional Programming, vol. 34, no. e15, pp. 1-26. https://doi.org/10.1017/S0956796824000121","raw_type":"info:eu-repo/semantics/publishedVersion"}],"best_oa_location":{"id":"doi:10.1017/s0956796824000121","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796824000121","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/96948A42A051299CFF5D2940ADF7A5B0/S0956796824000121a.pdf/div-class-title-a-simple-blame-calculus-for-explicit-nulls-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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","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/16","score":0.4099999964237213,"display_name":"Peace, Justice and strong institutions"}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4405809911.pdf","grobid_xml":"https://content.openalex.org/works/W4405809911.grobid-xml"},"referenced_works_count":25,"referenced_works":["https://openalex.org/W1553537175","https://openalex.org/W1570258731","https://openalex.org/W1980939032","https://openalex.org/W1989536180","https://openalex.org/W2025431400","https://openalex.org/W2033348393","https://openalex.org/W2043100293","https://openalex.org/W2052973434","https://openalex.org/W2080648611","https://openalex.org/W2096529083","https://openalex.org/W2128303158","https://openalex.org/W2150998213","https://openalex.org/W2289066165","https://openalex.org/W2295283668","https://openalex.org/W2533631495","https://openalex.org/W2915568895","https://openalex.org/W3107440164","https://openalex.org/W3137596000","https://openalex.org/W3160805910","https://openalex.org/W3205900459","https://openalex.org/W3214783205","https://openalex.org/W4245120671","https://openalex.org/W6786404273","https://openalex.org/W6966995401","https://openalex.org/W6967083426"],"related_works":["https://openalex.org/W155568406","https://openalex.org/W4231203413","https://openalex.org/W2106648569","https://openalex.org/W2133405847","https://openalex.org/W2528395219","https://openalex.org/W4387792618","https://openalex.org/W2963644814","https://openalex.org/W3132105397","https://openalex.org/W2350575591","https://openalex.org/W2952692593"],"abstract_inverted_index":{"Abstract":[0],"Gradual":[1],"typing":[2],"provides":[3],"a":[4,8,17,34,40,56,64,77,98,116,146],"model":[5],"for":[6,102,112,156,161],"when":[7,33,63,139],"legacy":[9,65,129,181],"language":[10,19,66,79,130,134,182,186],"with":[11,16,20,153,166],"less":[12],"precise":[13,22],"types":[14,27,88,114,158],"interacts":[15],"newer":[18,78,133,185],"more":[21,151],"types.":[23],"Casts":[24],"mediate":[25],"between":[26],"of":[28,55,60,119,171],"different":[29],"precision,":[30],"allocating":[31],"blame":[32,43,47,121,173],"value":[35],"fails":[36],"to":[37,39],"conform":[38],"type.":[41],"The":[42,106],"theorem":[44],"asserts":[45],"that":[46,149],"always":[48],"falls":[49],"on":[50],"the":[51,120,128,132,172,180,184,198],"less-precisely":[52],"typed":[53,100],"side":[54],"cast.":[57],"One":[58],"instance":[59],"interest":[61],"is":[62,150],"(such":[67,80],"as":[68,81],"Java)":[69],"permits":[70],"null":[71,90],"values":[72],"at":[73],"every":[74],"type,":[75],"while":[76],"Scala":[82],"or":[83],"Kotlin)":[84],"explicitly":[85],"indicates":[86],"which":[87],"permit":[89],"values.":[91],"Nieto":[92],"et":[93],"al.":[94],"in":[95,197,203],"2020":[96],"introduced":[97],"gradually":[99],"calculus":[101,107,148],"just":[103],"this":[104],"purpose.":[105],"requires":[108],"three":[109],"distinct":[110],"constructors":[111],"function":[113,157],"and":[115,159,165],"non-standard":[117],"proof":[118,170],"theorem;":[122,174],"it":[123,175],"can":[124,176],"embed":[125,177],"terms":[126,178],"from":[127,179],"into":[131,183],"(or":[135],"vice":[136,188],"versa)":[137,189],"only":[138],"they":[140,192],"are":[141,193],"closed.":[142],"Here,":[143],"we":[144],"define":[145],"simpler":[147],"orthogonal,":[152],"one":[154,160],"constructor":[155],"possibly":[162],"nullable":[163],"types,":[164],"an":[167],"entirely":[168],"standard":[169],"(and":[187],"even":[190],"if":[191],"open.":[194],"All":[195],"results":[196],"paper":[199],"have":[200],"been":[201],"mechanized":[202],"Coq.":[204]},"counts_by_year":[],"updated_date":"2026-05-27T06:14:07.914337","created_date":"2025-10-10T00:00:00"}
