Variants for Common Lisp. The `defvariant` macro implements variants (a.k.a. disjoint sum types) above `defstruct`'s. https://github.com/fredokun/defvariant Thanks, Frederic.