Haskell from the ground up

Note: This page is in its nascent form with much more content to be added, and then organized.

Roughly there exists three autodidactic approaches to learning the individual Haskell concepts.

  • Read tutorials & learn by doing
  • Dig into the theory behind
  • Learn GHC-level implementation details

Approach (1) is great for “getting started”, but proceeding to (2) and maybe even (3) will give a more foundational perspective, while demystifying otherwise complex ideas. Here, I aim to collect the various resources toward that end.

Dig into the theory behind



GHC-level implementation details

GHC User Guide
“Thinking about the way Haskell language constructs are desugared into Core provides a deeper understanding of these features, rather than a superficial familiarity. For example, it provides a clear intuition for existential quantification, GADTs, and do-notation.”
  • GHC Core is “System F with Type Equality Coercions“ and “System FC with Explicit Kind Equality“ …. and Haskell is an abstraction over GHC Core. (Ref, on relation of Haskell to typed lambda calculus)


Where do these fit in?

Resources for these?

  • MTL
  • Lenses


Create a course

  • Find relevant papers, in order.
  • Write You A Haskell: Building a modern functional compiler from first principles.

From https://github.com/sdiehl/write-you-a-haskell/issues/93#issuecomment-962082153

There are two good lists of foundational papers for implementing a Haskell compiler:



Links to this page