{"id":"https://openalex.org/W2009825892","doi":"https://doi.org/10.1145/158511.158698","title":"Type checking type classes","display_name":"Type checking type classes","publication_year":1993,"publication_date":"1993-01-01","ids":{"openalex":"https://openalex.org/W2009825892","doi":"https://doi.org/10.1145/158511.158698","mag":"2009825892"},"language":"en","primary_location":{"id":"doi:10.1145/158511.158698","doi":"https://doi.org/10.1145/158511.158698","is_oa":true,"landing_page_url":"https://doi.org/10.1145/158511.158698","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/158511.158698","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/158511.158698","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5062636889","display_name":"Tobias Nipkow","orcid":"https://orcid.org/0000-0003-0730-515X","observed_orcids":["https://orcid.org/0000-0003-0730-515X"]},"institutions":[{"id":"https://openalex.org/I62916508","display_name":"Technical University of Munich","ror":"https://ror.org/02kkvpp62","country_code":"DE","type":"education","lineage":["https://openalex.org/I62916508"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Tobias Nipkow","raw_affiliation_strings":["","TU Miinchentt"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"","institution_ids":[]},{"raw_affiliation_string":"TU Miinchentt","institution_ids":["https://openalex.org/I62916508"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5063111123","display_name":"Christian Prehofer","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I62916508","display_name":"Technical University of Munich","ror":"https://ror.org/02kkvpp62","country_code":"DE","type":"education","lineage":["https://openalex.org/I62916508"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Christian Prehofer","raw_affiliation_strings":["","TU Miinchentt"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"","institution_ids":[]},{"raw_affiliation_string":"TU Miinchentt","institution_ids":["https://openalex.org/I62916508"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I62916508"],"apc_list":null,"apc_paid":null,"fwci":5.6036,"has_fulltext":true,"cited_by_count":41,"citation_normalized_percentile":{"value":0.97600565,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":87,"max":95},"biblio":{"volume":null,"issue":null,"first_page":"409","last_page":"418"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T11727","display_name":"Advanced Algebra and Logic","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T10034","display_name":"Syntax, Semantics, Linguistic Variation","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1203","display_name":"Language and Linguistics"},"field":{"id":"https://openalex.org/fields/12","display_name":"Arts and Humanities"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/type-classes","display_name":"type classes","score":0.8230000138282776},{"id":"https://openalex.org/keywords/type-inference","display_name":"type inference","score":0.9890000224113464},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8119999766349792},{"id":"https://openalex.org/keywords/polymorphism","display_name":"polymorphism","score":0.6690000295639038},{"id":"https://openalex.org/keywords/overload","display_name":"overloading","score":0.8379999995231628},{"id":"https://openalex.org/keywords/constraint-solving","display_name":"constraint solving","score":0.718999981880188},{"id":"https://openalex.org/keywords/unification-algorithms","display_name":"unification algorithms","score":0.8709999918937683},{"id":"https://openalex.org/keywords/principal-types","display_name":"principal types","score":0.8859999775886536},{"id":"https://openalex.org/keywords/type-systems","display_name":"type systems","score":0.3490000069141388}],"concepts":[{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.9208146333694458},{"id":"https://openalex.org/C96146094","wikidata":"https://www.wikidata.org/wiki/Q609057","display_name":"Unification","level":2,"score":0.7703455686569214},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.7574176788330078},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6894977688789368},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6247425675392151},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5947687029838562},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.49840617179870605},{"id":"https://openalex.org/C2778029271","wikidata":"https://www.wikidata.org/wiki/Q5421931","display_name":"Extension (predicate logic)","level":2,"score":0.4286603033542633},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.41757482290267944},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3794403672218323},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.321352481842041},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.26555371284484863},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/158511.158698","doi":"https://doi.org/10.1145/158511.158698","is_oa":true,"landing_page_url":"https://doi.org/10.1145/158511.158698","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/158511.158698","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.42.6449","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.6449","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www4.informatik.tu-muenchen.de/papers/NipkowPrehofer_P2AS1993.ps.gz","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.5.9192","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.5.9192","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www4.in.tum.de/publ/papers/NipkowPrehofer_P2AS1993.pdf","raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/158511.158698","doi":"https://doi.org/10.1145/158511.158698","is_oa":true,"landing_page_url":"https://doi.org/10.1145/158511.158698","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/158511.158698","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93","raw_type":"proceedings-article"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2009825892.pdf","grobid_xml":"https://content.openalex.org/works/W2009825892.grobid-xml"},"referenced_works_count":18,"referenced_works":["https://openalex.org/W1506492451","https://openalex.org/W1554432400","https://openalex.org/W1783314273","https://openalex.org/W1829244603","https://openalex.org/W1978692906","https://openalex.org/W2015256273","https://openalex.org/W2059895047","https://openalex.org/W2062090834","https://openalex.org/W2062950667","https://openalex.org/W2094945667","https://openalex.org/W2131067178","https://openalex.org/W2147130609","https://openalex.org/W2163976959","https://openalex.org/W2166822586","https://openalex.org/W3008255804","https://openalex.org/W3093453896","https://openalex.org/W4245292236","https://openalex.org/W6638886220"],"related_works":["https://openalex.org/W2156926516","https://openalex.org/W2147130609","https://openalex.org/W2106952596","https://openalex.org/W2131635208","https://openalex.org/W2039211229","https://openalex.org/W2140169252","https://openalex.org/W3132195268","https://openalex.org/W7100995000","https://openalex.org/W2041659737","https://openalex.org/W7203612333"],"abstract_inverted_index":{"We":[0,29],"study":[1],"the":[2,14,41],"type":[3,10,42,52],"inference":[4,53],"problem":[5],"for":[6,61],"a":[7,37,45,67],"system":[8],"with":[9,27,78],"classes":[11,20],"as":[12],"in":[13,44],"functional":[15],"programming":[16],"language":[17],"Haskell.":[18],"Type":[19],"are":[21],"an":[22,73,88],"extension":[23,74],"of":[24,75,83,90],"ML-style":[25],"polymorphism":[26,34],"overloading.":[28],"generalize":[30],"Milner's":[31],"work":[32],"on":[33],"by":[35],"introducing":[36],"separate":[38],"context":[39],"constraining":[40],"variables":[43],"typing":[46],"judgement.":[47],"This":[48],"lead":[49],"to":[50],"simple":[51],"systems":[54],"and":[55],"algorithms":[56],"which":[57,71],"closely":[58],"resemble":[59],"those":[60],"ML.":[62],"In":[63],"particular":[64],"we":[65],"present":[66],"new":[68],"unification":[69,77,92],"algorithm":[70],"is":[72],"syntactic":[76],"constraint":[79],"solving.":[80],"The":[81],"existence":[82],"principal":[84],"types":[85],"follows":[86],"from":[87],"analysis":[89],"this":[91],"algorithm.":[93]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":1}],"updated_date":"2026-11-07T11:25:07.637180","created_date":"2016-06-24T00:00:00"}
