TVariant

A type-safe union based loosely on std::variant.