Attention: the admission period for the selection minoren is still open until today 23:59hrs (15 April 2024).

Advanced functional programming


About this course

This course builds upon knowledge gained in the introductory courses on functional programming and languages and compilers.
Using Haskell as our language of choice, several advanced functional programming techniques, patterns, libraries and tools are treated.
One goal of this course is to equip you with sufficient knowledge in order to participate in research projects in this field.
Some of the topics that the course covers are: development tools, data structures, monads, type families, existential types and higher rank polymorphism.

Course form
Lectures, tutorials.

To be announced.

Learning outcomes

At the end of the course, the student will

  • be able to use a wide range of Haskell tools and libraries
  • know how to structure and write large programs
  • be proficient in the theoretical underpinnings of FP such as lambda calculus and type systems
  • be able to understand formal texts and research papers on FP language concepts
  • be familiar with current FP research


To qualify for a repair of the final result the mark needs to be at least a 4.

Basic experience with a functional programming language, such as Haskell.

Required prior knowledge

You must meet the following requirements

  • Assigned study entrance permit for the master

Link to more information

If anything remains unclear, please check the FAQ of Utrecht University.


  • Start date

    3 februari 2025

    • Ends
      11 april 2025
    • Term *
      Period 3
    • Location
    • Instruction language
    Enrolment starts in 203 days
For guests registration, this course is handled by Utrecht University