{"id":"https://openalex.org/W4386306581","doi":"https://doi.org/10.1145/3609025.3609476","title":"Stretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven Design","display_name":"Stretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven Design","publication_year":2023,"publication_date":"2023-08-30","ids":{"openalex":"https://openalex.org/W4386306581","doi":"https://doi.org/10.1145/3609025.3609476"},"language":"en","primary_location":{"id":"doi:10.1145/3609025.3609476","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3609025.3609476","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3609025.3609476?download=true","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3609025.3609476?download=true","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5091775512","display_name":"Jeffrey M. Young","orcid":"https://orcid.org/0000-0002-2935-772X"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Jeffrey M. Young","raw_affiliation_strings":["IOG, USA"],"affiliations":[{"raw_affiliation_string":"IOG, USA","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5070198999","display_name":"Sylvain Henry","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Sylvain Henry","raw_affiliation_strings":["IOG, France"],"affiliations":[{"raw_affiliation_string":"IOG, France","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5092721569","display_name":"John Ericson","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"John Ericson","raw_affiliation_strings":["Obsidian Systems, USA"],"affiliations":[{"raw_affiliation_string":"Obsidian Systems, USA","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5091775512"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.18755581,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"34","last_page":"39"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T12479","display_name":"Web Application Security Vulnerabilities","score":0.9997000098228455,"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"}},"topics":[{"id":"https://openalex.org/T12479","display_name":"Web Application Security Vulnerabilities","score":0.9997000098228455,"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/T11424","display_name":"Security and Verification in Computing","score":0.9994000196456909,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.9813181161880493},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8482626080513},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.8228627443313599},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.7694298028945923},{"id":"https://openalex.org/keywords/composability","display_name":"Composability","score":0.7278732657432556},{"id":"https://openalex.org/keywords/modularity","display_name":"Modularity (biology)","score":0.6746092438697815},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6392428874969482},{"id":"https://openalex.org/keywords/domain","display_name":"Domain (mathematical analysis)","score":0.4697946310043335},{"id":"https://openalex.org/keywords/immutability","display_name":"Immutability","score":0.4312538802623749},{"id":"https://openalex.org/keywords/perspective","display_name":"Perspective (graphical)","score":0.41595029830932617},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.32724300026893616},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.12543171644210815}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9813181161880493},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8482626080513},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.8228627443313599},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.7694298028945923},{"id":"https://openalex.org/C2778814252","wikidata":"https://www.wikidata.org/wiki/Q5156715","display_name":"Composability","level":2,"score":0.7278732657432556},{"id":"https://openalex.org/C2779478453","wikidata":"https://www.wikidata.org/wiki/Q6889748","display_name":"Modularity (biology)","level":2,"score":0.6746092438697815},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6392428874969482},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.4697946310043335},{"id":"https://openalex.org/C2776126399","wikidata":"https://www.wikidata.org/wiki/Q3942906","display_name":"Immutability","level":3,"score":0.4312538802623749},{"id":"https://openalex.org/C12713177","wikidata":"https://www.wikidata.org/wiki/Q1900281","display_name":"Perspective (graphical)","level":2,"score":0.41595029830932617},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.32724300026893616},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12543171644210815},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C54355233","wikidata":"https://www.wikidata.org/wiki/Q7162","display_name":"Genetics","level":1,"score":0.0},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0},{"id":"https://openalex.org/C2779687700","wikidata":"https://www.wikidata.org/wiki/Q20514253","display_name":"Blockchain","level":2,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3609025.3609476","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3609025.3609476","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3609025.3609476?download=true","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3609025.3609476","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3609025.3609476","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3609025.3609476?download=true","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture","raw_type":"proceedings-article"},"sustainable_development_goals":[{"display_name":"Zero hunger","score":0.8299999833106995,"id":"https://metadata.un.org/sdg/2"}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4386306581.pdf","grobid_xml":"https://content.openalex.org/works/W4386306581.grobid-xml"},"referenced_works_count":2,"referenced_works":["https://openalex.org/W2583467670","https://openalex.org/W4241108256"],"related_works":["https://openalex.org/W2112263414","https://openalex.org/W3004782279","https://openalex.org/W1602185604","https://openalex.org/W2028779182","https://openalex.org/W2919826120","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W4386306581","https://openalex.org/W2810463395"],"abstract_inverted_index":{"Over":[0],"the":[1,23,49,76,113],"last":[2],"decade":[3],"Haskell":[4,51],"has":[5],"been":[6],"productized;":[7],"transitioning":[8],"from":[9,68,108],"a":[10,30,46,55,73],"research":[11],"language":[12,17,33],"to":[13,41,57],"an":[14,109],"industrial":[15],"strength":[16],"ready":[18],"for":[19,96,124],"large-scale":[20,47],"systems.":[21],"However,":[22],"literature":[24],"on":[25,103],"architecting":[26],"such":[27],"systems":[28],"with":[29,112],"pure":[31,63,81,126],"functional":[32,64,82,98,127],"is":[34],"scarce.":[35],"In":[36],"this":[37],"paper":[38],"we":[39,93],"contribute":[40],"that":[42,79,115],"discourse,":[43],"by":[44],"using":[45],"system:":[48],"Glasgow":[50],"Compiler":[52],"(GHC),":[53],"as":[54,72],"guide":[56],"more":[58],"maintainable,":[59],"flexible":[60],"and":[61,87],"effective,":[62],"architectures.":[65],"We":[66,106],"describe,":[67],"experience,":[69],"how":[70],"GHC":[71],"system,":[74],"violates":[75],"desirable":[77],"properties":[78],"make":[80],"programming":[83],"attractive:":[84],"immutability,":[85],"modularity,":[86],"composability.":[88],"With":[89],"these":[90],"violations":[91],"identified,":[92],"provide":[94,119],"guidance":[95],"other":[97,125],"system":[99],"architectures;":[100],"drawing":[101],"heavily":[102],"Domain-Driven":[104],"Design.":[105],"write":[107],"engineering":[110],"perspective,":[111],"hope":[114],"our":[116],"experience":[117],"may":[118],"insight":[120],"into":[121],"best":[122],"practices":[123],"software":[128],"architects.":[129]},"counts_by_year":[],"updated_date":"2026-03-10T14:07:55.174380","created_date":"2025-10-10T00:00:00"}
