procedure Num.24 (#Attr.2, #Attr.3): let Test.28 = lowlevel NumAdd #Attr.2 #Attr.3; ret Test.28; procedure Num.26 (#Attr.2, #Attr.3): let Test.25 = lowlevel NumMul #Attr.2 #Attr.3; ret Test.25; procedure Test.1 (Test.2, Test.3): let Test.17 = GetTagId Test.2; joinpoint Test.18 Test.16: ret Test.16; in switch Test.17: case 0: let Test.19 = CallByName Test.7 Test.3 Test.2; jump Test.18 Test.19; default: let Test.20 = CallByName Test.8 Test.3 Test.2; jump Test.18 Test.20; procedure Test.7 (Test.10, #Attr.12): let Test.4 = UnionAtIndex (Id 0) (Index 0) #Attr.12; let Test.27 = CallByName Num.24 Test.10 Test.4; ret Test.27; procedure Test.8 (Test.11, #Attr.12): let Test.6 = UnionAtIndex (Id 1) (Index 1) #Attr.12; let Test.5 = UnionAtIndex (Id 1) (Index 0) #Attr.12; if Test.6 then let Test.24 = CallByName Num.26 Test.11 Test.5; ret Test.24; else ret Test.11; procedure Test.0 (): let Test.6 = true; let Test.4 = 1i64; let Test.5 = 2i64; joinpoint Test.22 Test.14: let Test.15 = 42i64; let Test.13 = CallByName Test.1 Test.14 Test.15; ret Test.13; in let Test.26 = true; if Test.26 then let Test.7 = ClosureTag(Test.7) Test.4; jump Test.22 Test.7; else let Test.8 = ClosureTag(Test.8) Test.5 Test.6; jump Test.22 Test.8;