Introduction to OCaml, part 4: higher order functions and algebraic data types | Hacker News Reader