Advanced Functional Programming in Haskell

Typed functional programming languages allow for the rapid development of robust programmes. This course explores some of the more advanced language features of Haskell, a state-of-the-art functional programming language, together with some of its theoretical background. The course aims to teach not only the more advanced Haskell features, such as GADTs or type families, but also the underlying theory. Besides the lectures, there are numerous supervised lab sessions to help you come to grips with the material covered in class.