/* Recursive struct */ struct S { string name; sequence left; sequence right; }; /* Nested recursive struct */ struct S2 { struct S3 { sequence c; } s; }; /* Nested recursive union */ union UA switch (boolean) { case TRUE: struct t_st { sequence a; } st; case FALSE: short b; }; union UB switch (boolean) { case TRUE: sequence mub; }; struct S4 { struct S5 { struct S6 { sequence s4; sequence s5; sequence ms6; } ts6; } ts5; }; interface foo { void bar( in S s ); };