procedure Num.22 (#Attr.2, #Attr.3): let Test.8 : I64 = lowlevel NumAdd #Attr.2 #Attr.3; ret Test.8; procedure Test.0 (): let Test.20 : I64 = 41i64; let Test.19 : [C I64, C ] = Just Test.20; let Test.2 : [C [C I64, C ], C ] = Just Test.19; joinpoint Test.16: let Test.9 : I64 = 1i64; ret Test.9; in let Test.14 : U8 = 0i64; let Test.15 : U8 = GetTagId Test.2; let Test.18 : Int1 = lowlevel Eq Test.14 Test.15; if Test.18 then let Test.11 : [C I64, C ] = UnionAtIndex (Id 0) (Index 0) Test.2; let Test.12 : U8 = 0i64; let Test.13 : U8 = GetTagId Test.11; let Test.17 : Int1 = lowlevel Eq Test.12 Test.13; if Test.17 then let Test.10 : [C I64, C ] = UnionAtIndex (Id 0) (Index 0) Test.2; let Test.5 : I64 = UnionAtIndex (Id 0) (Index 0) Test.10; let Test.7 : I64 = 1i64; let Test.6 : I64 = CallByName Num.22 Test.5 Test.7; ret Test.6; else jump Test.16; else jump Test.16;