{"id":"https://openalex.org/W2965983020","doi":"https://doi.org/10.1145/3331545.3342589","title":"Modular effects in Haskell through effect polymorphism and explicit dictionary applications: a new approach and the \u03bcVeriFast verifier as a case study","display_name":"Modular effects in Haskell through effect polymorphism and explicit dictionary applications: a new approach and the \u03bcVeriFast verifier as a case study","publication_year":2019,"publication_date":"2019-07-29","ids":{"openalex":"https://openalex.org/W2965983020","doi":"https://doi.org/10.1145/3331545.3342589","mag":"2965983020"},"language":"en","primary_location":{"id":"doi:10.1145/3331545.3342589","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3331545.3342589","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5011654888","display_name":"Dominique Devriese","orcid":"https://orcid.org/0000-0002-3862-6856"},"institutions":[{"id":"https://openalex.org/I13469542","display_name":"Vrije Universiteit Brussel","ror":"https://ror.org/006e5kg04","country_code":"BE","type":"education","lineage":["https://openalex.org/I13469542"]}],"countries":["BE"],"is_corresponding":true,"raw_author_name":"Dominique Devriese","raw_affiliation_strings":["Vrije Universiteit Brussel, Belgium"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Vrije Universiteit Brussel, Belgium","institution_ids":["https://openalex.org/I13469542"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5011654888"],"corresponding_institution_ids":["https://openalex.org/I13469542"],"apc_list":null,"apc_paid":null,"fwci":0.2892,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.66421145,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":95},"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"14"},"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/T11424","display_name":"Security and Verification in Computing","score":0.9973999857902527,"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/T10142","display_name":"Formal Methods in Verification","score":0.9968000054359436,"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/haskell","display_name":"Haskell","score":0.9375125765800476},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.813433051109314},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7629449963569641},{"id":"https://openalex.org/keywords/generality","display_name":"Generality","score":0.6638705134391785},{"id":"https://openalex.org/keywords/backtracking","display_name":"Backtracking","score":0.6393343806266785},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.5453235507011414},{"id":"https://openalex.org/keywords/debugger","display_name":"Debugger","score":0.42402249574661255},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3994958996772766},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.20182165503501892},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.17895478010177612}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9375125765800476},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.813433051109314},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7629449963569641},{"id":"https://openalex.org/C2780767217","wikidata":"https://www.wikidata.org/wiki/Q5532421","display_name":"Generality","level":2,"score":0.6638705134391785},{"id":"https://openalex.org/C156884757","wikidata":"https://www.wikidata.org/wiki/Q798554","display_name":"Backtracking","level":2,"score":0.6393343806266785},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5453235507011414},{"id":"https://openalex.org/C2778485113","wikidata":"https://www.wikidata.org/wiki/Q193231","display_name":"Debugger","level":3,"score":0.42402249574661255},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3994958996772766},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.20182165503501892},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.17895478010177612},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.0},{"id":"https://openalex.org/C542102704","wikidata":"https://www.wikidata.org/wiki/Q183257","display_name":"Psychotherapist","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3331545.3342589","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3331545.3342589","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell","raw_type":"proceedings-article"},{"id":"pmh:oai:lirias2repo.kuleuven.be:123456789/659265","is_oa":false,"landing_page_url":"https://lirias.kuleuven.be/bitstream/123456789/659265/2/paper.pdf","pdf_url":null,"source":{"id":"https://openalex.org/S4306401954","display_name":"Lirias (KU Leuven)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I99464096","host_organization_name":"KU Leuven","host_organization_lineage":["https://openalex.org/I99464096"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Haskell Symposium, Berlin, 22-23 August 2019","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:vubissmart:VUBISSMART:2000:123762","is_oa":false,"landing_page_url":"https://biblio.vub.ac.be/vubir/modular-effects-in-haskell-through-effect-polymorphism-and-explicit-dictionary-applications-a-new-approach-and-the-\u03bcverifast-verifier-as-a-case-study(a9e21cc2-547f-4c9f-8b11-1b570081cab2).html","pdf_url":null,"source":{"id":"https://openalex.org/S4306402573","display_name":"VUBIR (Vrije Universiteit Brussel)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I13469542","host_organization_name":"Vrije Universiteit Brussel","host_organization_lineage":["https://openalex.org/I13469542"],"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":"article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":32,"referenced_works":["https://openalex.org/W847838221","https://openalex.org/W1480909796","https://openalex.org/W1499496279","https://openalex.org/W1606142489","https://openalex.org/W1716898798","https://openalex.org/W1830421783","https://openalex.org/W1971752790","https://openalex.org/W1999260700","https://openalex.org/W2007435074","https://openalex.org/W2007759294","https://openalex.org/W2012450002","https://openalex.org/W2014868111","https://openalex.org/W2057292961","https://openalex.org/W2073001576","https://openalex.org/W2074802267","https://openalex.org/W2084115964","https://openalex.org/W2106226553","https://openalex.org/W2123092976","https://openalex.org/W2141576692","https://openalex.org/W2157514610","https://openalex.org/W2159861963","https://openalex.org/W2361817505","https://openalex.org/W2523627175","https://openalex.org/W2561675875","https://openalex.org/W2751718667","https://openalex.org/W2889984762","https://openalex.org/W2891165052","https://openalex.org/W2899650865","https://openalex.org/W2900081643","https://openalex.org/W3037209803","https://openalex.org/W3103594074","https://openalex.org/W4236962246"],"related_works":["https://openalex.org/W2801835562","https://openalex.org/W196828063","https://openalex.org/W1986497413","https://openalex.org/W2044440943","https://openalex.org/W2402432551","https://openalex.org/W1671914757","https://openalex.org/W3000154411","https://openalex.org/W2038856365","https://openalex.org/W1601811574","https://openalex.org/W2083796365"],"abstract_inverted_index":{"In":[0,44],"applications":[1],"with":[2,13,107,113],"a":[3,49,81,94,101,155,171],"complex":[4,95],"structure":[5],"of":[6,41,76,84,97,104,133,142,170],"side":[7,99],"effects,":[8,164],"effects":[9],"should":[10,16,34],"be":[11,17,35],"dealt":[12],"modularly:":[14],"components":[15,25],"programmed":[18],"against":[19],"abstract":[20],"effect":[21,32,60,134],"interfaces":[22],"that":[23,122],"other":[24],"can":[26],"instantiate":[27],"as":[28,154,166],"required,":[29],"and":[30,62,74,109,119,159],"reusable":[31],"patterns":[33],"factored":[36],"out":[37,149],"from":[38],"the":[39,42,63,72,85,129,138,150,167],"rest":[40],"application.":[43],"this":[45,55],"paper,":[46],"we":[47],"study":[48],"new,":[50],"general":[51],"approach":[52,78],"to":[53,146],"achieve":[54],"in":[56,79],"Haskell":[57],"by":[58],"combining":[59],"polymorphism":[61,135],"recently":[64],"proposed":[65],"coherent":[66],"explicit":[67],"dictionary":[68],"applications.":[69],"We":[70],"demonstrate":[71],"elegance":[73],"generality":[75],"our":[77],"\u03bcVeriFast:":[80],"Haskell-based":[82],"reimplementation":[83],"semi-automatic":[86],"separation-logic-based":[87],"verification":[88],"tool":[89],"VeriFast.":[90],"This":[91],"implementation":[92,141],"features":[93,162],"interplay":[96],"advanced":[98,161],"effects:":[100],"backtracking":[102,151],"search":[103,152],"program":[105],"paths":[106],"angelic":[108],"demonic":[110],"non-determinism,":[111],"interaction":[112],"an":[114],"underlying":[115],"off-the-shelf":[116],"SMT":[117],"solver,":[118],"mutable":[120],"state":[121],"is":[123],"either":[124],"backtracked":[125],"or":[126],"not":[127],"during":[128],"search.":[130],"Our":[131],"use":[132],"improves":[136],"over":[137],"current":[139],"non-modular":[140],"VeriFast,":[143],"allows":[144],"us":[145],"nicely":[147],"factor":[148],"pattern":[153],"new":[156],"AssumeAssert":[157],"monad,":[158],"enables":[160],"involving":[163],"such":[165],"non-intrusive":[168],"addition":[169],"graphical":[172],"symbolic":[173],"debugger":[174],"based":[175],"on":[176],"delimited":[177],"continuations.":[178]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2019,"cited_by_count":1}],"updated_date":"2026-06-14T07:44:22.658603","created_date":"2025-10-10T00:00:00"}
