Using clojure.spec for compile-time union-types (ADTs) | Hacker News Reader