Blog Post

MDCC TechTalk - Classes, Jim, but not as we know them

Play MDCC TechTalk - Classes, Jim, but not as we know them
Sign in to queue


by Simon Peyton Jones, Principal Researcher, Microsoft Research

Haskell is now quite widely used, but its most important contributions are the ideas that it embodies. In this talk Simon focuses on one of these ideas, namely type classes, with a few anecdotes and reflections along the way about the process of developing the language.

Type classes are probably Haskell's most distinctive feature. The original idea is very neat and, better still, it led to a long series of subsequent generalizations and innovations. Indeed, although the language is now nineteen years old, Haskell's type system is still in a state of furious development. For example, Simon is involved in adding type-level functions to Haskell, as he briefly describes. 

Simon explains what type classes are, how they differ from the classes of mainstream object oriented languages, why he thinks they are so cool, and what the hot topics are. 

About Simon Peyton Jones

Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998.

His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.
His home page is at



Right click to download this episode

The Discussion

Add Your 2 Cents