Defining Algebraic data-types in Haskell by Don Stewart | Hacker News Reader