This paper presents type classes, a new approach to ad-hoc polymorphism. Type classes permit overloading of arithmetic operators such as multiplication, and generalise the "eqtype variables" of Standard ML. Type classes extend the Hindley/Milner polymorphic type system, and provide a new approach to issues that arise in object-oriented programming, bounded type quantification, and abstract data types. This paper provides an informal introduction to type classes, and defines them formally by means of type inference rules.
|Title of host publication||POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages|
|Place of Publication||New York, NY, USA|
|Number of pages||17|
|Publication status||Published - 1989|