{"id":"https://openalex.org/W4237270226","doi":"https://doi.org/10.1145/1190216.1190229","title":"Modular type classes","display_name":"Modular type classes","publication_year":2007,"publication_date":"2007-01-17","ids":{"openalex":"https://openalex.org/W4237270226","doi":"https://doi.org/10.1145/1190216.1190229"},"language":"en","primary_location":{"id":"doi:10.1145/1190216.1190229","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1190216.1190229","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","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/A5050585539","display_name":"Derek Dreyer","orcid":"https://orcid.org/0000-0002-3884-6867"},"institutions":[{"id":"https://openalex.org/I160992636","display_name":"Toyota Technological Institute at Chicago","ror":"https://ror.org/02sn5gb64","country_code":"US","type":"education","lineage":["https://openalex.org/I160992636"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Derek Dreyer","raw_affiliation_strings":["Toyota Technological Institute at Chicago"],"affiliations":[{"raw_affiliation_string":"Toyota Technological Institute at Chicago","institution_ids":["https://openalex.org/I160992636"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5028720578","display_name":"Robert Harper","orcid":"https://orcid.org/0000-0002-9400-2941"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Robert Harper","raw_affiliation_strings":["Carnegie Mellon University"],"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5070087274","display_name":"Manuel M. T. Chakravarty","orcid":null},"institutions":[{"id":"https://openalex.org/I31746571","display_name":"UNSW Sydney","ror":"https://ror.org/03r8z3t63","country_code":"AU","type":"education","lineage":["https://openalex.org/I31746571"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Manuel M. T. Chakravarty","raw_affiliation_strings":["University of New South Wales"],"affiliations":[{"raw_affiliation_string":"University of New South Wales","institution_ids":["https://openalex.org/I31746571"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5089112216","display_name":"Gabriele Keller","orcid":"https://orcid.org/0000-0003-1442-5387"},"institutions":[{"id":"https://openalex.org/I31746571","display_name":"UNSW Sydney","ror":"https://ror.org/03r8z3t63","country_code":"AU","type":"education","lineage":["https://openalex.org/I31746571"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Gabriele Keller","raw_affiliation_strings":["University of New South Wales"],"affiliations":[{"raw_affiliation_string":"University of New South Wales","institution_ids":["https://openalex.org/I31746571"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5050585539"],"corresponding_institution_ids":["https://openalex.org/I160992636"],"apc_list":null,"apc_paid":null,"fwci":2.8978,"has_fulltext":false,"cited_by_count":31,"citation_normalized_percentile":{"value":0.92125254,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"63","last_page":"70"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9966999888420105,"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"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9947999715805054,"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/type-inference","display_name":"Type inference","score":0.8569387197494507},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7863162755966187},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.7710021734237671},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7681906819343567},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.6469269394874573},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.5515388250350952},{"id":"https://openalex.org/keywords/class-hierarchy","display_name":"Class hierarchy","score":0.5400794744491577},{"id":"https://openalex.org/keywords/structuring","display_name":"Structuring","score":0.5365334749221802},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.5213445425033569},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.5207676291465759},{"id":"https://openalex.org/keywords/abstract-data-type","display_name":"Abstract data type","score":0.509224534034729},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.47310400009155273},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.46607327461242676},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.4039683938026428},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.39504075050354004},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.3235011398792267},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.22724822163581848},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.19442397356033325}],"concepts":[{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.8569387197494507},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7863162755966187},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.7710021734237671},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7681906819343567},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.6469269394874573},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5515388250350952},{"id":"https://openalex.org/C2781289151","wikidata":"https://www.wikidata.org/wiki/Q2903989","display_name":"Class hierarchy","level":3,"score":0.5400794744491577},{"id":"https://openalex.org/C2775945657","wikidata":"https://www.wikidata.org/wiki/Q381442","display_name":"Structuring","level":2,"score":0.5365334749221802},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.5213445425033569},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5207676291465759},{"id":"https://openalex.org/C175971053","wikidata":"https://www.wikidata.org/wiki/Q827335","display_name":"Abstract data type","level":2,"score":0.509224534034729},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.47310400009155273},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.46607327461242676},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.4039683938026428},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.39504075050354004},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.3235011398792267},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.22724822163581848},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.19442397356033325},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C10138342","wikidata":"https://www.wikidata.org/wiki/Q43015","display_name":"Finance","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1190216.1190229","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1190216.1190229","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":11,"referenced_works":["https://openalex.org/W2039211229","https://openalex.org/W2053070172","https://openalex.org/W2059895047","https://openalex.org/W2099305192","https://openalex.org/W2102185243","https://openalex.org/W2107214848","https://openalex.org/W2120348241","https://openalex.org/W2133639043","https://openalex.org/W2163976959","https://openalex.org/W2168938117","https://openalex.org/W4233840497"],"related_works":["https://openalex.org/W2112150205","https://openalex.org/W2151275061","https://openalex.org/W4237270226","https://openalex.org/W2157155332","https://openalex.org/W1987975642","https://openalex.org/W2964853020","https://openalex.org/W2979520889","https://openalex.org/W2412614833","https://openalex.org/W2168938117","https://openalex.org/W4235669620"],"abstract_inverted_index":{"ML":[0],"modules":[1,82],"and":[2,23,35,83,94,109,143],"Haskell":[3],"type":[4,49,65,84,87,110,120,128,147],"classes":[5,30,66],"have":[6,115],"proven":[7],"to":[8,153],"be":[9,53],"highly":[10],"effective":[11],"tools":[12],"for":[13,125],"program":[14,21,33],"structuring.":[15],"Modules":[16],"emphasize":[17,31],"explicit":[18,116],"configuration":[19],"of":[20,26,48,58,71,73,81,101],"components":[22],"the":[24,45,56],"use":[25,72,126],"data":[27],"abstraction.":[28],"Type":[29],"implicit":[32],"construction":[34],"ad":[36],"hoc":[37],"polymorphism.":[38],"In":[39,112],"this":[40],"paper,":[41],"we":[42],"show":[43],"how":[44],"implicitly-typed":[46],"style":[47],"class":[50,88,92,121],"programming":[51],"may":[52],"supported":[54],"within":[55],"framework":[57],"an":[59],"explicitly-typed":[60],"module":[61,107],"language":[62],"by":[63,127],"viewing":[64],"as":[67,91,99,106,138,150],"a":[68,78,131,139,145,151],"particular":[69],"mode":[70],"modules.":[74],"This":[75],"view":[76],"offers":[77],"harmonious":[79],"integration":[80],"classes,":[85],"where":[86],"features,":[89],"such":[90,105],"hierarchies":[93,108],"associated":[95],"types,":[96],"arise":[97],"naturally":[98],"uses":[100],"existing":[102],"module-language":[103],"constructs,":[104],"components.":[111],"addition,":[113],"programmers":[114],"control":[117],"over":[118],"which":[119],"instances":[122],"are":[123],"available":[124],"inference":[129,148],"in":[130],"given":[132],"scope.":[133],"We":[134],"formalize":[135],"our":[136],"approach":[137],"Harper-Stone-style":[140],"elaboration":[141],"relation,":[142],"provide":[144],"sound":[146],"algorithm":[149],"guide":[152],"implementation.":[154]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":5},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":4},{"year":2015,"cited_by_count":3},{"year":2013,"cited_by_count":1},{"year":2012,"cited_by_count":4}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
