Whether you have a new team member with no Haskell experience who needs to learn the basics, or experienced Haskellers who need to master some advanced topics, we can provide a training program tailored to your needs. We can teach the Haskell language, extensions and common libraries, as well as how to use tools such as the profiler and the testsuite coverage checker.

We can tailor our training courses to your particular goals. For example, you may wish to focus on a particular area, such as domain specific languages (DSLs), parallelism, or design patterns for functional programming.

They have the ability to explain difficult concepts in a clear, easily understandable way. We had a group with various backgrounds and many people commented on how wonderful it was to have an instructor who had both an extremely deep understanding of the material, and also had a unique ability to effortlessly pass from topic to topic while they conveyed their knowledge to everyone. We got what we wanted and more from the Haskell training workshop with Well-Typed and we are already planning the next one.

— Adam Drake, Chief Data Scientist and Director of Engineering at Zanox  

Remote Interactive Courses

We are now offering online versions of some of our courses for those who want to improve their Haskell from the convenience of their home/office. These courses are a mixture of lectures, discussions and live coding delivered via a video conferencing platform. The maximum course size is deliberately kept small so that it is still possible to ask and discuss individual questions with our experienced lecturers. Any upcoming courses will be advertised on our blog and tickets can be purchased here. If you are interested in our online format, but can’t make the time or the topic you are interested in isn’t available, feel free to drop us a line with requests for other online courses.

On-demand on-site (or remote) courses

We offer a number of predefined courses at fixed prices; however, we are flexible. If you would like to modify, combine, or extend the courses, or get training on a completely different specialized topic, please contact us, and we will give you a quote.

Generally, we prefer to offer courses in person on-site. We think that this leads to the best learning experience for the participants. However, on request, we are also willing to consider remote training. Just contact us.

The base courses are:

We can easily offer modules or courses on additional topics, including but not limited to:

  • Parallelism and Concurrency,
  • Interpreters and Compilers,
  • Embedded Domain-Specific Languages,
  • Type-level Programming,
  • Datype-generic Programming and Template Haskell,
  • Interfacing with C using the Foreign Function Interface,
  • Web Programming,
  • Database Programming.

If you are interested in a particular topic that is missing from this list, please talk to us in order to find out whether we can provide training on that topic as well.

Course Logistics

In all courses we spend about half of the training time in lecture format, with participants doing exercises in the other half. This ensures sufficient time for the material to sink in. We will be on hand during the exercises to help if people get stuck, and to answer individual questions.

Ideally participants will work on the exercises on their own machines. That way they are already familiar with the environment, and they will still have their work when the training is over. We will give a short list of freely available (open source) software that it would be useful to have installed in advance (e.g. GHC, the Haskell compiler. The other items depend on the details of the course).

There are no formal restrictions on the number of participants per course, although we ask that you advise us of the probable number of participants in advance. Depending on the actual number of participants, we may recommend to use additional lecturers in order to ensure that everyone has sufficient opportunity to ask questions and get help during the exercises.

We offer on-site consulting in combination with on-site courses at a reduced daily rate. Please contact us if you are interested.


The base costs of the predefined courses are listed on the respective pages. To these base costs, travel costs depending on the location of the course venue are added. Additional lecturers also cost extra.

For customised courses, we estimate how much additional preparation time we need to develop the course materials, and will provide you with a quote based on that estimate upon request.

For a quote, or for more information, please e-mail us with as many details as possible.

Why Well-Typed

Our teachers have more than a decade of experience with Haskell, functional programming, compiler design, and related areas. They have been training people at all experience levels, both in academia and in industry.

The insight they brought about how to think in Haskell was great and something that would be very difficult to get from a book or online.

— Anonymous