IA014 Advanced Functional Programming

Lecture VIII - GADTs

Lecture dates

5. 5. 2020

Reading

A. Dergunov: Generalized Algebraic Data Types in Haskell. The Monad Reader, Issue 22. [PDF]

If you want just one reference, this is it.

Haskell/GADT on wikibooks 

A brief introduction to GADTs. Contains significantly less material than the link above.

GHC Users Guide: Chapter 7  GHC Language Features

D. Gratzer: Introduction to Dependent Types: Haskell on Steroids [link]

Additional material

See the references provided in the GHC Users Guide (in the sections linked above).

Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/08-gadt.pdf
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/51711414/gadtEval.hs
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/51711414/gadtVectors.hs
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/51711414/gadtSafeLists.hs
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/51711414/gadtSingleton.hs
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
https://is.muni.cz/el/fi/jaro2020/IA014/um/51711414/gadtless.hs

Video recordings

GADT motivation by examples; GADT definition and properties, data kinds, type families; typical GADTs - evaluators, safe lists and vectors; eliminating GADTs