Monadt – Algebraic Data Types and Monads in Ruby, Part 1: ADTs | Hacker News Reader