variant A { |ONE |TWO |THREE } variant B { |FOUR{val:int} |FIVE{val:A} } def a=A.ONE; //ok def b1=B.FOUR(1); //ok def b2=B.FIVE(A.ONE); //error