Applied Functional Programming in Haskell

Course code
Course fee (excl. housing)
Student fee (excl. housing)
Apply now!

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 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.

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. 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.

The course covers a variety of intermediate topics, including type-level programming, monad and monad transformers, laziness, and testing. We offer various lab exercises to practice the material, together with supervision to help you if you are stuck.

Course director

Dr. Wouter Swierstra

Course aim

Participants will learn a modern programming paradigm. The acquired knowledge will not only enable participants to contribute to programming projects using Haskell – it will also enable them to apply the concepts they have learned to other projects, making them better programmers in any language.

Study load

The course takes one week, with approximately 4 hours of lectures per day. The remaining 4 hours will be for lab sessions.

We intend to organise the summer school in Utrecht, if at all possible, but are making back-up plans to host the school virtually if necessary.


Course fee:
Student fee:
Course + course materials + mealplan
Housing fee:
  • The fee published here will cover most meals, coffee, and course materials.
  • The price may change, depending on whether the course is virtual or not. Please register to express your intention to participate, but do not pay the registration fee until the nature of this year's summer school in more clear.
  • Finally, we offer a 1000 euro discount for all participants associated with a university or similar non-profit organization. You can include your affiliation in the short motivation.

Housing through: Utrecht Summer School.


More information can be found on our website:

More information

Dr. Wouter Swierstra | E: | T: +31 (0)302539207


Application deadline: 01 June 2021

Share this course