IA014 Advanced Functional Programming

Lecture IV - Polymorphism and Type Inference

Lecture dates

24. 3. 2020 [week 6] (parametric polymorphism, system HM, type inference)

31. 3. 2020 [week 7(system F)

Reading

Books

  • [Pierce], chapter 23
  • H. Barendregt: Lambda Calculi with Types [PDF]

​Other

  • L. Damas and R. Milner: Principal type-schemes for functional programs [PDF]
    • ​The original  paper describing the type inference algorithm W
  • E. Marquart: Hindley-Milner Type Inference [PDF]
    • Easily accessible write-up on the type inference algorithm, by a student at TUM.
  • L. Cardelli, P. Wegner: On Understanding Types, Data Abstraction, and Polymorphism [ACM DL] (accessible from MU)
  • Wikipedia page on Hindley-Milner type system

Slides

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/04-HMpoly.pdf

Exercises

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/exercises/ex04.pdf

Tools

Lambda
Lambda calculus term evaluator

Lambda Tree
Type derivation tree builder

Video recordings

  1. System HM - recorded lecture from 2019
  2. System HM - type derivation 1
  3. System HM - type derivation 2
  4. System F
  5. System F - term evaluation
  6. System F - type inference