Interestingly, Rust will be adding a C-style untagged union datatype: https://github.com/joshtriplett/rfcs/blob/untagged_union/text/0000-union.md