Algebraic Datatypes, Combinatorial Structures, and Generating Functions | Hacker News Reader