Using Monads in C++ to Solve Constraints: 2. The State Monad | Hacker News Reader