Robert, Maybe you can fix this along the way: import std.variant; struct B { int p, q, r, s; } typedef B C; void main() { B b; C c; b = c; // ok Variant v = c; assert(v.convertsTo!(B)); // no dice } Steve