using System;

variant A
{
	| X
	{
		i : uint;
		j : string;
		k : uint -> void;
	}
}

module Test
{
	public Main() : void
	{
		def p = A.X(37, "stwu", fun(insn : uint) : void { Console.WriteLine($"foo? $insn") });
		Console.WriteLine($"$(p.i) $(p.j)");
		p.k(1);
	}
}

/*
BEGIN-OUTPUT
37 stwu
foo? 1
END-OUTPUT
*/
