An explanation of the why and how of Generalized Algebraic Data Types in Haskell, using a small language of arithmetic expressions as example.
Hmm…it looks like things are taking a while to load. Try again?