In this one-day course, you will take an in-depth look into Haskell's type system, including the various language extensions that the Glasgow Haskell Compiler (GHC) has to offer.
- Learn the latest uses and trends driving the growth of the Haskell language -
Haskell is an evolving language. With each new GHC release, there are new features, many of which add extra power to Haskell's already remarkable type system. But which extensions are widely used? Which are stable? How can one find out how they really work?
Join Andres Löh, Haskell consultant and co-owner of Well-Typed LLP, as he provides a much needed overview of GHC before diving into concepts systematically, from higher-rank polymorphism over GADTs and data kinds to type families and System FC (the formal system that GHC's core language is based on). You will learn how to use all these features through typical use cases and learn of possible pitfalls along the way.
Who you will be sitting next to
Developers with some experience of Haskell who wish to upskill on the latest developments to the language and the possibilities available on Hackage.
How to apply these skills
You will come away with an advanced understanding of Haskell’s type system so that you can leverage its power to write programs that are correct by construction.
Book early to receive a discount on the course price and in doing so you will not only commit to growing your own skillset, but help us grow our community of over 140,000 passionate techies.
Learn how to:
- Leverage the power of Haskell's type system,
- Write programs that are correct by construction,
- Understand the internals of widely known libraries that use advanced type system features,
- Participate in all the discussions on the latest greatest type system features of Haskell and GHC.
What the community says
"Great work! Well explained concepts and we went into very in depth detail seamlessly. Even though I had prior experience with the subject, I still learnt a tremendous amount."Attendee
"Really advanced! I'm overloaded :-)"Attendee
- Parametric polymorphism revisited
- Universal vs. existential quantification of types
- Higher-rank polymorphism
Types and Kinds
- Haskell's kind system
- Working with GADTs
- Promoting datatypes to kinds
- Kind polymorphism
- Type families
- Type equality
- Constraint kinds
- System FC
If you have some experience developing in Haskell, and are fascinated by its type system, but want to learn more about what's possible to express in the type system, get introduced to recent additions to the language, and understand some of the more tricky code available on Hackage – then this course is for you!
This course assumes a solid familiarity with the basics of the Haskell language, such as how to define functions and datatypes, how to define simple classes and instances, and how to make use of polymorphism and overloading. A certain curiosity and fascination with the type system of Haskell will without doubt also be helpful. What's not required is to already know about Haskell language extensions, or to be an expert in using applicative functors, monads, or monad transformers.
Bring your own hardware
Important! You are required to bring your own laptop for this course, with the Haskell Platform installed - to be able to try all the examples and exercises within your own environment.
A full installation guide for the course software will be provided with your joining instructions.