Programming with union, intersection, and negation types | Hacker News Reader