{"id":"https://openalex.org/W2110317952","doi":"https://doi.org/10.1145/1411286.1411301","title":"Comparing libraries for generic programming in haskell","display_name":"Comparing libraries for generic programming in haskell","publication_year":2008,"publication_date":"2008-09-25","ids":{"openalex":"https://openalex.org/W2110317952","doi":"https://doi.org/10.1145/1411286.1411301","mag":"2110317952"},"language":"en","primary_location":{"id":"doi:10.1145/1411286.1411301","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411286.1411301","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/A5036347300","display_name":"Alexey Rodriguez","orcid":null},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Alexey Rodriguez","raw_affiliation_strings":["Utrecht University, Utrecht, Netherlands"],"affiliations":[{"raw_affiliation_string":"Utrecht University, Utrecht, Netherlands","institution_ids":["https://openalex.org/I193662353"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011892251","display_name":"Johan Jeuring","orcid":"https://orcid.org/0000-0001-5645-7681"},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Johan Jeuring","raw_affiliation_strings":["Utrecht University, Utrecht, Netherlands"],"affiliations":[{"raw_affiliation_string":"Utrecht University, Utrecht, Netherlands","institution_ids":["https://openalex.org/I193662353"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5032737176","display_name":"Patrik Jansson","orcid":"https://orcid.org/0000-0003-3078-1437"},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]},{"id":"https://openalex.org/I881427289","display_name":"University of Gothenburg","ror":"https://ror.org/01tm6cn81","country_code":"SE","type":"education","lineage":["https://openalex.org/I881427289"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Patrik Jansson","raw_affiliation_strings":["Chalmers University of Technology &amp; University of Gothenburg, Gothenburg, Sweden"],"affiliations":[{"raw_affiliation_string":"Chalmers University of Technology &amp; University of Gothenburg, Gothenburg, Sweden","institution_ids":["https://openalex.org/I66862912","https://openalex.org/I881427289"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5031504715","display_name":"Alex Gerdes","orcid":"https://orcid.org/0000-0002-7445-211X"},"institutions":[{"id":"https://openalex.org/I204136569","display_name":"The Open University","ror":"https://ror.org/05mzfcs16","country_code":"GB","type":"education","lineage":["https://openalex.org/I204136569"]},{"id":"https://openalex.org/I7876267","display_name":"Open University of the Netherlands","ror":"https://ror.org/018dfmf50","country_code":"NL","type":"education","lineage":["https://openalex.org/I7876267"]}],"countries":["GB","NL"],"is_corresponding":false,"raw_author_name":"Alex Gerdes","raw_affiliation_strings":["Open University, Utrecht, Netherlands","Open University, Utrecht, Netherlands#TAB#"],"affiliations":[{"raw_affiliation_string":"Open University, Utrecht, Netherlands","institution_ids":["https://openalex.org/I7876267"]},{"raw_affiliation_string":"Open University, Utrecht, Netherlands#TAB#","institution_ids":["https://openalex.org/I204136569"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5071276091","display_name":"Oleg Kiselyov","orcid":"https://orcid.org/0000-0002-2570-2186"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Oleg Kiselyov","raw_affiliation_strings":["FNMOC, Monterey, CA, USA"],"affiliations":[{"raw_affiliation_string":"FNMOC, Monterey, CA, USA","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5049714036","display_name":"Bruno C. d. S. Oliveira","orcid":"https://orcid.org/0000-0002-1846-7210"},"institutions":[{"id":"https://openalex.org/I40120149","display_name":"University of Oxford","ror":"https://ror.org/052gg0110","country_code":"GB","type":"education","lineage":["https://openalex.org/I40120149"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Bruno C. d. S. Oliveira","raw_affiliation_strings":["Oxford University, Oxford, United Kingdom","Oxford University, Oxford, United Kingdom,"],"affiliations":[{"raw_affiliation_string":"Oxford University, Oxford, United Kingdom","institution_ids":["https://openalex.org/I40120149"]},{"raw_affiliation_string":"Oxford University, Oxford, United Kingdom,","institution_ids":["https://openalex.org/I40120149"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":6,"corresponding_author_ids":["https://openalex.org/A5036347300"],"corresponding_institution_ids":["https://openalex.org/I193662353"],"apc_list":null,"apc_paid":null,"fwci":18.147,"has_fulltext":false,"cited_by_count":71,"citation_normalized_percentile":{"value":0.99203197,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"111","last_page":"122"},"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.9965000152587891,"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.9951000213623047,"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.9680296182632446},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8264744877815247},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.8011162281036377},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.756616473197937},{"id":"https://openalex.org/keywords/declarative-programming","display_name":"Declarative programming","score":0.6242514848709106},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6229947805404663},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.6229448318481445},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.5928592681884766},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.5385867357254028},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.5191392302513123},{"id":"https://openalex.org/keywords/functional-logic-programming","display_name":"Functional logic programming","score":0.4966498017311096},{"id":"https://openalex.org/keywords/reactive-programming","display_name":"Reactive programming","score":0.48730647563934326},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.46708083152770996},{"id":"https://openalex.org/keywords/functional-reactive-programming","display_name":"Functional reactive programming","score":0.44916021823883057},{"id":"https://openalex.org/keywords/programming-domain","display_name":"Programming domain","score":0.4236436188220978},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3285079896450043}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9680296182632446},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8264744877815247},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.8011162281036377},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.756616473197937},{"id":"https://openalex.org/C146206909","wikidata":"https://www.wikidata.org/wiki/Q531152","display_name":"Declarative programming","level":4,"score":0.6242514848709106},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6229947805404663},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.6229448318481445},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.5928592681884766},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.5385867357254028},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.5191392302513123},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.4966498017311096},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.48730647563934326},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.46708083152770996},{"id":"https://openalex.org/C119489759","wikidata":"https://www.wikidata.org/wiki/Q5508843","display_name":"Functional reactive programming","level":5,"score":0.44916021823883057},{"id":"https://openalex.org/C119263510","wikidata":"https://www.wikidata.org/wiki/Q7248501","display_name":"Programming domain","level":4,"score":0.4236436188220978},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3285079896450043},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0}],"mesh":[],"locations_count":8,"locations":[{"id":"doi:10.1145/1411286.1411301","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411286.1411301","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"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.140.3330","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.140.3330","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-010.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.366.2920","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.366.2920","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.dreixel.net/research/pdf/lgph.pdf","raw_type":"text"},{"id":"pmh:oai:hub.hku.hk:10722/188479","is_oa":false,"landing_page_url":"http://hdl.handle.net/10722/188479","pdf_url":null,"source":{"id":"https://openalex.org/S4377196271","display_name":"The HKU Scholars Hub (University of Hong Kong)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I889458895","host_organization_name":"University of Hong Kong","host_organization_lineage":["https://openalex.org/I889458895"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Conference_Paper"},{"id":"pmh:oai:publications.lib.chalmers.se:70250","is_oa":false,"landing_page_url":"http://publications.lib.chalmers.se/publication/70250-comparing-libraries-for-generic-programming-in-haskell","pdf_url":null,"source":{"id":"https://openalex.org/S4377196470","display_name":"Chalmers Publication Library (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text.TechReport"},{"id":"pmh:oai:publications.lib.chalmers.se:74346","is_oa":false,"landing_page_url":"http://publications.lib.chalmers.se/publication/74346-comparing-libraries-for-generic-programming-in-haskell","pdf_url":null,"source":{"id":"https://openalex.org/S4377196470","display_name":"Chalmers Publication Library (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text.Article.Conference.PeerReviewed"},{"id":"pmh:oai:research.chalmers.se:70250","is_oa":false,"landing_page_url":"https://research.chalmers.se/en/publication/70250","pdf_url":null,"source":{"id":"https://openalex.org/S4306402469","display_name":"Chalmers Research (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""},{"id":"pmh:oai:research.chalmers.se:74346","is_oa":false,"landing_page_url":"https://research.chalmers.se/en/publication/74346","pdf_url":null,"source":{"id":"https://openalex.org/S4306402469","display_name":"Chalmers Research (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":49,"referenced_works":["https://openalex.org/W60733025","https://openalex.org/W137792605","https://openalex.org/W200726789","https://openalex.org/W1501408037","https://openalex.org/W1502384207","https://openalex.org/W1544871986","https://openalex.org/W1580128549","https://openalex.org/W1589463184","https://openalex.org/W1594466563","https://openalex.org/W1601383237","https://openalex.org/W1688372159","https://openalex.org/W1927794125","https://openalex.org/W1947395352","https://openalex.org/W1961222213","https://openalex.org/W1979982425","https://openalex.org/W1986044902","https://openalex.org/W1994001680","https://openalex.org/W2005130481","https://openalex.org/W2046671194","https://openalex.org/W2057292961","https://openalex.org/W2058137890","https://openalex.org/W2058162377","https://openalex.org/W2080313769","https://openalex.org/W2082765113","https://openalex.org/W2093896470","https://openalex.org/W2112774031","https://openalex.org/W2119717320","https://openalex.org/W2124354055","https://openalex.org/W2131828631","https://openalex.org/W2132325017","https://openalex.org/W2135642511","https://openalex.org/W2136177623","https://openalex.org/W2140647971","https://openalex.org/W2157137298","https://openalex.org/W2160151966","https://openalex.org/W2168374629","https://openalex.org/W2508159688","https://openalex.org/W2806822774","https://openalex.org/W2912111500","https://openalex.org/W2913811625","https://openalex.org/W3004062484","https://openalex.org/W4205435528","https://openalex.org/W4244488020","https://openalex.org/W4245084474","https://openalex.org/W4250126356","https://openalex.org/W4285719527","https://openalex.org/W6605698683","https://openalex.org/W6632825457","https://openalex.org/W6635267325"],"related_works":["https://openalex.org/W2161156675","https://openalex.org/W2060445097","https://openalex.org/W2886887129","https://openalex.org/W4296878212","https://openalex.org/W3004782279","https://openalex.org/W1794229347","https://openalex.org/W2041555632","https://openalex.org/W4205481509","https://openalex.org/W2116311377","https://openalex.org/W2152365487"],"abstract_inverted_index":{"Datatype-generic":[0],"programming":[1,37,47,60,76,99],"is":[2,110],"defining":[3],"functions":[4],"that":[5],"depend":[6],"on":[7],"the":[8,34,57,92,103,106],"structure,":[9],"or":[10],"\"shape\",":[11],"of":[12,26,70,80,86,105],"datatypes.":[13],"It":[14],"has":[15,28,126],"been":[16,29],"around":[17],"for":[18,45,51,94,112,117,122,132],"more":[19],"than":[20],"10":[21,43],"years,":[22],"and":[23,55,72,101],"a":[24,68,74,78,114,123,129],"lot":[25],"progress":[27],"made,":[30],"in":[31,33,62],"particular":[32,130],"lazy":[35],"functional":[36,64],"language":[38],"Haskell.":[39,52],"There":[40],"are":[41],"morethan":[42],"proposals":[44],"generic":[46,59,75,98,118],"libraries":[48,61,100],"orlanguage":[49],"extensions":[50],"To":[53],"compare":[54],"characterise":[56],"many":[58],"atyped":[63],"language,":[65],"we":[66],"introduce":[67],"set":[69,79],"criteria":[71],"develop":[73],"benchmark:":[77],"characteristic":[81],"examples":[82],"testing":[83],"various":[84],"facets":[85],"datatype-generic":[87,133],"programming.":[88,134],"We":[89],"have":[90],"implemented":[91],"benchmark":[93],"nine":[95],"existing":[96],"Haskell":[97],"present":[102],"evaluation":[104],"libraries.":[107],"The":[108],"comparison":[109],"useful":[111],"reaching":[113],"common":[115],"standard":[116],"programming,":[119],"but":[120],"also":[121],"programmer":[124],"who":[125],"to":[127],"choose":[128],"approach":[131]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":2},{"year":2015,"cited_by_count":3},{"year":2014,"cited_by_count":6},{"year":2013,"cited_by_count":6},{"year":2012,"cited_by_count":17}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
