Utrecht, Netherlands

Advanced Functional Programming

when 6 July 2021 - 10 July 2021
language English
duration 1 week
credits 1 EC
fee EUR 1500

Due to the covid-19 outbreak, this course has been postponed to 2021.

Typed functional programming languages allow for the rapid development of robust programs. 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 some of the more recent Haskell features, such 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.

We expect students to have a basic familiarity with Haskell already. You should be able to write recursive functions over algebraic data types, such as lists and trees. There is a great deal of online material freely available that covers this material.

From these basics, we aim to cover several more advanced topics, including monads, applicative functors, GADTs, (typed) lambda calculus, and generic programming. Each day we aim to cover a variety of topics in the lectures, mixing both practical programming advice and theoretical foundations. The supervised daily lab sessions offer students the opportunity to practice the material and discuss their problems with our Haskell experts.

If you've already started learning Haskell and are looking to take your functional programming skills to the next level, this is the course for you.

Course leader

Dr. Wouter Swierstra

Fee info

EUR 1500: Course + course materials + lunch

We offer a 1000 euro discount for students and staff members of any university, provided they can provide a proof of their affiliation.
EUR 200: Housing fee (optional)


We actively try to keep the school accessible for under-represented groups. If you need further financial assistance to support your application, please contact the organisers directly.

Register for this course
on course website