typedef U1 = union (int i, bool b); typedef U2 = union (int i, bool b); () test() { var U1 a1; var U2 a2; var (int i, bool b) b; var (int i, bool b, uint u) c; var (int, bool) d; var (int, int) e; var (int p, bool q) f; /* ERRORS: types referenced by name are different => error */ a1 = a2; a2 = a1; /* ERRORS: different lengths of structs */ b = c; c = b; d = c; c = d; /* ERRORS: different types */ d = e; e = d; /* ERRORS: different member names */ f = b; b = f; }