{"id":"https://openalex.org/W2039680593","doi":"https://doi.org/10.1145/1411286.1411300","title":"Making monads first-class with template haskell","display_name":"Making monads first-class with template haskell","publication_year":2008,"publication_date":"2008-09-25","ids":{"openalex":"https://openalex.org/W2039680593","doi":"https://doi.org/10.1145/1411286.1411300","mag":"2039680593"},"language":"en","primary_location":{"id":"doi:10.1145/1411286.1411300","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411286.1411300","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the first ACM SIGPLAN 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/A5009434799","display_name":"Pericles S. Kariotis","orcid":null},"institutions":[{"id":"https://openalex.org/I76835614","display_name":"University of Missouri","ror":"https://ror.org/02ymw8z06","country_code":"US","type":"education","lineage":["https://openalex.org/I76835614"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Pericles S. Kariotis","raw_affiliation_strings":["University of Missouri, Columbia, MO, USA","University of Missouri,, Columbia, MO, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Missouri, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]},{"raw_affiliation_string":"University of Missouri,, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5012222951","display_name":"Adam Procter","orcid":"https://orcid.org/0000-0002-6213-1968"},"institutions":[{"id":"https://openalex.org/I76835614","display_name":"University of Missouri","ror":"https://ror.org/02ymw8z06","country_code":"US","type":"education","lineage":["https://openalex.org/I76835614"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Adam M. Procter","raw_affiliation_strings":["University of Missouri, Columbia, MO, USA","University of Missouri,, Columbia, MO, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Missouri, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]},{"raw_affiliation_string":"University of Missouri,, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5103052303","display_name":"William L. Harrison","orcid":"https://orcid.org/0000-0002-3760-3556"},"institutions":[{"id":"https://openalex.org/I76835614","display_name":"University of Missouri","ror":"https://ror.org/02ymw8z06","country_code":"US","type":"education","lineage":["https://openalex.org/I76835614"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"William L. Harrison","raw_affiliation_strings":["University of Missouri, Columbia, MO, USA","University of Missouri,, Columbia, MO, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Missouri, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]},{"raw_affiliation_string":"University of Missouri,, Columbia, MO, USA","institution_ids":["https://openalex.org/I76835614"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I76835614"],"apc_list":null,"apc_paid":null,"fwci":1.7634,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.8749979,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"99","last_page":"110"},"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.9987999796867371,"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.9987999796867371,"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.9944999814033508,"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.9934999942779541,"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/haskell","display_name":"Haskell","score":0.9882091283798218},{"id":"https://openalex.org/keywords/monad","display_name":"Monad (category theory)","score":0.8352490663528442},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8291337490081787},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8032892942428589},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6042308211326599},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.552893340587616},{"id":"https://openalex.org/keywords/abstraction","display_name":"Abstraction","score":0.5395746231079102},{"id":"https://openalex.org/keywords/grasp","display_name":"GRASP","score":0.4828551411628723},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.4468657374382019},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.43520307540893555},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3210904598236084},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.15748059749603271},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.10744485259056091},{"id":"https://openalex.org/keywords/functor","display_name":"Functor","score":0.10542705655097961}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9882091283798218},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.8352490663528442},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8291337490081787},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8032892942428589},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6042308211326599},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.552893340587616},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.5395746231079102},{"id":"https://openalex.org/C171268870","wikidata":"https://www.wikidata.org/wiki/Q1486676","display_name":"GRASP","level":2,"score":0.4828551411628723},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.4468657374382019},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.43520307540893555},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3210904598236084},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.15748059749603271},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.10744485259056091},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.10542705655097961},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1411286.1411300","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411286.1411300","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the first ACM SIGPLAN symposium on Haskell","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":15,"referenced_works":["https://openalex.org/W181289641","https://openalex.org/W1498739950","https://openalex.org/W1550049051","https://openalex.org/W1553992341","https://openalex.org/W1570795131","https://openalex.org/W1978363953","https://openalex.org/W1993631104","https://openalex.org/W2009775190","https://openalex.org/W2037984920","https://openalex.org/W2094455839","https://openalex.org/W2102459565","https://openalex.org/W2141576692","https://openalex.org/W2158242393","https://openalex.org/W2163552400","https://openalex.org/W2166775407"],"related_works":["https://openalex.org/W2754859507","https://openalex.org/W2965966430","https://openalex.org/W1530680153","https://openalex.org/W2319624920","https://openalex.org/W1911419940","https://openalex.org/W2466718051","https://openalex.org/W2373472360","https://openalex.org/W2995031344","https://openalex.org/W154014553","https://openalex.org/W2913635267"],"abstract_inverted_index":{"Monads":[0],"as":[1],"an":[2],"organizing":[3],"principle":[4],"for":[5,86],"programming":[6,78],"and":[7,19,37],"semantics":[8],"are":[9,16,61],"notoriously":[10],"difficult":[11],"to":[12,58,75],"grasp,":[13],"yet":[14],"they":[15],"a":[17,27,84],"central":[18],"powerful":[20,96],"abstraction":[21],"in":[22,41,79,93],"Haskell.":[23,43],"This":[24],"paper":[25],"introduces":[26],"domain-specific":[28],"language,":[29],"MonadLab,":[30],"that":[31,52,89],"simplifies":[32],"the":[33,65,70],"construction":[34,47],"of":[35,72],"monads,":[36],"describes":[38],"its":[39],"implementation":[40],"Template":[42],"MonadLab":[44,73],"makes":[45],"monad":[46,59],"truly":[48],"first":[49],"class,":[50],"meaning":[51],"arcane":[53],"theoretical":[54],"issues":[55],"with":[56],"respect":[57],"transformers":[60],"completely":[62],"hidden":[63],"from":[64],"programmer.":[66],"The":[67],"motivation":[68],"behind":[69],"design":[71],"is":[74],"make":[76],"monadic":[77],"Haskell":[80],"simpler":[81],"while":[82],"providing":[83],"tool":[85],"non-Haskell":[87],"experts":[88],"will":[90],"assist":[91],"them":[92],"understanding":[94],"this":[95],"abstraction.":[97]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1}],"updated_date":"2026-06-26T08:34:08.712188","created_date":"2025-10-10T00:00:00"}
