Faking ADTs and GADTs in Languages That Shouldn't Have Them | Hacker News Reader