A course is a series of lessons (with text, code, and sometimes video) that leads you through a particular topic. The courses are supplemented by links to our Haskell reference articles which provide more in-depth coverage of any topics a course touches on briefly. Some courses focus on a particular problem, showing multiple ways to handle it, while teaching you Haskell in the process. Others look at a topic such as functors and guide you to a deep but practical understanding.

Functortown: A Map of the Territory

The Functortown Functortown
9 lessons
course is a tour of the entire functor family in Haskell and explores their relationships and differences. Each functor class is introduced via a motivating example, instances and usage examples are explored in detail, and we’ll use a property testing library to learn about the laws of each class. This will be a long course, covering seven important typeclasses.

Web Servers, at a low level

The Web Servers course Web Servers
13 lessons
6 videos; 49 minutes
starts by discussing what HTTP and web servers are and follows the HTTP specification in building a Haskell web server from scratch. This includes explaining different character encodings and the differences between the Haskell Text and ByteString types.


Timepieces Timepieces
4 lessons
is a course that aims to highlight an underhyped corner of Haskell’s ecosystem: libraries for making native GUI applications. We’ll work on building clocks, with different libraries and different tweaks, so we can compare the features and pain points (if any) of all the libraries we try out.


The Validation course Validation
9 lessons
9 videos: 150 minutes
starts from basic conditional statements and pattern matching. We then build a suite of functions to validate user inputs, refactoring along the way to see what benefits using Maybe, Either, and Validation types brings, as well as using newtype to differentiate inputs. We also gain a practical understanding of the difference between Applicative and Monad.

NixOS on AWS

NixOS on AWS NixOS on AWS
5 videos; 36 minutes
shows how we deploy our site to EC2 using NixOS. In addition to showing what Nix can do, we also take the opportunity to teach some Haskell by writing our deploy script in Haskell using the Turtle library.

Join Type Classes for courses and projects to get you started and make you an expert in FP with Haskell.