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.

  • Walkthrough tutorials & learning by doing
  • Understand all the entailed concepts
  • Learning 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.

Understand all the entailed concepts

GHC-level implementation details

Haskell to Core: Understanding Haskell Features Through Their Desugaring
“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)

Todo

Where do these fit in?

Resources for these?

Create a course

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:

https://www.stephendiehl.com/posts/essential_compilers.html

https://gitlab.haskell.org/ghc/ghc/-/wikis/reading-list

Links to this page