Let's learn Haskell

Generic tutorials

December 24, 2017 Template Haskell tutorial
February 1, 2017 GHC generics explained
November 29, 2016 GHC optimization and fusion
September 21, 2016 Servant authentication and sessions via cookies
August 17, 2016 Mustache templates in Haskell
June 22, 2016 Creating a GUI application in Haskell
June 7, 2016 Image processing with Juicy Pixels and Repa

The sign indicates that the tutorial is located outside of my personal web site. This is usually due to the fact that the content was created as part of my paid job for an employer.

Megaparsec tutorials

October 13, 2015 Parsing a simple imperative language
August 10, 2016 How to introduce custom error messages
February 19, 2016 Fun with the recovery feature
January 12, 2016 Indentation-sensitive parsing
October 15, 2015 Switch from Parsec to Megaparsec
September 11, 2016 Writing a fast parser

The tutorials here have been updated to be used with Megaparsec 7.

Recommended tutorials

This is the list of Haskell tutorials by other authors that I personally can recommend. These tutorials are, in my opinion, practical, concise (most of them, others are just too good), to-the-point; they build right intuitions.

Data formats Aeson: the tutorial
Concurrency Async library
Streaming Conduit library
Data structures Vector library
Command line options Optparse applicative tutorial
Configuration files Dhall tutorial
More precise typing Liquid Haskell tutorial
Generics Applying type-level and generic programming in Haskell
Type-level programming Haskell's kind system - a primer