Type-checking multi-parameter type classes

Dominic Duggan, John Ophel

Research output: Contribution to journalArticlepeer-review

10 Scopus citations

Abstract

Type classes are a novel combination of parametric polymorphism and constrained types. Although most implementations restrict type classes to be single-parameter, the generalization to multi-parameter type classes has gained increasing attention. A problem with multiparameter type classes is the increased possibilities they introduce for ambiguity in inferred types, impacting their usefulness in many practical situations. A new type-checking strategy, domain-driven unifying resolution, is identified as an approach to solve these problems. Domaindriven unifying resolution is simple, efficient, and practically useful. However, even with severe restrictions on instance definitions, it is not possible to guarantee that type-checking with unifying resolution terminates. This is in contrast with the naive generalization of single parameter resolution strategies. Domain-driven unifying resolution is guaranteed to terminate if the type class constraints are satisfiable; however satisfiability is undecidable even with severe restrictions on instance definitions. These results shed some light on ambiguity problems with multi-parameter type classes.

Original languageEnglish
Pages (from-to)133-158
Number of pages26
JournalJournal of Functional Programming
Volume12
Issue number2
DOIs
StatePublished - 2002

Fingerprint

Dive into the research topics of 'Type-checking multi-parameter type classes'. Together they form a unique fingerprint.

Cite this