std.variant's Algebraic (https://github.com/D-Programming-Language/phobos/blob/master/std/variant.d) seems very complex for what it's trying to do and is also unsafe. Is it worth writing a simpler replacement? Something like this https://github.com/Superstar64/tagged_union/blob/master/source/tagged_union.d ?