procedure Test.3 (Test.29): joinpoint Test.13 Test.4: let Test.23 : Int1 = 1i64; let Test.24 : Int1 = GetTagId Test.4; let Test.25 : Int1 = lowlevel Eq Test.23 Test.24; if Test.25 then let Test.14 : Int1 = false; ret Test.14; else let Test.19 : [C I64, C ] = UnionAtIndex (Id 0) (Index 0) Test.4; let Test.20 : U8 = 1i64; let Test.21 : U8 = GetTagId Test.19; let Test.22 : Int1 = lowlevel Eq Test.20 Test.21; if Test.22 then let Test.15 : Int1 = true; ret Test.15; else let Test.7 : TODO = UnionAtIndex (Id 0) (Index 1) Test.4; jump Test.13 Test.7; in jump Test.13 Test.29; procedure Test.0 (): let Test.28 : I64 = 3i64; let Test.26 : [C I64, C ] = Just Test.28; let Test.27 : TODO = Nil ; let Test.12 : TODO = Cons Test.26 Test.27; let Test.11 : Int1 = CallByName Test.3 Test.12; dec Test.12; ret Test.11;