struct Link; typedef sequence DescendantSeq; union uLink; typedef sequence uDescendantSeq; struct Link { short some_value; DescendantSeq descendants; uDescendantSeq udescendants; }; union uLink switch (boolean) { case TRUE: DescendantSeq descendants; case FALSE: uDescendantSeq udescendants; };