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
- 7.4.7. Generalised Algebraic Data Types (GADTs)
- 7.7. Type families
- 7.8. Kind polymorphism and promotion
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
Recording from 2019 (edited)
GADT motivation by examples; GADT definition and properties, data kinds, type families; typical GADTs - evaluators, safe lists and vectors; eliminating GADTs