struct foo {
   enum foo_types type;
   union {
      struct {
	 char *a;
	 char *b;
      } s0;
      struct {
	 struct bar *a;
	 struct bar *b;
	 unsigned n;
      } s1;
      struct {
	 struct bar *x;
	 struct bar *y;
	 struct bar *z;
      } s2;
   } u;
};