2010 · 110 citations · 42 references
ComputingComputer ScienceProgramming LanguagesSoftware EngineeringTheory Of ComputationData TypesGeneric ProgrammingObject-oriented DesignObject-oriented ProgrammingType CheckingType SystemsAd Hoc PolymorphismPolymorphic Type SystemsPolymorphic TypesType ClassesType ConstructorsType PolymorphismType TheoryType-level Programming
Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism. Type classes have been shown to provide a type-safe solution to important challenges in software engineering and programming languages such as, for example, retroactive extension of programs. They are also recognized as a good mechanism for concept-based generic programming and, more recently, have evolved into a mechanism for type-level computation.
42
How to make ad-hoc polymorphism less ad hoc
Philip Wadler, Stephen Blott · 1989 · 770 citations · Full text
An Overview of the Scala Programming Language
Martin Odersky, Philippe Altherr, Vincent Cremet et al. · Infoscience (Ecole Polytechnique Fédérale de Lausanne) · 2004 · 511 citations · Full text
Simple unification-based type inference for GADTs
Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich et al. · 2006 · 336 citations
F-bounded polymorphism for object-oriented programming
Peter S. Canning, William R. Cook, Walter L. Hill et al. · 1989 · 330 citations