procedure Encode.22 (Encode.93): ret Encode.93; procedure Encode.23 (Encode.94, Encode.102, Encode.96): let Encode.106 : List U8 = CallByName Json.96 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.394 : {} = Struct {}; ret Json.394; procedure Json.18 (Json.95): let Json.395 : Str = CallByName Encode.22 Json.95; ret Json.395; procedure Json.96 (Json.97, Json.397, Json.95): let Json.406 : I64 = 34i64; let Json.405 : U8 = CallByName Num.125 Json.406; let Json.403 : List U8 = CallByName List.4 Json.97 Json.405; let Json.404 : List U8 = CallByName Str.12 Json.95; let Json.400 : List U8 = CallByName List.8 Json.403 Json.404; let Json.402 : I64 = 34i64; let Json.401 : U8 = CallByName Num.125 Json.402; let Json.399 : List U8 = CallByName List.4 Json.400 Json.401; ret Json.399; procedure List.4 (List.105, List.106): let List.418 : U64 = 1i64; let List.417 : List U8 = CallByName List.70 List.105 List.418; let List.416 : List U8 = CallByName List.71 List.417 List.106; ret List.416; procedure List.6 (#Attr.2): let List.409 : U64 = lowlevel ListLen #Attr.2; ret List.409; procedure List.70 (#Attr.2, #Attr.3): let List.415 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; ret List.415; procedure List.71 (#Attr.2, #Attr.3): let List.413 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; ret List.413; procedure List.8 (#Attr.2, #Attr.3): let List.419 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; ret List.419; procedure Num.125 (#Attr.2): let Num.257 : U8 = lowlevel NumIntCast #Attr.2; ret Num.257; procedure Str.12 (#Attr.2): let Str.279 : List U8 = lowlevel StrToUtf8 #Attr.2; ret Str.279; procedure Str.48 (#Attr.2, #Attr.3, #Attr.4): let Str.274 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4; ret Str.274; procedure Str.9 (Str.76): let Str.272 : U64 = 0i64; let Str.273 : U64 = CallByName List.6 Str.76; let Str.77 : {U64, Str, Int1, U8} = CallByName Str.48 Str.76 Str.272 Str.273; let Str.269 : Int1 = StructAtIndex 2 Str.77; if Str.269 then let Str.271 : Str = StructAtIndex 1 Str.77; inc Str.271; dec Str.77; let Str.270 : [C {U64, U8}, C Str] = TagId(1) Str.271; ret Str.270; else let Str.267 : U8 = StructAtIndex 3 Str.77; let Str.268 : U64 = StructAtIndex 0 Str.77; dec Str.77; let Str.266 : {U64, U8} = Struct {Str.268, Str.267}; let Str.265 : [C {U64, U8}, C Str] = TagId(0) Str.266; ret Str.265; 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;