import LIB/default.lm; type XYZ (XY( x , y )) | X | (Y( x )); main := λ. (: ( (let xy1 (XY( 1_u64 2_i8 ))) (print (.1(as xy1 Tag))) (print (.2(as xy1 Tag))) (let xy2 (: X XYZ)) (print (.0 xy2)) (let xy3 ((: Y XYZ)( 3_i32 ))) (print (.0 xy3)) (print (.1(as xy3 Tag))) ) Nil);