{"id":"https://openalex.org/W1978363953","doi":"https://doi.org/10.1145/1159803.1159840","title":"Programming monads operationally with Unimo","display_name":"Programming monads operationally with Unimo","publication_year":2006,"publication_date":"2006-09-16","ids":{"openalex":"https://openalex.org/W1978363953","doi":"https://doi.org/10.1145/1159803.1159840","mag":"1978363953"},"language":"en","primary_location":{"id":"doi:10.1145/1159803.1159840","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1159803.1159840","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming","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/A5039847878","display_name":"Chuan-kai Lin","orcid":null},"institutions":[{"id":"https://openalex.org/I126345244","display_name":"Portland State University","ror":"https://ror.org/00yn2fy02","country_code":"US","type":"education","lineage":["https://openalex.org/I126345244"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Chuan-kai Lin","raw_affiliation_strings":["Portland State University","PORTLAND STATE UNIVERSITY,"],"affiliations":[{"raw_affiliation_string":"Portland State University","institution_ids":["https://openalex.org/I126345244"]},{"raw_affiliation_string":"PORTLAND STATE UNIVERSITY,","institution_ids":["https://openalex.org/I126345244"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5039847878"],"corresponding_institution_ids":["https://openalex.org/I126345244"],"apc_list":null,"apc_paid":null,"fwci":1.8608,"has_fulltext":false,"cited_by_count":21,"citation_normalized_percentile":{"value":0.86898504,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"274","last_page":"285"},"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.9998000264167786,"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.9998000264167786,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9973000288009644,"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.9962000250816345,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/monad","display_name":"Monad (category theory)","score":0.9454958438873291},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.7984437942504883},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7941508889198303},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7537340521812439},{"id":"https://openalex.org/keywords/parameterized-complexity","display_name":"Parameterized complexity","score":0.5852205753326416},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.4975626766681671},{"id":"https://openalex.org/keywords/leverage","display_name":"Leverage (statistics)","score":0.4667392671108246},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.45755043625831604},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4201183617115021},{"id":"https://openalex.org/keywords/distributive-property","display_name":"Distributive property","score":0.4114985764026642},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.3080633878707886},{"id":"https://openalex.org/keywords/functor","display_name":"Functor","score":0.28508731722831726},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.19662261009216309},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.15289980173110962},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.13058426976203918},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.09846940636634827}],"concepts":[{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.9454958438873291},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.7984437942504883},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7941508889198303},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7537340521812439},{"id":"https://openalex.org/C165464430","wikidata":"https://www.wikidata.org/wiki/Q1570441","display_name":"Parameterized complexity","level":2,"score":0.5852205753326416},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.4975626766681671},{"id":"https://openalex.org/C153083717","wikidata":"https://www.wikidata.org/wiki/Q6535263","display_name":"Leverage (statistics)","level":2,"score":0.4667392671108246},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.45755043625831604},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4201183617115021},{"id":"https://openalex.org/C11821877","wikidata":"https://www.wikidata.org/wiki/Q187959","display_name":"Distributive property","level":2,"score":0.4114985764026642},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.3080633878707886},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.28508731722831726},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.19662261009216309},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.15289980173110962},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.13058426976203918},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.09846940636634827}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1159803.1159840","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1159803.1159840","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.154.5951","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.154.5951","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://web.cecs.pdx.edu/~cklin/papers/unimo-icfp06.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":21,"referenced_works":["https://openalex.org/W1508259349","https://openalex.org/W1516859107","https://openalex.org/W1556536463","https://openalex.org/W1573838811","https://openalex.org/W1590978730","https://openalex.org/W1610570299","https://openalex.org/W1970782371","https://openalex.org/W1974817955","https://openalex.org/W1997143185","https://openalex.org/W2064138295","https://openalex.org/W2104299410","https://openalex.org/W2131916293","https://openalex.org/W2132750992","https://openalex.org/W2141576692","https://openalex.org/W2156876717","https://openalex.org/W2166775407","https://openalex.org/W2180135777","https://openalex.org/W2188944230","https://openalex.org/W2914693551","https://openalex.org/W4211095076","https://openalex.org/W4254691308"],"related_works":["https://openalex.org/W2138773009","https://openalex.org/W2754859507","https://openalex.org/W2904778759","https://openalex.org/W4287705132","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],"are":[1],"widely":[2],"used":[3],"in":[4,66,111],"Haskell":[5],"for":[6,124],"modeling":[7,139],"computational":[8,27,51,97,142],"effects,":[9,28],"but":[10],"defining":[11],"monads":[12,37,62,110],"remains":[13],"a":[14,21,49,67,72,85,112],"daunting":[15],"challenge.":[16],"Since":[17,102],"every":[18],"part":[19],"of":[20,35,99,108,138],"monad's":[22],"definition":[23],"depends":[24],"on":[25,131],"its":[26],"programmers":[29,59,83,115],"cannot":[30],"leverage":[31],"the":[32,54,79,89,96,100,105,121,132,140],"common":[33,106],"behavior":[34,107],"all":[36,109],"easily":[38],"and":[39,63,82,127,135],"thus":[40],"must":[41],"build":[42],"from":[43],"scratch":[44],"each":[45,125],"monad":[46,64,80,86,126],"that":[47,94],"models":[48],"new":[50],"effect.I":[52],"propose":[53],"Unimo":[55,70,103],"framework":[56],"which":[57,77],"allows":[58],"to":[60,119],"define":[61,84],"transformers":[65],"modular":[68],"manner.":[69],"contains":[71],"heavily":[73],"parameterized":[74],"observer":[75,90],"function":[76,91],"enforces":[78],"laws,":[81],"by":[87],"invoking":[88],"with":[92],"arguments":[93],"specify":[95],"effects":[98],"monad.":[101],"provides":[104],"reusable":[113],"form,":[114],"no":[116],"longer":[117],"need":[118],"rebuild":[120],"semantic":[122],"boilerplate":[123],"can":[128],"instead":[129],"focus":[130],"more":[133],"interesting":[134],"rewarding":[136],"task":[137],"desired":[141],"effects.":[143]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":3},{"year":2012,"cited_by_count":2}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
