Type-Safe Unions in C++ and Rust (genbattle.bitbucket.org)