Union Types with Clojure.Spec

Elm and other statically typed languages have a great feature called Union Types (also called Sum Types or Algebraic Data Types). Here’s an example taken from Elm. Suppose your system used to