procedure Encode.22 (Encode.93): ret Encode.93; procedure Encode.23 (Encode.94, Encode.102, Encode.96): let Encode.106 : List U8 = CallByName Json.87 Encode.94 Encode.96 Encode.102; ret Encode.106; procedure Encode.25 (Encode.100, Encode.101): let Encode.104 : List U8 = Array []; let Encode.105 : Str = CallByName Json.18 Encode.100; let Encode.103 : List U8 = CallByName Encode.23 Encode.104 Encode.105 Encode.101; ret Encode.103; procedure Json.1 (): let Json.318 : {} = Struct {}; ret Json.318; procedure Json.18 (Json.86): let Json.320 : Str = StructAtIndex 0 Json.322; inc Json.320; dec Json.322; let Json.322 : {Str} = Struct {Json.86}; let Json.319 : Str = CallByName Encode.22 Json.320; ret Json.319; procedure Json.87 (Json.88, Json.321, #Attr.12): let Json.86 : Str = StructAtIndex 0 Json.332; inc Json.86; dec Json.332; let Json.332 : {Str} = Struct {#Attr.12}; let Json.331 : I32 = 34i64; let Json.330 : U8 = CallByName Num.123 Json.331; let Json.328 : List U8 = CallByName List.4 Json.88 Json.330; let Json.329 : List U8 = CallByName Str.12 Json.86; let Json.325 : List U8 = CallByName List.8 Json.328 Json.329; let Json.327 : I32 = 34i64; let Json.326 : U8 = CallByName Num.123 Json.327; let Json.324 : List U8 = CallByName List.4 Json.325 Json.326; ret Json.324; procedure List.4 (List.101, List.102): let List.392 : U64 = 1i64; let List.391 : List U8 = CallByName List.70 List.101 List.392; let List.390 : List U8 = CallByName List.71 List.391 List.102; ret List.390; procedure List.6 (#Attr.2): let List.385 : U64 = lowlevel ListLen #Attr.2; ret List.385; procedure List.70 (#Attr.2, #Attr.3): let List.395 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; ret List.395; procedure List.71 (#Attr.2, #Attr.3): let List.394 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; ret List.394; procedure List.8 (#Attr.2, #Attr.3): let List.393 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; ret List.393; procedure Num.123 (#Attr.2): let Num.258 : U8 = lowlevel NumIntCast #Attr.2; ret Num.258; procedure Str.12 (#Attr.2): let Str.216 : List U8 = lowlevel StrToUtf8 #Attr.2; ret Str.216; procedure Str.48 (#Attr.2, #Attr.3, #Attr.4): let Str.211 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4; ret Str.211; procedure Str.9 (Str.69): let Str.209 : U64 = 0i64; let Str.210 : U64 = CallByName List.6 Str.69; let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.209 Str.210; let Str.206 : Int1 = StructAtIndex 2 Str.70; if Str.206 then let Str.208 : Str = StructAtIndex 1 Str.70; inc Str.208; dec Str.70; let Str.207 : [C {U64, U8}, C Str] = TagId(1) Str.208; ret Str.207; else let Str.204 : U8 = StructAtIndex 3 Str.70; let Str.205 : U64 = StructAtIndex 0 Str.70; dec Str.70; let Str.203 : {U64, U8} = Struct {Str.205, Str.204}; let Str.202 : [C {U64, U8}, C Str] = TagId(0) Str.203; ret Str.202; procedure Test.0 (): let Test.9 : Str = "abc"; let Test.10 : {} = CallByName Json.1; let Test.8 : List U8 = CallByName Encode.25 Test.9 Test.10; let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8; let Test.5 : U8 = 1i64; let Test.6 : U8 = GetTagId Test.1; let Test.7 : Int1 = lowlevel Eq Test.5 Test.6; if Test.7 then let Test.2 : Str = UnionAtIndex (Id 1) (Index 0) Test.1; inc Test.2; dec Test.1; ret Test.2; else dec Test.1; let Test.4 : Str = ""; ret Test.4;