IA014 Advanced Functional Programming

Lecture V - Type Classes

Lecture dates

26. 3. 2018, 9. 4. 2018

Reading

Primary papers

P. Wadler, S. Blott: How to make ad-hoc polymorphism less ad  hoc. POPL'89. [PS]

The paper which introduced type classes. Still great place to start with type classes. You will recognize some material from the lecture.

M. Jones: Functional Programming with Overloading and  Higher-Order Polymorphism. AFPT Spring School 1995. [PDF]

Sums  up the qualified types and constructor classes. Very accessible.

Additional material

M. Jones: A theory of qualified types. ESOP’92.

The paper which introduced qualified types.

M. Jones: A system of cnstructor classes. FPCA’93.

Constructor classes were introduced here.

M. Jones: Type Classes with Functional Dependencies. ESOP'00.

Introduced the correct way of handling multiparameter type classes.

A History of Haskell: Being Lazy With Class. 2007. (Section 6) [PDF]

J. Peterson and M. Jones: Implementing Type Classes. PLDI'93. [PS]

C. Hall, K. Hammond, S. Peyton Jones, P. Wadler: Type classes in Haskell. ESOP'94. [PS]

Corresponding book chapters

Slides

Error: The referenced object does not exist or you do not have the right to read.
https://is.muni.cz/el/1433/jaro2018/IA014/um/05-typeclasses.pdf
Code for lecture 05 - Type Classes
Three implementations of the Collects class.