Thinking about Haskell?
Whether you're just beginning, or ready to put principles into practice, we're your guide.
Why Type Classes

How do you learn a programming language?

  • Books start from basics and build up, and along the way can introduce you to things you might not have known you needed.
  • Good documentation gives a concise summary of how to use something, if you already have the context and know what you’re looking for.

Why not have both? In one place, with consistent style and quality. That’s Type Classes.

Type Classes membership offers a combination of book-like courses and documentation for Haskell features, linked together into a single resource.

Our top-quality courses and documentation include some things that no other Haskell resource does:

Look around
What's new
Introduction to GHC Extensions Series
This series begins with an introduction to GHC extensions, what they are and how to use them. That page is connected to a series …
Updates to Partial type signatures
We’ve expanded the partial type signatures lesson. It discusses what kinds of things can be inferred with the extension, …
New lesson in the Applicative series: Applicatives compose
After a brief look at IO as an applicative functor, we explore what it means that functors compose, paying …
♥️
Thanks for Type Classes and all you provide to the Haskell community. It’s helped me go from a longtime Haskell “lurker” to someone now using Haskell professionally. – Matt Revelle
a masterclass in documentation … – Craig Dallimore
Really informative courses @typeclasses! Highly recommended to anyone who is interested in FP. The more I read the more I realise I don’t know anything about most things anymore. – @mmgalea
I’m really enjoying @typeclasses. The validation course is a real tour de force that makes Monads easy to understand and really provides the context and justification. – @wennefer
Typeclasses is very good. I didn’t expect I’d learn so much since I already knew Haskell well but there’s lots of interesting nuggets of wisdom around. – Jasper Van der Jeugt