
/* Recursive struct */
struct S {
  string name;
  sequence<S,1> left;
  sequence<S,1> right;
};

/* Nested recursive struct */
struct S2 {
  struct S3 {
    sequence<S2> c;
  } s;
};

/* Nested recursive union */
union UA switch (boolean) {
 case TRUE:
   struct t_st {
     sequence<UA> a;
   } st;
 case FALSE:
   short b;
};


interface foo {
  void bar( in S s );
};

