Algebraic Data Types in C++ | Hacker News Reader