Type inference and type classes

  • Stephen Blott
Conference paper
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


Type classes were developed in association with the lazy functional programming language Haskell [1] to handle overloading since no satisfactory off-the-shelf solution was available. The motivation and description of type classes is given in [2].


Type System Type Class Type Scheme Functional Program Typing Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    P. Hudak, and P. Wadler (editors), Report on the functional programming language Haskell, Technical report YALEU/DCS/RR656, Yale University, Department of Computer Science, November 1988.Google Scholar
  2. [2]
    Phil Wadler and Stephen Blott, How to make ad-hoc polymorphism less ad hoc, In Proceedings of the 16’th Annual Symposium on Principles of Programming Languages, Austin, Texas, January 1989.Google Scholar
  3. [3]
    R. Hindley, The principal type scheme of an object in combinatory logic. In Trans. Am. Math. Soc. 146, pp. 29–60, December 1969.MATHMathSciNetGoogle Scholar
  4. [4]
    R. Milner, A theory of type polymorphism in programming. In J. Comput. Syst. Sci. 17, pp. 348–375, 1978.CrossRefMATHMathSciNetGoogle Scholar
  5. [5]
    L. Damas and R. Milner, Principal type schemes for functional programs. In Proceedings of the 9’th Annual Symposium on Principles of Programming Languages, Albuquerque, N.M., January 1982.Google Scholar
  6. [6]
    Luca Cardelli, Basic polymorphic typechecking, Computing Science tech. report 119, AT and T Bell laboratories, Murray Hill, NJ, 1984.Google Scholar
  7. [7]
    Kevin Hammond, De-Mysticifying type classes, in Proceedings of the 2nd Glasgow FP group workshop, Fraserburgh, Scotland, 1989.Google Scholar
  8. [8]
    S. Blott, Thesis, Computing Science Dept., University of Glasgow, (in preparation).Google Scholar
  9. [9]
    L. Damas, Type assignment in programming languages, Thesis, University of Edinburgh, 1985.Google Scholar
  10. [10]
    J. A. Robinson, A machine orientated logic based on the resolution principal. JACM 12, 1, pp. 23–41, 1965.CrossRefMATHGoogle Scholar
  11. [11]
    V. Breazu, T. Coquand, C. A. Gunter, and S. Scedrov. Inheritance and explicit coercion (preliminary report), V. Breazu, Department of Computer and Information Sciences, University of Pensylvania, Philidelphia, PA 19104, USA. October 1988.Google Scholar

Copyright information

© British Computer Society 1990

Authors and Affiliations

  • Stephen Blott
    • 1
  1. 1.Department of Computing ScienceUniversity of GlasgowUK

Personalised recommendations