using System.Console;
variant A
{
| X { value : int; }
| Y
}
def a = A.X(123) : A;
when (a != null && a is X(value))
WriteLine(value); // value is accessible in this point
if (a is X(value))
WriteLine(value); // value is accessible in this point
else
WriteLine(":(");