test_mono, uitest: rm stdlib Json dependency

use the same tag len fmt introduced in test_gen/gen_abilities tests
This commit is contained in:
shua 2024-06-28 15:27:05 +02:00
parent 0faa1d5f20
commit 67f555feea
No known key found for this signature in database
GPG Key ID: 73387DA37055770F
13 changed files with 1230 additions and 4788 deletions

1
Cargo.lock generated
View File

@ -3871,6 +3871,7 @@ dependencies = [
"roc_packaging",
"roc_reporting",
"roc_target",
"roc_test_utils",
"roc_tracing",
"test_mono_macros",
]

View File

@ -21,6 +21,7 @@ roc_mono = { path = "../mono" }
roc_packaging = { path = "../../packaging" }
roc_reporting = { path = "../../reporting" }
roc_target = { path = "../roc_target" }
roc_test_utils = { path = "../../test_utils" }
roc_tracing = { path = "../../tracing" }
test_mono_macros = { path = "../test_mono_macros" }

View File

@ -7,7 +7,7 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.8 : Str = CallByName #Derived.5 #Derived.1;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6];
let #Derived_gen.4 : List {Str, Str} = CallByName TotallyNotJson.29 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Test.21 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
@ -17,17 +17,13 @@ procedure #Derived.5 (#Derived.6):
procedure #Derived.7 (#Derived.8, #Derived.9, #Derived.6):
let #Derived_gen.17 : Str = "b";
let #Derived_gen.18 : Str = CallByName TotallyNotJson.25 #Derived.6;
let #Derived_gen.18 : Str = CallByName Test.19 #Derived.6;
let #Derived_gen.16 : {Str, Str} = Struct {#Derived_gen.17, #Derived_gen.18};
let #Derived_gen.15 : List {Str, Str} = Array [#Derived_gen.16];
let #Derived_gen.14 : List {Str, Str} = CallByName TotallyNotJson.29 #Derived_gen.15;
let #Derived_gen.14 : List {Str, Str} = CallByName Test.21 #Derived_gen.15;
let #Derived_gen.13 : List U8 = CallByName Encode.24 #Derived.8 #Derived_gen.14 #Derived.9;
ret #Derived_gen.13;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.24 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.24;
procedure Encode.23 (Encode.98):
ret Encode.98;
@ -48,20 +44,20 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.202 Encode.99 Encode.101 Encode.107;
let Encode.113 : List U8 = CallByName Test.67 Encode.99 Encode.101 Encode.107;
ret Encode.113;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.115 : List U8 = CallByName #Derived.7 Encode.99 Encode.101 Encode.107;
ret Encode.115;
let Encode.116 : List U8 = CallByName #Derived.7 Encode.99 Encode.101 Encode.107;
ret Encode.116;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.117 : List U8 = CallByName TotallyNotJson.202 Encode.99 Encode.101 Encode.107;
ret Encode.117;
let Encode.119 : List U8 = CallByName Test.67 Encode.99 Encode.101 Encode.107;
ret Encode.119;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.120 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.120;
let Encode.124 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.124;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
@ -69,229 +65,107 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.488;
let List.686 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.687 List.688;
ret List.686;
procedure List.18 (List.160, List.161, List.162):
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.18 (List.160, List.161, List.162):
let List.595 : U64 = 0i64;
let List.596 : U64 = CallByName List.6 List.160;
let List.594 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.595 List.596;
ret List.594;
procedure List.18 (List.160, List.161, List.162):
let List.630 : U64 = 0i64;
let List.631 : U64 = CallByName List.6 List.160;
let List.629 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.630 List.631;
ret List.629;
procedure List.18 (List.160, List.161, List.162):
let List.642 : U64 = 0i64;
let List.643 : U64 = CallByName List.6 List.160;
let List.641 : List U8 = CallByName List.92 List.160 List.161 List.162 List.642 List.643;
ret List.641;
procedure List.26 (List.201, List.202, List.203):
let List.680 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.683 : U8 = 1i64;
let List.684 : U8 = GetTagId List.680;
let List.685 : Int1 = lowlevel Eq List.683 List.684;
if List.685 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.680;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.680;
ret List.205;
let List.601 : U64 = 0i64;
let List.602 : U64 = CallByName List.6 List.160;
let List.600 : List U8 = CallByName List.92 List.160 List.161 List.162 List.601 List.602;
ret List.600;
procedure List.4 (List.124, List.125):
let List.628 : U64 = 1i64;
let List.627 : List U8 = CallByName List.70 List.124 List.628;
let List.626 : List U8 = CallByName List.71 List.627 List.125;
ret List.626;
procedure List.49 (List.420, List.421):
let List.671 : U64 = StructAtIndex 1 List.421;
let List.672 : U64 = StructAtIndex 0 List.421;
let List.670 : List U8 = CallByName List.72 List.420 List.671 List.672;
ret List.670;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.678 List.438:
let List.676 : U64 = 0i64;
let List.675 : {U64, U64} = Struct {List.438, List.676};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.675;
let List.674 : U64 = CallByName Num.75 List.437 List.438;
let List.669 : {U64, U64} = Struct {List.674, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.669;
let List.668 : {List U8, List U8} = Struct {List.439, List.440};
ret List.668;
in
let List.679 : Int1 = CallByName Num.24 List.437 List.436;
if List.679 then
jump List.678 List.436;
else
jump List.678 List.437;
let List.622 : U64 = 1i64;
let List.621 : List U8 = CallByName List.70 List.124 List.622;
let List.620 : List U8 = CallByName List.71 List.621 List.125;
ret List.620;
procedure List.6 (#Attr.2):
let List.608 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.608;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.6 (#Attr.2):
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.663;
procedure List.6 (#Attr.2):
let List.665 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.665;
let List.625 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.625;
procedure List.66 (#Attr.2, #Attr.3):
let List.604 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.604;
let List.584 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.66 (#Attr.2, #Attr.3):
let List.639 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.639;
procedure List.66 (#Attr.2, #Attr.3):
let List.651 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.651;
procedure List.68 (#Attr.2):
let List.667 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.667;
let List.610 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.610;
procedure List.70 (#Attr.2, #Attr.3):
let List.613 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.613;
let List.616 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.616;
procedure List.71 (#Attr.2, #Attr.3):
let List.611 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.611;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.673 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.673;
let List.614 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.614;
procedure List.8 (#Attr.2, #Attr.3):
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.662;
let List.624 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.624;
procedure List.80 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.689 List.491 List.492 List.493 List.494 List.495:
let List.691 : Int1 = CallByName Num.22 List.494 List.495;
if List.691 then
let List.700 : U8 = CallByName List.66 List.491 List.494;
let List.692 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.700;
let List.697 : U8 = 1i64;
let List.698 : U8 = GetTagId List.692;
let List.699 : Int1 = lowlevel Eq List.697 List.698;
if List.699 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.692;
let List.695 : U64 = 1i64;
let List.694 : U64 = CallByName Num.51 List.494 List.695;
jump List.689 List.491 List.496 List.493 List.694 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.692;
let List.696 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.696;
else
dec List.491;
let List.690 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.690;
in
jump List.689 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.92 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35):
joinpoint List.597 List.163 List.164 List.165 List.166 List.167:
let List.599 : Int1 = CallByName Num.22 List.166 List.167;
if List.599 then
let List.603 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.603;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.204 List.164 List.603;
let List.602 : U64 = 1i64;
let List.601 : U64 = CallByName Num.51 List.166 List.602;
jump List.597 List.163 List.168 List.165 List.601 List.167;
procedure List.92 (#Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.603 List.163 List.164 List.165 List.166 List.167:
let List.605 : Int1 = CallByName Num.22 List.166 List.167;
if List.605 then
let List.609 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.609;
let List.168 : List U8 = CallByName Test.70 List.164 List.609;
let List.608 : U64 = 1i64;
let List.607 : U64 = CallByName Num.51 List.166 List.608;
jump List.603 List.163 List.168 List.165 List.607 List.167;
else
dec List.163;
ret List.164;
in
jump List.597 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35;
jump List.603 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure List.92 (#Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40):
joinpoint List.632 List.163 List.164 List.165 List.166 List.167:
let List.634 : Int1 = CallByName Num.22 List.166 List.167;
if List.634 then
let List.638 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.638;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.204 List.164 List.638;
let List.637 : U64 = 1i64;
let List.636 : U64 = CallByName Num.51 List.166 List.637;
jump List.632 List.163 List.168 List.165 List.636 List.167;
procedure List.92 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.70 List.164 List.583;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.632 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40;
procedure List.92 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51):
joinpoint List.644 List.163 List.164 List.165 List.166 List.167:
let List.646 : Int1 = CallByName Num.22 List.166 List.167;
if List.646 then
let List.650 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.650;
let List.649 : U64 = 1i64;
let List.648 : U64 = CallByName Num.51 List.166 List.649;
jump List.644 List.163 List.168 List.165 List.648 List.167;
else
dec List.163;
ret List.164;
in
jump List.644 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51;
jump List.577 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
procedure Num.127 (#Attr.2):
let Num.295 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.295;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.301 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.301;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.300 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.300;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.297 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.297;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.302 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.302;
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.284;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.308 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.308;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.310 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.310;
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.286;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.305 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.305;
let Num.285 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.285;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.309 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.309;
procedure Num.96 (#Attr.2):
let Num.283 : Str = lowlevel NumToStr #Attr.2;
ret Num.283;
procedure Str.12 (#Attr.2):
let Str.242 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.242;
let Str.244 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.244;
procedure Str.36 (#Attr.2):
let Str.245 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.245;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
@ -307,324 +181,96 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.55 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.55;
let #Derived_gen.45 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.45;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1060, TotallyNotJson.149):
let TotallyNotJson.1063 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1062 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1063;
ret TotallyNotJson.1062;
procedure Test.19 (Test.55):
let Test.324 : Str = CallByName Encode.23 Test.55;
ret Test.324;
procedure TotallyNotJson.157 (TotallyNotJson.1111, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1111;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1111;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1114 : Int1 = false;
let TotallyNotJson.1113 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1114};
let TotallyNotJson.1112 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1113;
ret TotallyNotJson.1112;
case 92:
let TotallyNotJson.1117 : Int1 = false;
let TotallyNotJson.1116 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1117};
let TotallyNotJson.1115 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1116;
ret TotallyNotJson.1115;
case 47:
let TotallyNotJson.1120 : Int1 = false;
let TotallyNotJson.1119 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1120};
let TotallyNotJson.1118 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1119;
ret TotallyNotJson.1118;
case 8:
let TotallyNotJson.1123 : Int1 = false;
let TotallyNotJson.1122 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1123};
let TotallyNotJson.1121 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1122;
ret TotallyNotJson.1121;
case 12:
let TotallyNotJson.1126 : Int1 = false;
let TotallyNotJson.1125 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1126};
let TotallyNotJson.1124 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1125;
ret TotallyNotJson.1124;
case 10:
let TotallyNotJson.1129 : Int1 = false;
let TotallyNotJson.1128 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1129};
let TotallyNotJson.1127 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1128;
ret TotallyNotJson.1127;
case 13:
let TotallyNotJson.1132 : Int1 = false;
let TotallyNotJson.1131 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1132};
let TotallyNotJson.1130 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1131;
ret TotallyNotJson.1130;
case 9:
let TotallyNotJson.1135 : Int1 = false;
let TotallyNotJson.1134 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1135};
let TotallyNotJson.1133 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1134;
ret TotallyNotJson.1133;
default:
let TotallyNotJson.1139 : U64 = 1i64;
let TotallyNotJson.1138 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1139;
let TotallyNotJson.1137 : {U64, Int1} = Struct {TotallyNotJson.1138, TotallyNotJson.159};
let TotallyNotJson.1136 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1137;
ret TotallyNotJson.1136;
procedure Test.2 ():
let Test.257 : {} = Struct {};
ret Test.257;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1082 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1081 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1082;
ret TotallyNotJson.1081;
procedure Test.21 (Test.66):
let Test.260 : List {Str, Str} = CallByName Encode.23 Test.66;
ret Test.260;
procedure TotallyNotJson.202 (TotallyNotJson.203, TotallyNotJson.976, TotallyNotJson.201):
let TotallyNotJson.1016 : I64 = 123i64;
let TotallyNotJson.1015 : U8 = CallByName Num.127 TotallyNotJson.1016;
let TotallyNotJson.205 : List U8 = CallByName List.4 TotallyNotJson.203 TotallyNotJson.1015;
let TotallyNotJson.1014 : U64 = CallByName List.6 TotallyNotJson.201;
let TotallyNotJson.984 : {List U8, U64} = Struct {TotallyNotJson.205, TotallyNotJson.1014};
let TotallyNotJson.985 : {} = Struct {};
let TotallyNotJson.983 : {List U8, U64} = CallByName List.18 TotallyNotJson.201 TotallyNotJson.984 TotallyNotJson.985;
let TotallyNotJson.207 : List U8 = StructAtIndex 0 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.207 TotallyNotJson.981;
ret TotallyNotJson.980;
procedure Test.21 (Test.66):
let Test.292 : List {Str, Str} = CallByName Encode.23 Test.66;
ret Test.292;
procedure TotallyNotJson.202 (TotallyNotJson.203, TotallyNotJson.976, TotallyNotJson.201):
let TotallyNotJson.1057 : I64 = 123i64;
let TotallyNotJson.1056 : U8 = CallByName Num.127 TotallyNotJson.1057;
let TotallyNotJson.205 : List U8 = CallByName List.4 TotallyNotJson.203 TotallyNotJson.1056;
let TotallyNotJson.1055 : U64 = CallByName List.6 TotallyNotJson.201;
let TotallyNotJson.1025 : {List U8, U64} = Struct {TotallyNotJson.205, TotallyNotJson.1055};
let TotallyNotJson.1026 : {} = Struct {};
let TotallyNotJson.1024 : {List U8, U64} = CallByName List.18 TotallyNotJson.201 TotallyNotJson.1025 TotallyNotJson.1026;
let TotallyNotJson.207 : List U8 = StructAtIndex 0 TotallyNotJson.1024;
let TotallyNotJson.1023 : I64 = 125i64;
let TotallyNotJson.1022 : U8 = CallByName Num.127 TotallyNotJson.1023;
let TotallyNotJson.1021 : List U8 = CallByName List.4 TotallyNotJson.207 TotallyNotJson.1022;
ret TotallyNotJson.1021;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.321 : U8 = CallByName Num.127 Test.49;
let Test.318 : List U8 = CallByName List.4 Test.48 Test.321;
let Test.320 : Str = CallByName Num.96 Test.50;
let Test.319 : List U8 = CallByName Str.12 Test.320;
let Test.316 : List U8 = CallByName List.8 Test.318 Test.319;
let Test.317 : U8 = 32i64;
let Test.315 : List U8 = CallByName List.4 Test.316 Test.317;
ret Test.315;
procedure TotallyNotJson.204 (TotallyNotJson.978, TotallyNotJson.979):
let TotallyNotJson.210 : Str = StructAtIndex 0 TotallyNotJson.979;
let TotallyNotJson.211 : Str = StructAtIndex 1 TotallyNotJson.979;
let TotallyNotJson.208 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.209 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.1011 : List U8 = Array [];
let TotallyNotJson.1012 : {} = CallByName TotallyNotJson.8;
let TotallyNotJson.212 : List U8 = CallByName Encode.24 TotallyNotJson.1011 TotallyNotJson.211 TotallyNotJson.1012;
let TotallyNotJson.1010 : List U8 = Array [];
let TotallyNotJson.1006 : Int1 = CallByName Bool.11 TotallyNotJson.212 TotallyNotJson.1010;
dec TotallyNotJson.1010;
if TotallyNotJson.1006 then
dec TotallyNotJson.210;
dec TotallyNotJson.212;
let TotallyNotJson.1009 : U64 = 1i64;
let TotallyNotJson.1008 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.1009;
let TotallyNotJson.1007 : {List U8, U64} = Struct {TotallyNotJson.208, TotallyNotJson.1008};
ret TotallyNotJson.1007;
else
let TotallyNotJson.1005 : I64 = 34i64;
let TotallyNotJson.1004 : U8 = CallByName Num.127 TotallyNotJson.1005;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.208 TotallyNotJson.1004;
let TotallyNotJson.1003 : List U8 = CallByName Str.12 TotallyNotJson.210;
let TotallyNotJson.999 : List U8 = CallByName List.8 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 34i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.996 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : I64 = 58i64;
let TotallyNotJson.997 : U8 = CallByName Num.127 TotallyNotJson.998;
let TotallyNotJson.995 : List U8 = CallByName List.4 TotallyNotJson.996 TotallyNotJson.997;
let TotallyNotJson.214 : List U8 = CallByName List.8 TotallyNotJson.995 TotallyNotJson.212;
joinpoint TotallyNotJson.990 TotallyNotJson.215:
let TotallyNotJson.988 : U64 = 1i64;
let TotallyNotJson.987 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.988;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.215, TotallyNotJson.987};
ret TotallyNotJson.986;
in
let TotallyNotJson.994 : U64 = 1i64;
let TotallyNotJson.991 : Int1 = CallByName Num.24 TotallyNotJson.209 TotallyNotJson.994;
if TotallyNotJson.991 then
let TotallyNotJson.993 : I64 = 44i64;
let TotallyNotJson.992 : U8 = CallByName Num.127 TotallyNotJson.993;
let TotallyNotJson.989 : List U8 = CallByName List.4 TotallyNotJson.214 TotallyNotJson.992;
jump TotallyNotJson.990 TotallyNotJson.989;
else
jump TotallyNotJson.990 TotallyNotJson.214;
procedure Test.56 (Test.57, Test.274, Test.55):
let Test.313 : I64 = 115i64;
let Test.314 : U64 = CallByName Str.36 Test.55;
let Test.311 : List U8 = CallByName Test.3 Test.57 Test.313 Test.314;
let Test.312 : List U8 = CallByName Str.12 Test.55;
let Test.309 : List U8 = CallByName List.8 Test.311 Test.312;
let Test.310 : U8 = 32i64;
let Test.308 : List U8 = CallByName List.4 Test.309 Test.310;
ret Test.308;
procedure TotallyNotJson.204 (TotallyNotJson.978, TotallyNotJson.979):
let TotallyNotJson.210 : Str = StructAtIndex 0 TotallyNotJson.979;
let TotallyNotJson.211 : Str = StructAtIndex 1 TotallyNotJson.979;
let TotallyNotJson.208 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.209 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.1052 : List U8 = Array [];
let TotallyNotJson.1053 : {} = CallByName TotallyNotJson.8;
let TotallyNotJson.212 : List U8 = CallByName Encode.24 TotallyNotJson.1052 TotallyNotJson.211 TotallyNotJson.1053;
let TotallyNotJson.1051 : List U8 = Array [];
let TotallyNotJson.1047 : Int1 = CallByName Bool.11 TotallyNotJson.212 TotallyNotJson.1051;
dec TotallyNotJson.1051;
if TotallyNotJson.1047 then
dec TotallyNotJson.210;
dec TotallyNotJson.212;
let TotallyNotJson.1050 : U64 = 1i64;
let TotallyNotJson.1049 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.1050;
let TotallyNotJson.1048 : {List U8, U64} = Struct {TotallyNotJson.208, TotallyNotJson.1049};
ret TotallyNotJson.1048;
else
let TotallyNotJson.1046 : I64 = 34i64;
let TotallyNotJson.1045 : U8 = CallByName Num.127 TotallyNotJson.1046;
let TotallyNotJson.1043 : List U8 = CallByName List.4 TotallyNotJson.208 TotallyNotJson.1045;
let TotallyNotJson.1044 : List U8 = CallByName Str.12 TotallyNotJson.210;
let TotallyNotJson.1040 : List U8 = CallByName List.8 TotallyNotJson.1043 TotallyNotJson.1044;
let TotallyNotJson.1042 : I64 = 34i64;
let TotallyNotJson.1041 : U8 = CallByName Num.127 TotallyNotJson.1042;
let TotallyNotJson.1037 : List U8 = CallByName List.4 TotallyNotJson.1040 TotallyNotJson.1041;
let TotallyNotJson.1039 : I64 = 58i64;
let TotallyNotJson.1038 : U8 = CallByName Num.127 TotallyNotJson.1039;
let TotallyNotJson.1036 : List U8 = CallByName List.4 TotallyNotJson.1037 TotallyNotJson.1038;
let TotallyNotJson.214 : List U8 = CallByName List.8 TotallyNotJson.1036 TotallyNotJson.212;
joinpoint TotallyNotJson.1031 TotallyNotJson.215:
let TotallyNotJson.1029 : U64 = 1i64;
let TotallyNotJson.1028 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.1029;
let TotallyNotJson.1027 : {List U8, U64} = Struct {TotallyNotJson.215, TotallyNotJson.1028};
ret TotallyNotJson.1027;
in
let TotallyNotJson.1035 : U64 = 1i64;
let TotallyNotJson.1032 : Int1 = CallByName Num.24 TotallyNotJson.209 TotallyNotJson.1035;
if TotallyNotJson.1032 then
let TotallyNotJson.1034 : I64 = 44i64;
let TotallyNotJson.1033 : U8 = CallByName Num.127 TotallyNotJson.1034;
let TotallyNotJson.1030 : List U8 = CallByName List.4 TotallyNotJson.214 TotallyNotJson.1033;
jump TotallyNotJson.1031 TotallyNotJson.1030;
else
jump TotallyNotJson.1031 TotallyNotJson.214;
procedure Test.67 (Test.68, Test.262, Test.66):
let Test.290 : I64 = 114i64;
let Test.291 : U64 = CallByName List.6 Test.66;
let Test.69 : List U8 = CallByName Test.3 Test.68 Test.290 Test.291;
let Test.265 : {} = Struct {};
let Test.264 : List U8 = CallByName List.18 Test.66 Test.69 Test.265;
ret Test.264;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1058 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1058;
procedure Test.67 (Test.68, Test.262, Test.66):
let Test.322 : I64 = 114i64;
let Test.323 : U64 = CallByName List.6 Test.66;
let Test.69 : List U8 = CallByName Test.3 Test.68 Test.322 Test.323;
let Test.297 : {} = Struct {};
let Test.296 : List U8 = CallByName List.18 Test.66 Test.69 Test.297;
ret Test.296;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1140 : U64 = 0i64;
let TotallyNotJson.1141 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1140, TotallyNotJson.1141};
let TotallyNotJson.1110 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1110;
let TotallyNotJson.1064 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1108 : Int1 = true;
let TotallyNotJson.1109 : Int1 = lowlevel Eq TotallyNotJson.1108 TotallyNotJson.1064;
if TotallyNotJson.1109 then
let TotallyNotJson.1074 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1075 : U64 = 2i64;
let TotallyNotJson.1073 : U64 = CallByName Num.19 TotallyNotJson.1074 TotallyNotJson.1075;
let TotallyNotJson.1070 : List U8 = CallByName List.68 TotallyNotJson.1073;
let TotallyNotJson.1072 : U8 = 34i64;
let TotallyNotJson.1071 : List U8 = Array [TotallyNotJson.1072];
let TotallyNotJson.1069 : List U8 = CallByName List.8 TotallyNotJson.1070 TotallyNotJson.1071;
let TotallyNotJson.1066 : List U8 = CallByName List.8 TotallyNotJson.1069 TotallyNotJson.153;
let TotallyNotJson.1068 : U8 = 34i64;
let TotallyNotJson.1067 : List U8 = Array [TotallyNotJson.1068];
let TotallyNotJson.1065 : List U8 = CallByName List.8 TotallyNotJson.1066 TotallyNotJson.1067;
ret TotallyNotJson.1065;
else
inc TotallyNotJson.153;
let TotallyNotJson.1107 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1106 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1107;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1106;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1106;
let TotallyNotJson.1104 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1105 : U64 = 120i64;
let TotallyNotJson.1102 : U64 = CallByName Num.21 TotallyNotJson.1104 TotallyNotJson.1105;
let TotallyNotJson.1103 : U64 = 100i64;
let TotallyNotJson.1101 : U64 = CallByName Num.137 TotallyNotJson.1102 TotallyNotJson.1103;
let TotallyNotJson.1098 : List U8 = CallByName List.68 TotallyNotJson.1101;
let TotallyNotJson.1100 : U8 = 34i64;
let TotallyNotJson.1099 : List U8 = Array [TotallyNotJson.1100];
let TotallyNotJson.1097 : List U8 = CallByName List.8 TotallyNotJson.1098 TotallyNotJson.1099;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1097 TotallyNotJson.179;
let TotallyNotJson.1080 : {} = Struct {};
let TotallyNotJson.1077 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1080;
let TotallyNotJson.1079 : U8 = 34i64;
let TotallyNotJson.1078 : List U8 = Array [TotallyNotJson.1079];
let TotallyNotJson.1076 : List U8 = CallByName List.8 TotallyNotJson.1077 TotallyNotJson.1078;
ret TotallyNotJson.1076;
procedure Test.70 (Test.71, Test.266):
let Test.72 : Str = StructAtIndex 0 Test.266;
let Test.73 : Str = StructAtIndex 1 Test.266;
let Test.270 : Str = CallByName Test.19 Test.72;
let Test.271 : {} = Struct {};
let Test.268 : List U8 = CallByName Encode.24 Test.71 Test.270 Test.271;
let Test.269 : {} = Struct {};
let Test.267 : List U8 = CallByName Encode.24 Test.268 Test.73 Test.269;
ret Test.267;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1083 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1083;
case 92:
let TotallyNotJson.1084 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1084;
case 47:
let TotallyNotJson.1085 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1085;
case 8:
let TotallyNotJson.1087 : U8 = 98i64;
let TotallyNotJson.1086 : List U8 = Array [92i64, TotallyNotJson.1087];
ret TotallyNotJson.1086;
case 12:
let TotallyNotJson.1089 : U8 = 102i64;
let TotallyNotJson.1088 : List U8 = Array [92i64, TotallyNotJson.1089];
ret TotallyNotJson.1088;
case 10:
let TotallyNotJson.1091 : U8 = 110i64;
let TotallyNotJson.1090 : List U8 = Array [92i64, TotallyNotJson.1091];
ret TotallyNotJson.1090;
case 13:
let TotallyNotJson.1093 : U8 = 114i64;
let TotallyNotJson.1092 : List U8 = Array [92i64, TotallyNotJson.1093];
ret TotallyNotJson.1092;
case 9:
let TotallyNotJson.1095 : U8 = 114i64;
let TotallyNotJson.1094 : List U8 = Array [92i64, TotallyNotJson.1095];
ret TotallyNotJson.1094;
default:
let TotallyNotJson.1096 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1096;
procedure TotallyNotJson.29 (TotallyNotJson.201):
let TotallyNotJson.1017 : List {Str, Str} = CallByName Encode.23 TotallyNotJson.201;
ret TotallyNotJson.1017;
procedure TotallyNotJson.29 (TotallyNotJson.201):
let TotallyNotJson.974 : List {Str, Str} = CallByName Encode.23 TotallyNotJson.201;
ret TotallyNotJson.974;
procedure TotallyNotJson.8 ():
let TotallyNotJson.1054 : {} = Struct {};
ret TotallyNotJson.1054;
procedure Test.70 (Test.71, Test.266):
let Test.72 : Str = StructAtIndex 0 Test.266;
let Test.73 : Str = StructAtIndex 1 Test.266;
let Test.302 : Str = CallByName Test.19 Test.72;
let Test.303 : {} = Struct {};
let Test.300 : List U8 = CallByName Encode.24 Test.71 Test.302 Test.303;
let Test.301 : {} = Struct {};
let Test.299 : List U8 = CallByName Encode.24 Test.300 Test.73 Test.301;
ret Test.299;
procedure Test.0 ():
let Test.12 : Str = "bar";
let Test.10 : {} = CallByName TotallyNotJson.8;
let Test.8 : List U8 = CallByName Encode.26 Test.12 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;
ret Test.2;
let Test.259 : Str = "bar";
let Test.256 : {} = CallByName Test.2;
let Test.254 : List U8 = CallByName Encode.26 Test.259 Test.256;
let Test.209 : [C {U64, U8}, C Str] = CallByName Str.9 Test.254;
let Test.251 : U8 = 1i64;
let Test.252 : U8 = GetTagId Test.209;
let Test.253 : Int1 = lowlevel Eq Test.251 Test.252;
if Test.253 then
let Test.210 : Str = UnionAtIndex (Id 1) (Index 0) Test.209;
ret Test.210;
else
dec Test.1;
let Test.4 : Str = "<bad>";
ret Test.4;
dec Test.209;
let Test.250 : Str = "<bad>";
ret Test.250;

View File

@ -4,17 +4,13 @@ procedure #Derived.0 (#Derived.1):
procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.7 : Str = "a";
let #Derived_gen.8 : Str = CallByName TotallyNotJson.25 #Derived.1;
let #Derived_gen.8 : Str = CallByName Test.19 #Derived.1;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6];
let #Derived_gen.4 : List {Str, Str} = CallByName TotallyNotJson.29 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Test.21 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure Encode.23 (Encode.98):
ret Encode.98;
@ -29,12 +25,12 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.202 Encode.99 Encode.101 Encode.107;
let Encode.113 : List U8 = CallByName Test.67 Encode.99 Encode.101 Encode.107;
ret Encode.113;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.116 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.116;
let Encode.118 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
@ -42,200 +38,78 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.652 : U64 = 0i64;
let List.653 : U64 = CallByName List.6 List.488;
let List.651 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.652 List.653;
ret List.651;
procedure List.18 (List.160, List.161, List.162):
let List.595 : U64 = 0i64;
let List.596 : U64 = CallByName List.6 List.160;
let List.594 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.595 List.596;
ret List.594;
procedure List.18 (List.160, List.161, List.162):
let List.607 : U64 = 0i64;
let List.608 : U64 = CallByName List.6 List.160;
let List.606 : List U8 = CallByName List.92 List.160 List.161 List.162 List.607 List.608;
ret List.606;
procedure List.26 (List.201, List.202, List.203):
let List.645 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.648 : U8 = 1i64;
let List.649 : U8 = GetTagId List.645;
let List.650 : Int1 = lowlevel Eq List.648 List.649;
if List.650 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.645;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.645;
ret List.205;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.4 (List.124, List.125):
let List.593 : U64 = 1i64;
let List.592 : List U8 = CallByName List.70 List.124 List.593;
let List.591 : List U8 = CallByName List.71 List.592 List.125;
ret List.591;
procedure List.49 (List.420, List.421):
let List.636 : U64 = StructAtIndex 1 List.421;
let List.637 : U64 = StructAtIndex 0 List.421;
let List.635 : List U8 = CallByName List.72 List.420 List.636 List.637;
ret List.635;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.643 List.438:
let List.641 : U64 = 0i64;
let List.640 : {U64, U64} = Struct {List.438, List.641};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.640;
let List.639 : U64 = CallByName Num.75 List.437 List.438;
let List.634 : {U64, U64} = Struct {List.639, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.634;
let List.633 : {List U8, List U8} = Struct {List.439, List.440};
ret List.633;
in
let List.644 : Int1 = CallByName Num.24 List.437 List.436;
if List.644 then
jump List.643 List.436;
else
jump List.643 List.437;
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.124 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.125;
ret List.594;
procedure List.6 (#Attr.2):
let List.628 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.628;
procedure List.6 (#Attr.2):
let List.630 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.630;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.66 (#Attr.2, #Attr.3):
let List.604 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.604;
procedure List.66 (#Attr.2, #Attr.3):
let List.616 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.616;
procedure List.68 (#Attr.2):
let List.632 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.632;
let List.584 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
let List.590 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.590;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.638 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.638;
let List.588 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.588;
procedure List.8 (#Attr.2, #Attr.3):
let List.627 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.627;
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.80 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint List.654 List.491 List.492 List.493 List.494 List.495:
let List.656 : Int1 = CallByName Num.22 List.494 List.495;
if List.656 then
let List.665 : U8 = CallByName List.66 List.491 List.494;
let List.657 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.665;
let List.662 : U8 = 1i64;
let List.663 : U8 = GetTagId List.657;
let List.664 : Int1 = lowlevel Eq List.662 List.663;
if List.664 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.657;
let List.660 : U64 = 1i64;
let List.659 : U64 = CallByName Num.51 List.494 List.660;
jump List.654 List.491 List.496 List.493 List.659 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.657;
let List.661 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.661;
else
dec List.491;
let List.655 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.655;
in
jump List.654 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
procedure List.92 (#Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28):
joinpoint List.597 List.163 List.164 List.165 List.166 List.167:
let List.599 : Int1 = CallByName Num.22 List.166 List.167;
if List.599 then
let List.603 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.603;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.204 List.164 List.603;
let List.602 : U64 = 1i64;
let List.601 : U64 = CallByName Num.51 List.166 List.602;
jump List.597 List.163 List.168 List.165 List.601 List.167;
procedure List.92 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.70 List.164 List.583;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.597 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28;
procedure List.92 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
joinpoint List.609 List.163 List.164 List.165 List.166 List.167:
let List.611 : Int1 = CallByName Num.22 List.166 List.167;
if List.611 then
let List.615 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.615;
let List.614 : U64 = 1i64;
let List.613 : U64 = CallByName Num.51 List.166 List.614;
jump List.609 List.163 List.168 List.165 List.613 List.167;
else
dec List.163;
ret List.164;
in
jump List.609 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
jump List.577 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.284;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.290;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.289 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.289;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.286 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.286;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.291;
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.297 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.297;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.299 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.299;
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.282;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.294;
let Num.281 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.281;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.298 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.298;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
procedure Str.36 (#Attr.2):
let Str.242 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.242;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.239;
@ -250,259 +124,74 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.34 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.34;
let #Derived_gen.24 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.24;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1019, TotallyNotJson.149):
let TotallyNotJson.1022 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1021 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1022;
ret TotallyNotJson.1021;
procedure Test.19 (Test.55):
let Test.291 : Str = CallByName Encode.23 Test.55;
ret Test.291;
procedure TotallyNotJson.157 (TotallyNotJson.1070, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1070;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1070;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1073 : Int1 = false;
let TotallyNotJson.1072 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1073};
let TotallyNotJson.1071 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1072;
ret TotallyNotJson.1071;
case 92:
let TotallyNotJson.1076 : Int1 = false;
let TotallyNotJson.1075 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1076};
let TotallyNotJson.1074 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1075;
ret TotallyNotJson.1074;
case 47:
let TotallyNotJson.1079 : Int1 = false;
let TotallyNotJson.1078 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1079};
let TotallyNotJson.1077 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1078;
ret TotallyNotJson.1077;
case 8:
let TotallyNotJson.1082 : Int1 = false;
let TotallyNotJson.1081 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1082};
let TotallyNotJson.1080 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1081;
ret TotallyNotJson.1080;
case 12:
let TotallyNotJson.1085 : Int1 = false;
let TotallyNotJson.1084 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1085};
let TotallyNotJson.1083 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1084;
ret TotallyNotJson.1083;
case 10:
let TotallyNotJson.1088 : Int1 = false;
let TotallyNotJson.1087 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1088};
let TotallyNotJson.1086 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1087;
ret TotallyNotJson.1086;
case 13:
let TotallyNotJson.1091 : Int1 = false;
let TotallyNotJson.1090 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1091};
let TotallyNotJson.1089 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1090;
ret TotallyNotJson.1089;
case 9:
let TotallyNotJson.1094 : Int1 = false;
let TotallyNotJson.1093 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1094};
let TotallyNotJson.1092 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1093;
ret TotallyNotJson.1092;
default:
let TotallyNotJson.1098 : U64 = 1i64;
let TotallyNotJson.1097 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1098;
let TotallyNotJson.1096 : {U64, Int1} = Struct {TotallyNotJson.1097, TotallyNotJson.159};
let TotallyNotJson.1095 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1096;
ret TotallyNotJson.1095;
procedure Test.2 ():
let Test.257 : {} = Struct {};
ret Test.257;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1041 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1040 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1041;
ret TotallyNotJson.1040;
procedure Test.21 (Test.66):
let Test.259 : List {Str, Str} = CallByName Encode.23 Test.66;
ret Test.259;
procedure TotallyNotJson.202 (TotallyNotJson.203, TotallyNotJson.976, TotallyNotJson.201):
let TotallyNotJson.1016 : I64 = 123i64;
let TotallyNotJson.1015 : U8 = CallByName Num.127 TotallyNotJson.1016;
let TotallyNotJson.205 : List U8 = CallByName List.4 TotallyNotJson.203 TotallyNotJson.1015;
let TotallyNotJson.1014 : U64 = CallByName List.6 TotallyNotJson.201;
let TotallyNotJson.984 : {List U8, U64} = Struct {TotallyNotJson.205, TotallyNotJson.1014};
let TotallyNotJson.985 : {} = Struct {};
let TotallyNotJson.983 : {List U8, U64} = CallByName List.18 TotallyNotJson.201 TotallyNotJson.984 TotallyNotJson.985;
let TotallyNotJson.207 : List U8 = StructAtIndex 0 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.207 TotallyNotJson.981;
ret TotallyNotJson.980;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.288 : U8 = CallByName Num.127 Test.49;
let Test.285 : List U8 = CallByName List.4 Test.48 Test.288;
let Test.287 : Str = CallByName Num.96 Test.50;
let Test.286 : List U8 = CallByName Str.12 Test.287;
let Test.283 : List U8 = CallByName List.8 Test.285 Test.286;
let Test.284 : U8 = 32i64;
let Test.282 : List U8 = CallByName List.4 Test.283 Test.284;
ret Test.282;
procedure TotallyNotJson.204 (TotallyNotJson.978, TotallyNotJson.979):
let TotallyNotJson.210 : Str = StructAtIndex 0 TotallyNotJson.979;
let TotallyNotJson.211 : Str = StructAtIndex 1 TotallyNotJson.979;
let TotallyNotJson.208 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.209 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.1011 : List U8 = Array [];
let TotallyNotJson.1012 : {} = CallByName TotallyNotJson.8;
let TotallyNotJson.212 : List U8 = CallByName Encode.24 TotallyNotJson.1011 TotallyNotJson.211 TotallyNotJson.1012;
let TotallyNotJson.1010 : List U8 = Array [];
let TotallyNotJson.1006 : Int1 = CallByName Bool.11 TotallyNotJson.212 TotallyNotJson.1010;
dec TotallyNotJson.1010;
if TotallyNotJson.1006 then
dec TotallyNotJson.210;
dec TotallyNotJson.212;
let TotallyNotJson.1009 : U64 = 1i64;
let TotallyNotJson.1008 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.1009;
let TotallyNotJson.1007 : {List U8, U64} = Struct {TotallyNotJson.208, TotallyNotJson.1008};
ret TotallyNotJson.1007;
else
let TotallyNotJson.1005 : I64 = 34i64;
let TotallyNotJson.1004 : U8 = CallByName Num.127 TotallyNotJson.1005;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.208 TotallyNotJson.1004;
let TotallyNotJson.1003 : List U8 = CallByName Str.12 TotallyNotJson.210;
let TotallyNotJson.999 : List U8 = CallByName List.8 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 34i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.996 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : I64 = 58i64;
let TotallyNotJson.997 : U8 = CallByName Num.127 TotallyNotJson.998;
let TotallyNotJson.995 : List U8 = CallByName List.4 TotallyNotJson.996 TotallyNotJson.997;
let TotallyNotJson.214 : List U8 = CallByName List.8 TotallyNotJson.995 TotallyNotJson.212;
joinpoint TotallyNotJson.990 TotallyNotJson.215:
let TotallyNotJson.988 : U64 = 1i64;
let TotallyNotJson.987 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.988;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.215, TotallyNotJson.987};
ret TotallyNotJson.986;
in
let TotallyNotJson.994 : U64 = 1i64;
let TotallyNotJson.991 : Int1 = CallByName Num.24 TotallyNotJson.209 TotallyNotJson.994;
if TotallyNotJson.991 then
let TotallyNotJson.993 : I64 = 44i64;
let TotallyNotJson.992 : U8 = CallByName Num.127 TotallyNotJson.993;
let TotallyNotJson.989 : List U8 = CallByName List.4 TotallyNotJson.214 TotallyNotJson.992;
jump TotallyNotJson.990 TotallyNotJson.989;
else
jump TotallyNotJson.990 TotallyNotJson.214;
procedure Test.56 (Test.57, Test.273, Test.55):
let Test.280 : I64 = 115i64;
let Test.281 : U64 = CallByName Str.36 Test.55;
let Test.278 : List U8 = CallByName Test.3 Test.57 Test.280 Test.281;
let Test.279 : List U8 = CallByName Str.12 Test.55;
let Test.276 : List U8 = CallByName List.8 Test.278 Test.279;
let Test.277 : U8 = 32i64;
let Test.275 : List U8 = CallByName List.4 Test.276 Test.277;
ret Test.275;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1017 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1017;
procedure Test.67 (Test.68, Test.261, Test.66):
let Test.289 : I64 = 114i64;
let Test.290 : U64 = CallByName List.6 Test.66;
let Test.69 : List U8 = CallByName Test.3 Test.68 Test.289 Test.290;
let Test.264 : {} = Struct {};
let Test.263 : List U8 = CallByName List.18 Test.66 Test.69 Test.264;
ret Test.263;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1099 : U64 = 0i64;
let TotallyNotJson.1100 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1099, TotallyNotJson.1100};
let TotallyNotJson.1069 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1069;
let TotallyNotJson.1023 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1067 : Int1 = true;
let TotallyNotJson.1068 : Int1 = lowlevel Eq TotallyNotJson.1067 TotallyNotJson.1023;
if TotallyNotJson.1068 then
let TotallyNotJson.1033 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1034 : U64 = 2i64;
let TotallyNotJson.1032 : U64 = CallByName Num.19 TotallyNotJson.1033 TotallyNotJson.1034;
let TotallyNotJson.1029 : List U8 = CallByName List.68 TotallyNotJson.1032;
let TotallyNotJson.1031 : U8 = 34i64;
let TotallyNotJson.1030 : List U8 = Array [TotallyNotJson.1031];
let TotallyNotJson.1028 : List U8 = CallByName List.8 TotallyNotJson.1029 TotallyNotJson.1030;
let TotallyNotJson.1025 : List U8 = CallByName List.8 TotallyNotJson.1028 TotallyNotJson.153;
let TotallyNotJson.1027 : U8 = 34i64;
let TotallyNotJson.1026 : List U8 = Array [TotallyNotJson.1027];
let TotallyNotJson.1024 : List U8 = CallByName List.8 TotallyNotJson.1025 TotallyNotJson.1026;
ret TotallyNotJson.1024;
else
inc TotallyNotJson.153;
let TotallyNotJson.1066 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1065 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1066;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1065;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1065;
let TotallyNotJson.1063 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1064 : U64 = 120i64;
let TotallyNotJson.1061 : U64 = CallByName Num.21 TotallyNotJson.1063 TotallyNotJson.1064;
let TotallyNotJson.1062 : U64 = 100i64;
let TotallyNotJson.1060 : U64 = CallByName Num.137 TotallyNotJson.1061 TotallyNotJson.1062;
let TotallyNotJson.1057 : List U8 = CallByName List.68 TotallyNotJson.1060;
let TotallyNotJson.1059 : U8 = 34i64;
let TotallyNotJson.1058 : List U8 = Array [TotallyNotJson.1059];
let TotallyNotJson.1056 : List U8 = CallByName List.8 TotallyNotJson.1057 TotallyNotJson.1058;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1056 TotallyNotJson.179;
let TotallyNotJson.1039 : {} = Struct {};
let TotallyNotJson.1036 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1039;
let TotallyNotJson.1038 : U8 = 34i64;
let TotallyNotJson.1037 : List U8 = Array [TotallyNotJson.1038];
let TotallyNotJson.1035 : List U8 = CallByName List.8 TotallyNotJson.1036 TotallyNotJson.1037;
ret TotallyNotJson.1035;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1042 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1042;
case 92:
let TotallyNotJson.1043 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1043;
case 47:
let TotallyNotJson.1044 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1044;
case 8:
let TotallyNotJson.1046 : U8 = 98i64;
let TotallyNotJson.1045 : List U8 = Array [92i64, TotallyNotJson.1046];
ret TotallyNotJson.1045;
case 12:
let TotallyNotJson.1048 : U8 = 102i64;
let TotallyNotJson.1047 : List U8 = Array [92i64, TotallyNotJson.1048];
ret TotallyNotJson.1047;
case 10:
let TotallyNotJson.1050 : U8 = 110i64;
let TotallyNotJson.1049 : List U8 = Array [92i64, TotallyNotJson.1050];
ret TotallyNotJson.1049;
case 13:
let TotallyNotJson.1052 : U8 = 114i64;
let TotallyNotJson.1051 : List U8 = Array [92i64, TotallyNotJson.1052];
ret TotallyNotJson.1051;
case 9:
let TotallyNotJson.1054 : U8 = 114i64;
let TotallyNotJson.1053 : List U8 = Array [92i64, TotallyNotJson.1054];
ret TotallyNotJson.1053;
default:
let TotallyNotJson.1055 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1055;
procedure TotallyNotJson.29 (TotallyNotJson.201):
let TotallyNotJson.974 : List {Str, Str} = CallByName Encode.23 TotallyNotJson.201;
ret TotallyNotJson.974;
procedure TotallyNotJson.8 ():
let TotallyNotJson.1013 : {} = Struct {};
ret TotallyNotJson.1013;
procedure Test.70 (Test.71, Test.265):
let Test.72 : Str = StructAtIndex 0 Test.265;
let Test.73 : Str = StructAtIndex 1 Test.265;
let Test.269 : Str = CallByName Test.19 Test.72;
let Test.270 : {} = Struct {};
let Test.267 : List U8 = CallByName Encode.24 Test.71 Test.269 Test.270;
let Test.268 : {} = Struct {};
let Test.266 : List U8 = CallByName Encode.24 Test.267 Test.73 Test.268;
ret Test.266;
procedure Test.0 ():
let Test.11 : Str = "foo";
let Test.10 : {} = CallByName TotallyNotJson.8;
let Test.8 : List U8 = CallByName Encode.26 Test.11 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;
ret Test.2;
let Test.258 : Str = "foo";
let Test.256 : {} = CallByName Test.2;
let Test.254 : List U8 = CallByName Encode.26 Test.258 Test.256;
let Test.209 : [C {U64, U8}, C Str] = CallByName Str.9 Test.254;
let Test.251 : U8 = 1i64;
let Test.252 : U8 = GetTagId Test.209;
let Test.253 : Int1 = lowlevel Eq Test.251 Test.252;
if Test.253 then
let Test.210 : Str = UnionAtIndex (Id 1) (Index 0) Test.209;
ret Test.210;
else
dec Test.1;
let Test.4 : Str = "<bad>";
ret Test.4;
dec Test.209;
let Test.250 : Str = "<bad>";
ret Test.250;

View File

@ -6,22 +6,18 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.11 : Str = "a";
let #Derived_gen.13 : Str = StructAtIndex 0 #Derived.1;
inc #Derived_gen.13;
let #Derived_gen.12 : Str = CallByName TotallyNotJson.25 #Derived_gen.13;
let #Derived_gen.12 : Str = CallByName Test.19 #Derived_gen.13;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.11, #Derived_gen.12};
let #Derived_gen.8 : Str = "b";
let #Derived_gen.10 : Str = StructAtIndex 1 #Derived.1;
dec #Derived_gen.13;
let #Derived_gen.9 : Str = CallByName TotallyNotJson.25 #Derived_gen.10;
let #Derived_gen.9 : Str = CallByName Test.19 #Derived_gen.10;
let #Derived_gen.7 : {Str, Str} = Struct {#Derived_gen.8, #Derived_gen.9};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6, #Derived_gen.7];
let #Derived_gen.4 : List {Str, Str} = CallByName TotallyNotJson.29 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Test.21 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure Encode.23 (Encode.98):
ret Encode.98;
@ -36,12 +32,12 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.202 Encode.99 Encode.101 Encode.107;
let Encode.113 : List U8 = CallByName Test.67 Encode.99 Encode.101 Encode.107;
ret Encode.113;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.117 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.117;
let Encode.119 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.119;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
@ -49,200 +45,78 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.652 : U64 = 0i64;
let List.653 : U64 = CallByName List.6 List.488;
let List.651 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.652 List.653;
ret List.651;
procedure List.18 (List.160, List.161, List.162):
let List.595 : U64 = 0i64;
let List.596 : U64 = CallByName List.6 List.160;
let List.594 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.595 List.596;
ret List.594;
procedure List.18 (List.160, List.161, List.162):
let List.607 : U64 = 0i64;
let List.608 : U64 = CallByName List.6 List.160;
let List.606 : List U8 = CallByName List.92 List.160 List.161 List.162 List.607 List.608;
ret List.606;
procedure List.26 (List.201, List.202, List.203):
let List.645 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.648 : U8 = 1i64;
let List.649 : U8 = GetTagId List.645;
let List.650 : Int1 = lowlevel Eq List.648 List.649;
if List.650 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.645;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.645;
ret List.205;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.4 (List.124, List.125):
let List.593 : U64 = 1i64;
let List.592 : List U8 = CallByName List.70 List.124 List.593;
let List.591 : List U8 = CallByName List.71 List.592 List.125;
ret List.591;
procedure List.49 (List.420, List.421):
let List.636 : U64 = StructAtIndex 1 List.421;
let List.637 : U64 = StructAtIndex 0 List.421;
let List.635 : List U8 = CallByName List.72 List.420 List.636 List.637;
ret List.635;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.643 List.438:
let List.641 : U64 = 0i64;
let List.640 : {U64, U64} = Struct {List.438, List.641};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.640;
let List.639 : U64 = CallByName Num.75 List.437 List.438;
let List.634 : {U64, U64} = Struct {List.639, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.634;
let List.633 : {List U8, List U8} = Struct {List.439, List.440};
ret List.633;
in
let List.644 : Int1 = CallByName Num.24 List.437 List.436;
if List.644 then
jump List.643 List.436;
else
jump List.643 List.437;
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.124 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.125;
ret List.594;
procedure List.6 (#Attr.2):
let List.628 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.628;
procedure List.6 (#Attr.2):
let List.630 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.630;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.66 (#Attr.2, #Attr.3):
let List.604 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.604;
procedure List.66 (#Attr.2, #Attr.3):
let List.616 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.616;
procedure List.68 (#Attr.2):
let List.632 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.632;
let List.584 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
let List.590 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.590;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.638 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.638;
let List.588 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.588;
procedure List.8 (#Attr.2, #Attr.3):
let List.627 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.627;
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.80 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint List.654 List.491 List.492 List.493 List.494 List.495:
let List.656 : Int1 = CallByName Num.22 List.494 List.495;
if List.656 then
let List.665 : U8 = CallByName List.66 List.491 List.494;
let List.657 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.665;
let List.662 : U8 = 1i64;
let List.663 : U8 = GetTagId List.657;
let List.664 : Int1 = lowlevel Eq List.662 List.663;
if List.664 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.657;
let List.660 : U64 = 1i64;
let List.659 : U64 = CallByName Num.51 List.494 List.660;
jump List.654 List.491 List.496 List.493 List.659 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.657;
let List.661 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.661;
else
dec List.491;
let List.655 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.655;
in
jump List.654 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
procedure List.92 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
joinpoint List.597 List.163 List.164 List.165 List.166 List.167:
let List.599 : Int1 = CallByName Num.22 List.166 List.167;
if List.599 then
let List.603 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.603;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.204 List.164 List.603;
let List.602 : U64 = 1i64;
let List.601 : U64 = CallByName Num.51 List.166 List.602;
jump List.597 List.163 List.168 List.165 List.601 List.167;
procedure List.92 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : {Str, Str} = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.70 List.164 List.583;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.597 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
procedure List.92 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
joinpoint List.609 List.163 List.164 List.165 List.166 List.167:
let List.611 : Int1 = CallByName Num.22 List.166 List.167;
if List.611 then
let List.615 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.615;
let List.614 : U64 = 1i64;
let List.613 : U64 = CallByName Num.51 List.166 List.614;
jump List.609 List.163 List.168 List.165 List.613 List.167;
else
dec List.163;
ret List.164;
in
jump List.609 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
jump List.577 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.284;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.290;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.289 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.289;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.286 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.286;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.291;
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.297 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.297;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.299 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.299;
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.282;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.294;
let Num.281 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.281;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.298 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.298;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
procedure Str.36 (#Attr.2):
let Str.242 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.242;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.239;
@ -257,261 +131,76 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.38 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.38;
let #Derived_gen.28 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.28;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1019, TotallyNotJson.149):
let TotallyNotJson.1022 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1021 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1022;
ret TotallyNotJson.1021;
procedure Test.19 (Test.55):
let Test.295 : Str = CallByName Encode.23 Test.55;
ret Test.295;
procedure TotallyNotJson.157 (TotallyNotJson.1070, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1070;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1070;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1073 : Int1 = false;
let TotallyNotJson.1072 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1073};
let TotallyNotJson.1071 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1072;
ret TotallyNotJson.1071;
case 92:
let TotallyNotJson.1076 : Int1 = false;
let TotallyNotJson.1075 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1076};
let TotallyNotJson.1074 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1075;
ret TotallyNotJson.1074;
case 47:
let TotallyNotJson.1079 : Int1 = false;
let TotallyNotJson.1078 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1079};
let TotallyNotJson.1077 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1078;
ret TotallyNotJson.1077;
case 8:
let TotallyNotJson.1082 : Int1 = false;
let TotallyNotJson.1081 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1082};
let TotallyNotJson.1080 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1081;
ret TotallyNotJson.1080;
case 12:
let TotallyNotJson.1085 : Int1 = false;
let TotallyNotJson.1084 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1085};
let TotallyNotJson.1083 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1084;
ret TotallyNotJson.1083;
case 10:
let TotallyNotJson.1088 : Int1 = false;
let TotallyNotJson.1087 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1088};
let TotallyNotJson.1086 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1087;
ret TotallyNotJson.1086;
case 13:
let TotallyNotJson.1091 : Int1 = false;
let TotallyNotJson.1090 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1091};
let TotallyNotJson.1089 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1090;
ret TotallyNotJson.1089;
case 9:
let TotallyNotJson.1094 : Int1 = false;
let TotallyNotJson.1093 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1094};
let TotallyNotJson.1092 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1093;
ret TotallyNotJson.1092;
default:
let TotallyNotJson.1098 : U64 = 1i64;
let TotallyNotJson.1097 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1098;
let TotallyNotJson.1096 : {U64, Int1} = Struct {TotallyNotJson.1097, TotallyNotJson.159};
let TotallyNotJson.1095 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1096;
ret TotallyNotJson.1095;
procedure Test.2 ():
let Test.257 : {} = Struct {};
ret Test.257;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1041 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1040 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1041;
ret TotallyNotJson.1040;
procedure Test.21 (Test.66):
let Test.260 : List {Str, Str} = CallByName Encode.23 Test.66;
ret Test.260;
procedure TotallyNotJson.202 (TotallyNotJson.203, TotallyNotJson.976, TotallyNotJson.201):
let TotallyNotJson.1016 : I64 = 123i64;
let TotallyNotJson.1015 : U8 = CallByName Num.127 TotallyNotJson.1016;
let TotallyNotJson.205 : List U8 = CallByName List.4 TotallyNotJson.203 TotallyNotJson.1015;
let TotallyNotJson.1014 : U64 = CallByName List.6 TotallyNotJson.201;
let TotallyNotJson.984 : {List U8, U64} = Struct {TotallyNotJson.205, TotallyNotJson.1014};
let TotallyNotJson.985 : {} = Struct {};
let TotallyNotJson.983 : {List U8, U64} = CallByName List.18 TotallyNotJson.201 TotallyNotJson.984 TotallyNotJson.985;
let TotallyNotJson.207 : List U8 = StructAtIndex 0 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.207 TotallyNotJson.981;
ret TotallyNotJson.980;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.289 : U8 = CallByName Num.127 Test.49;
let Test.286 : List U8 = CallByName List.4 Test.48 Test.289;
let Test.288 : Str = CallByName Num.96 Test.50;
let Test.287 : List U8 = CallByName Str.12 Test.288;
let Test.284 : List U8 = CallByName List.8 Test.286 Test.287;
let Test.285 : U8 = 32i64;
let Test.283 : List U8 = CallByName List.4 Test.284 Test.285;
ret Test.283;
procedure TotallyNotJson.204 (TotallyNotJson.978, TotallyNotJson.979):
let TotallyNotJson.210 : Str = StructAtIndex 0 TotallyNotJson.979;
let TotallyNotJson.211 : Str = StructAtIndex 1 TotallyNotJson.979;
let TotallyNotJson.208 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.209 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.1011 : List U8 = Array [];
let TotallyNotJson.1012 : {} = CallByName TotallyNotJson.8;
let TotallyNotJson.212 : List U8 = CallByName Encode.24 TotallyNotJson.1011 TotallyNotJson.211 TotallyNotJson.1012;
let TotallyNotJson.1010 : List U8 = Array [];
let TotallyNotJson.1006 : Int1 = CallByName Bool.11 TotallyNotJson.212 TotallyNotJson.1010;
dec TotallyNotJson.1010;
if TotallyNotJson.1006 then
dec TotallyNotJson.210;
dec TotallyNotJson.212;
let TotallyNotJson.1009 : U64 = 1i64;
let TotallyNotJson.1008 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.1009;
let TotallyNotJson.1007 : {List U8, U64} = Struct {TotallyNotJson.208, TotallyNotJson.1008};
ret TotallyNotJson.1007;
else
let TotallyNotJson.1005 : I64 = 34i64;
let TotallyNotJson.1004 : U8 = CallByName Num.127 TotallyNotJson.1005;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.208 TotallyNotJson.1004;
let TotallyNotJson.1003 : List U8 = CallByName Str.12 TotallyNotJson.210;
let TotallyNotJson.999 : List U8 = CallByName List.8 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 34i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.996 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : I64 = 58i64;
let TotallyNotJson.997 : U8 = CallByName Num.127 TotallyNotJson.998;
let TotallyNotJson.995 : List U8 = CallByName List.4 TotallyNotJson.996 TotallyNotJson.997;
let TotallyNotJson.214 : List U8 = CallByName List.8 TotallyNotJson.995 TotallyNotJson.212;
joinpoint TotallyNotJson.990 TotallyNotJson.215:
let TotallyNotJson.988 : U64 = 1i64;
let TotallyNotJson.987 : U64 = CallByName Num.20 TotallyNotJson.209 TotallyNotJson.988;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.215, TotallyNotJson.987};
ret TotallyNotJson.986;
in
let TotallyNotJson.994 : U64 = 1i64;
let TotallyNotJson.991 : Int1 = CallByName Num.24 TotallyNotJson.209 TotallyNotJson.994;
if TotallyNotJson.991 then
let TotallyNotJson.993 : I64 = 44i64;
let TotallyNotJson.992 : U8 = CallByName Num.127 TotallyNotJson.993;
let TotallyNotJson.989 : List U8 = CallByName List.4 TotallyNotJson.214 TotallyNotJson.992;
jump TotallyNotJson.990 TotallyNotJson.989;
else
jump TotallyNotJson.990 TotallyNotJson.214;
procedure Test.56 (Test.57, Test.274, Test.55):
let Test.281 : I64 = 115i64;
let Test.282 : U64 = CallByName Str.36 Test.55;
let Test.279 : List U8 = CallByName Test.3 Test.57 Test.281 Test.282;
let Test.280 : List U8 = CallByName Str.12 Test.55;
let Test.277 : List U8 = CallByName List.8 Test.279 Test.280;
let Test.278 : U8 = 32i64;
let Test.276 : List U8 = CallByName List.4 Test.277 Test.278;
ret Test.276;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1101 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1101;
procedure Test.67 (Test.68, Test.262, Test.66):
let Test.290 : I64 = 114i64;
let Test.291 : U64 = CallByName List.6 Test.66;
let Test.69 : List U8 = CallByName Test.3 Test.68 Test.290 Test.291;
let Test.265 : {} = Struct {};
let Test.264 : List U8 = CallByName List.18 Test.66 Test.69 Test.265;
ret Test.264;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1099 : U64 = 0i64;
let TotallyNotJson.1100 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1099, TotallyNotJson.1100};
let TotallyNotJson.1069 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1069;
let TotallyNotJson.1023 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1067 : Int1 = true;
let TotallyNotJson.1068 : Int1 = lowlevel Eq TotallyNotJson.1067 TotallyNotJson.1023;
if TotallyNotJson.1068 then
let TotallyNotJson.1033 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1034 : U64 = 2i64;
let TotallyNotJson.1032 : U64 = CallByName Num.19 TotallyNotJson.1033 TotallyNotJson.1034;
let TotallyNotJson.1029 : List U8 = CallByName List.68 TotallyNotJson.1032;
let TotallyNotJson.1031 : U8 = 34i64;
let TotallyNotJson.1030 : List U8 = Array [TotallyNotJson.1031];
let TotallyNotJson.1028 : List U8 = CallByName List.8 TotallyNotJson.1029 TotallyNotJson.1030;
let TotallyNotJson.1025 : List U8 = CallByName List.8 TotallyNotJson.1028 TotallyNotJson.153;
let TotallyNotJson.1027 : U8 = 34i64;
let TotallyNotJson.1026 : List U8 = Array [TotallyNotJson.1027];
let TotallyNotJson.1024 : List U8 = CallByName List.8 TotallyNotJson.1025 TotallyNotJson.1026;
ret TotallyNotJson.1024;
else
inc TotallyNotJson.153;
let TotallyNotJson.1066 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1065 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1066;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1065;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1065;
let TotallyNotJson.1063 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1064 : U64 = 120i64;
let TotallyNotJson.1061 : U64 = CallByName Num.21 TotallyNotJson.1063 TotallyNotJson.1064;
let TotallyNotJson.1062 : U64 = 100i64;
let TotallyNotJson.1060 : U64 = CallByName Num.137 TotallyNotJson.1061 TotallyNotJson.1062;
let TotallyNotJson.1057 : List U8 = CallByName List.68 TotallyNotJson.1060;
let TotallyNotJson.1059 : U8 = 34i64;
let TotallyNotJson.1058 : List U8 = Array [TotallyNotJson.1059];
let TotallyNotJson.1056 : List U8 = CallByName List.8 TotallyNotJson.1057 TotallyNotJson.1058;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1056 TotallyNotJson.179;
let TotallyNotJson.1039 : {} = Struct {};
let TotallyNotJson.1036 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1039;
let TotallyNotJson.1038 : U8 = 34i64;
let TotallyNotJson.1037 : List U8 = Array [TotallyNotJson.1038];
let TotallyNotJson.1035 : List U8 = CallByName List.8 TotallyNotJson.1036 TotallyNotJson.1037;
ret TotallyNotJson.1035;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1042 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1042;
case 92:
let TotallyNotJson.1043 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1043;
case 47:
let TotallyNotJson.1044 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1044;
case 8:
let TotallyNotJson.1046 : U8 = 98i64;
let TotallyNotJson.1045 : List U8 = Array [92i64, TotallyNotJson.1046];
ret TotallyNotJson.1045;
case 12:
let TotallyNotJson.1048 : U8 = 102i64;
let TotallyNotJson.1047 : List U8 = Array [92i64, TotallyNotJson.1048];
ret TotallyNotJson.1047;
case 10:
let TotallyNotJson.1050 : U8 = 110i64;
let TotallyNotJson.1049 : List U8 = Array [92i64, TotallyNotJson.1050];
ret TotallyNotJson.1049;
case 13:
let TotallyNotJson.1052 : U8 = 114i64;
let TotallyNotJson.1051 : List U8 = Array [92i64, TotallyNotJson.1052];
ret TotallyNotJson.1051;
case 9:
let TotallyNotJson.1054 : U8 = 114i64;
let TotallyNotJson.1053 : List U8 = Array [92i64, TotallyNotJson.1054];
ret TotallyNotJson.1053;
default:
let TotallyNotJson.1055 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1055;
procedure TotallyNotJson.29 (TotallyNotJson.201):
let TotallyNotJson.974 : List {Str, Str} = CallByName Encode.23 TotallyNotJson.201;
ret TotallyNotJson.974;
procedure TotallyNotJson.8 ():
let TotallyNotJson.1013 : {} = Struct {};
ret TotallyNotJson.1013;
procedure Test.70 (Test.71, Test.266):
let Test.72 : Str = StructAtIndex 0 Test.266;
let Test.73 : Str = StructAtIndex 1 Test.266;
let Test.270 : Str = CallByName Test.19 Test.72;
let Test.271 : {} = Struct {};
let Test.268 : List U8 = CallByName Encode.24 Test.71 Test.270 Test.271;
let Test.269 : {} = Struct {};
let Test.267 : List U8 = CallByName Encode.24 Test.268 Test.73 Test.269;
ret Test.267;
procedure Test.0 ():
let Test.11 : Str = "foo";
let Test.12 : Str = "bar";
let Test.9 : {Str, Str} = Struct {Test.11, Test.12};
let Test.10 : {} = CallByName TotallyNotJson.8;
let Test.8 : List U8 = CallByName Encode.26 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;
ret Test.2;
let Test.258 : Str = "foo";
let Test.259 : Str = "bar";
let Test.255 : {Str, Str} = Struct {Test.258, Test.259};
let Test.256 : {} = CallByName Test.2;
let Test.254 : List U8 = CallByName Encode.26 Test.255 Test.256;
let Test.209 : [C {U64, U8}, C Str] = CallByName Str.9 Test.254;
let Test.251 : U8 = 1i64;
let Test.252 : U8 = GetTagId Test.209;
let Test.253 : Int1 = lowlevel Eq Test.251 Test.252;
if Test.253 then
let Test.210 : Str = UnionAtIndex (Id 1) (Index 0) Test.209;
ret Test.210;
else
dec Test.1;
let Test.4 : Str = "<bad>";
ret Test.4;
dec Test.209;
let Test.250 : Str = "<bad>";
ret Test.250;

View File

@ -2,156 +2,48 @@ procedure Encode.23 (Encode.98):
ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.111 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
let Encode.111 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.111;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
let Encode.110 : Str = CallByName TotallyNotJson.25 Encode.105;
let Encode.110 : Str = CallByName Test.19 Encode.105;
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.616 : U64 = 0i64;
let List.617 : U64 = CallByName List.6 List.488;
let List.615 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.616 List.617;
ret List.615;
procedure List.4 (List.124, List.125):
let List.584 : U64 = 1i64;
let List.583 : List U8 = CallByName List.70 List.124 List.584;
let List.582 : List U8 = CallByName List.71 List.583 List.125;
ret List.582;
procedure List.18 (List.160, List.161, List.162):
let List.587 : U64 = 0i64;
let List.588 : U64 = CallByName List.6 List.160;
let List.586 : List U8 = CallByName List.92 List.160 List.161 List.162 List.587 List.588;
ret List.586;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
procedure List.26 (List.201, List.202, List.203):
let List.609 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.612 : U8 = 1i64;
let List.613 : U8 = GetTagId List.609;
let List.614 : Int1 = lowlevel Eq List.612 List.613;
if List.614 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.609;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.609;
ret List.205;
procedure List.49 (List.420, List.421):
let List.600 : U64 = StructAtIndex 1 List.421;
let List.601 : U64 = StructAtIndex 0 List.421;
let List.599 : List U8 = CallByName List.72 List.420 List.600 List.601;
ret List.599;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.607 List.438:
let List.605 : U64 = 0i64;
let List.604 : {U64, U64} = Struct {List.438, List.605};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.604;
let List.603 : U64 = CallByName Num.75 List.437 List.438;
let List.598 : {U64, U64} = Struct {List.603, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.598;
let List.597 : {List U8, List U8} = Struct {List.439, List.440};
ret List.597;
in
let List.608 : Int1 = CallByName Num.24 List.437 List.436;
if List.608 then
jump List.607 List.436;
else
jump List.607 List.437;
procedure List.6 (#Attr.2):
let List.585 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.585;
procedure List.66 (#Attr.2, #Attr.3):
let List.596 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.596;
procedure List.68 (#Attr.2):
let List.583 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.583;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.602 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.602;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.8 (#Attr.2, #Attr.3):
let List.581 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.581;
let List.586 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.586;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.618 List.491 List.492 List.493 List.494 List.495:
let List.620 : Int1 = CallByName Num.22 List.494 List.495;
if List.620 then
let List.629 : U8 = CallByName List.66 List.491 List.494;
let List.621 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.629;
let List.626 : U8 = 1i64;
let List.627 : U8 = GetTagId List.621;
let List.628 : Int1 = lowlevel Eq List.626 List.627;
if List.628 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.621;
let List.624 : U64 = 1i64;
let List.623 : U64 = CallByName Num.51 List.494 List.624;
jump List.618 List.491 List.496 List.493 List.623 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.621;
let List.625 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.625;
else
dec List.491;
let List.619 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.619;
in
jump List.618 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.92 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9):
joinpoint List.589 List.163 List.164 List.165 List.166 List.167:
let List.591 : Int1 = CallByName Num.22 List.166 List.167;
if List.591 then
let List.595 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.595;
let List.594 : U64 = 1i64;
let List.593 : U64 = CallByName Num.51 List.166 List.594;
jump List.589 List.163 List.168 List.165 List.593 List.167;
else
dec List.163;
ret List.164;
in
jump List.589 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.281 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.281;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.280 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
procedure Num.127 (#Attr.2):
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.282 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.282;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.286;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.288 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.288;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.284;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.287 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.287;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.240 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.240;
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
procedure Str.36 (#Attr.2):
let Str.242 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.242;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
@ -167,194 +59,52 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.13 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.13;
let #Derived_gen.3 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.3;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.976, TotallyNotJson.149):
let TotallyNotJson.979 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.978 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.979;
ret TotallyNotJson.978;
procedure Test.19 (Test.55):
let Test.258 : Str = CallByName Encode.23 Test.55;
ret Test.258;
procedure TotallyNotJson.157 (TotallyNotJson.1027, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1027;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1027;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1030 : Int1 = false;
let TotallyNotJson.1029 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1030};
let TotallyNotJson.1028 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1029;
ret TotallyNotJson.1028;
case 92:
let TotallyNotJson.1033 : Int1 = false;
let TotallyNotJson.1032 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1033};
let TotallyNotJson.1031 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1032;
ret TotallyNotJson.1031;
case 47:
let TotallyNotJson.1036 : Int1 = false;
let TotallyNotJson.1035 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1036};
let TotallyNotJson.1034 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1035;
ret TotallyNotJson.1034;
case 8:
let TotallyNotJson.1039 : Int1 = false;
let TotallyNotJson.1038 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1039};
let TotallyNotJson.1037 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1038;
ret TotallyNotJson.1037;
case 12:
let TotallyNotJson.1042 : Int1 = false;
let TotallyNotJson.1041 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1042};
let TotallyNotJson.1040 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1041;
ret TotallyNotJson.1040;
case 10:
let TotallyNotJson.1045 : Int1 = false;
let TotallyNotJson.1044 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1045};
let TotallyNotJson.1043 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1044;
ret TotallyNotJson.1043;
case 13:
let TotallyNotJson.1048 : Int1 = false;
let TotallyNotJson.1047 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1048};
let TotallyNotJson.1046 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1047;
ret TotallyNotJson.1046;
case 9:
let TotallyNotJson.1051 : Int1 = false;
let TotallyNotJson.1050 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1051};
let TotallyNotJson.1049 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1050;
ret TotallyNotJson.1049;
default:
let TotallyNotJson.1055 : U64 = 1i64;
let TotallyNotJson.1054 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1055;
let TotallyNotJson.1053 : {U64, Int1} = Struct {TotallyNotJson.1054, TotallyNotJson.159};
let TotallyNotJson.1052 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1053;
ret TotallyNotJson.1052;
procedure Test.2 ():
let Test.257 : {} = Struct {};
ret Test.257;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.998 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.997 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.998;
ret TotallyNotJson.997;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.275 : U8 = CallByName Num.127 Test.49;
let Test.272 : List U8 = CallByName List.4 Test.48 Test.275;
let Test.274 : Str = CallByName Num.96 Test.50;
let Test.273 : List U8 = CallByName Str.12 Test.274;
let Test.270 : List U8 = CallByName List.8 Test.272 Test.273;
let Test.271 : U8 = 32i64;
let Test.269 : List U8 = CallByName List.4 Test.270 Test.271;
ret Test.269;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.974 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.974;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1056 : U64 = 0i64;
let TotallyNotJson.1057 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1056, TotallyNotJson.1057};
let TotallyNotJson.1026 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1026;
let TotallyNotJson.980 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1024 : Int1 = true;
let TotallyNotJson.1025 : Int1 = lowlevel Eq TotallyNotJson.1024 TotallyNotJson.980;
if TotallyNotJson.1025 then
let TotallyNotJson.990 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.991 : U64 = 2i64;
let TotallyNotJson.989 : U64 = CallByName Num.19 TotallyNotJson.990 TotallyNotJson.991;
let TotallyNotJson.986 : List U8 = CallByName List.68 TotallyNotJson.989;
let TotallyNotJson.988 : U8 = 34i64;
let TotallyNotJson.987 : List U8 = Array [TotallyNotJson.988];
let TotallyNotJson.985 : List U8 = CallByName List.8 TotallyNotJson.986 TotallyNotJson.987;
let TotallyNotJson.982 : List U8 = CallByName List.8 TotallyNotJson.985 TotallyNotJson.153;
let TotallyNotJson.984 : U8 = 34i64;
let TotallyNotJson.983 : List U8 = Array [TotallyNotJson.984];
let TotallyNotJson.981 : List U8 = CallByName List.8 TotallyNotJson.982 TotallyNotJson.983;
ret TotallyNotJson.981;
else
inc TotallyNotJson.153;
let TotallyNotJson.1023 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1022 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1023;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1022;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1022;
let TotallyNotJson.1020 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1021 : U64 = 120i64;
let TotallyNotJson.1018 : U64 = CallByName Num.21 TotallyNotJson.1020 TotallyNotJson.1021;
let TotallyNotJson.1019 : U64 = 100i64;
let TotallyNotJson.1017 : U64 = CallByName Num.137 TotallyNotJson.1018 TotallyNotJson.1019;
let TotallyNotJson.1014 : List U8 = CallByName List.68 TotallyNotJson.1017;
let TotallyNotJson.1016 : U8 = 34i64;
let TotallyNotJson.1015 : List U8 = Array [TotallyNotJson.1016];
let TotallyNotJson.1013 : List U8 = CallByName List.8 TotallyNotJson.1014 TotallyNotJson.1015;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1013 TotallyNotJson.179;
let TotallyNotJson.996 : {} = Struct {};
let TotallyNotJson.993 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.996;
let TotallyNotJson.995 : U8 = 34i64;
let TotallyNotJson.994 : List U8 = Array [TotallyNotJson.995];
let TotallyNotJson.992 : List U8 = CallByName List.8 TotallyNotJson.993 TotallyNotJson.994;
ret TotallyNotJson.992;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.999 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.999;
case 92:
let TotallyNotJson.1000 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1000;
case 47:
let TotallyNotJson.1001 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1001;
case 8:
let TotallyNotJson.1003 : U8 = 98i64;
let TotallyNotJson.1002 : List U8 = Array [92i64, TotallyNotJson.1003];
ret TotallyNotJson.1002;
case 12:
let TotallyNotJson.1005 : U8 = 102i64;
let TotallyNotJson.1004 : List U8 = Array [92i64, TotallyNotJson.1005];
ret TotallyNotJson.1004;
case 10:
let TotallyNotJson.1007 : U8 = 110i64;
let TotallyNotJson.1006 : List U8 = Array [92i64, TotallyNotJson.1007];
ret TotallyNotJson.1006;
case 13:
let TotallyNotJson.1009 : U8 = 114i64;
let TotallyNotJson.1008 : List U8 = Array [92i64, TotallyNotJson.1009];
ret TotallyNotJson.1008;
case 9:
let TotallyNotJson.1011 : U8 = 114i64;
let TotallyNotJson.1010 : List U8 = Array [92i64, TotallyNotJson.1011];
ret TotallyNotJson.1010;
default:
let TotallyNotJson.1012 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1012;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.56 (Test.57, Test.260, Test.55):
let Test.267 : I64 = 115i64;
let Test.268 : U64 = CallByName Str.36 Test.55;
let Test.265 : List U8 = CallByName Test.3 Test.57 Test.267 Test.268;
let Test.266 : List U8 = CallByName Str.12 Test.55;
let Test.263 : List U8 = CallByName List.8 Test.265 Test.266;
let Test.264 : U8 = 32i64;
let Test.262 : List U8 = CallByName List.4 Test.263 Test.264;
ret Test.262;
procedure Test.0 ():
let Test.9 : Str = "abc";
let Test.10 : {} = CallByName TotallyNotJson.8;
let Test.8 : List U8 = CallByName Encode.26 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;
ret Test.2;
let Test.255 : Str = "abc";
let Test.256 : {} = CallByName Test.2;
let Test.254 : List U8 = CallByName Encode.26 Test.255 Test.256;
let Test.209 : [C {U64, U8}, C Str] = CallByName Str.9 Test.254;
let Test.251 : U8 = 1i64;
let Test.252 : U8 = GetTagId Test.209;
let Test.253 : Int1 = lowlevel Eq Test.251 Test.252;
if Test.253 then
let Test.210 : Str = UnionAtIndex (Id 1) (Index 0) Test.209;
ret Test.210;
else
dec Test.1;
let Test.4 : Str = "<bad>";
ret Test.4;
dec Test.209;
let Test.250 : Str = "<bad>";
ret Test.250;

View File

@ -8,9 +8,9 @@ procedure #Derived.3 (#Derived.4, #Derived.5, #Derived.1):
ret #Derived_gen.3;
in
let #Derived_gen.7 : Str = "A";
let #Derived_gen.9 : Str = CallByName TotallyNotJson.25 #Derived.1;
let #Derived_gen.9 : Str = CallByName Test.19 #Derived.1;
let #Derived_gen.8 : List Str = Array [#Derived_gen.9];
let #Derived_gen.6 : {Str, List Str} = CallByName TotallyNotJson.31 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.6 : {List Str, {}} = CallByName Test.23 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98):
@ -27,12 +27,12 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.231 Encode.99 Encode.101 Encode.107;
let Encode.113 : List U8 = CallByName Test.60 Encode.99 Encode.101 Encode.107;
ret Encode.113;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.116 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.116;
let Encode.117 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.117;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
@ -40,200 +40,82 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.657 : U64 = 0i64;
let List.658 : U64 = CallByName List.6 List.488;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.657 List.658;
ret List.656;
procedure List.18 (List.160, List.161, List.162):
let List.601 : U64 = 0i64;
let List.602 : U64 = CallByName List.6 List.160;
let List.600 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.601 List.602;
procedure List.13 (#Attr.2, #Attr.3):
let List.600 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.600;
procedure List.18 (List.160, List.161, List.162):
let List.613 : U64 = 0i64;
let List.614 : U64 = CallByName List.6 List.160;
let List.612 : List U8 = CallByName List.92 List.160 List.161 List.162 List.613 List.614;
ret List.612;
procedure List.26 (List.201, List.202, List.203):
let List.650 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.653 : U8 = 1i64;
let List.654 : U8 = GetTagId List.650;
let List.655 : Int1 = lowlevel Eq List.653 List.654;
if List.655 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.650;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.650;
ret List.205;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.4 (List.124, List.125):
let List.599 : U64 = 1i64;
let List.598 : List U8 = CallByName List.70 List.124 List.599;
let List.597 : List U8 = CallByName List.71 List.598 List.125;
ret List.597;
procedure List.49 (List.420, List.421):
let List.641 : U64 = StructAtIndex 1 List.421;
let List.642 : U64 = StructAtIndex 0 List.421;
let List.640 : List U8 = CallByName List.72 List.420 List.641 List.642;
ret List.640;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.648 List.438:
let List.646 : U64 = 0i64;
let List.645 : {U64, U64} = Struct {List.438, List.646};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.645;
let List.644 : U64 = CallByName Num.75 List.437 List.438;
let List.639 : {U64, U64} = Struct {List.644, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.639;
let List.638 : {List U8, List U8} = Struct {List.439, List.440};
ret List.638;
in
let List.649 : Int1 = CallByName Num.24 List.437 List.436;
if List.649 then
jump List.648 List.436;
else
jump List.648 List.437;
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.124 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.125;
ret List.594;
procedure List.6 (#Attr.2):
let List.624 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.624;
procedure List.6 (#Attr.2):
let List.626 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.626;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.66 (#Attr.2, #Attr.3):
let List.610 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.610;
procedure List.66 (#Attr.2, #Attr.3):
let List.622 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.622;
procedure List.68 (#Attr.2):
let List.637 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.637;
let List.584 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
let List.590 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.590;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.643 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.643;
let List.588 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.588;
procedure List.8 (#Attr.2, #Attr.3):
let List.635 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.635;
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.80 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.659 List.491 List.492 List.493 List.494 List.495:
let List.661 : Int1 = CallByName Num.22 List.494 List.495;
if List.661 then
let List.670 : U8 = CallByName List.66 List.491 List.494;
let List.662 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.670;
let List.667 : U8 = 1i64;
let List.668 : U8 = GetTagId List.662;
let List.669 : Int1 = lowlevel Eq List.667 List.668;
if List.669 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.662;
let List.665 : U64 = 1i64;
let List.664 : U64 = CallByName Num.51 List.494 List.665;
jump List.659 List.491 List.496 List.493 List.664 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.662;
let List.666 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.666;
else
dec List.491;
let List.660 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.660;
in
jump List.659 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure List.92 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.603 List.163 List.164 List.165 List.166 List.167:
let List.605 : Int1 = CallByName Num.22 List.166 List.167;
if List.605 then
let List.609 : Str = CallByName List.66 List.163 List.166;
inc List.609;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.233 List.164 List.609;
let List.608 : U64 = 1i64;
let List.607 : U64 = CallByName Num.51 List.166 List.608;
jump List.603 List.163 List.168 List.165 List.607 List.167;
procedure List.92 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : Str = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.63 List.164 List.583 List.165;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.603 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.92 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.615 List.163 List.164 List.165 List.166 List.167:
let List.617 : Int1 = CallByName Num.22 List.166 List.167;
if List.617 then
let List.621 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.621;
let List.620 : U64 = 1i64;
let List.619 : U64 = CallByName Num.51 List.166 List.620;
jump List.615 List.163 List.168 List.165 List.619 List.167;
else
dec List.163;
ret List.164;
in
jump List.615 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.577 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure Num.127 (#Attr.2):
let Num.286 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.286;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.291;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.290;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.287 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.287;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.292 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.292;
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.298 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.298;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.300;
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.282;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.295 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.295;
let Num.281 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.281;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.299 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.299;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
procedure Str.36 (#Attr.2):
let Str.242 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.242;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.239;
@ -248,253 +130,86 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.34 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.34;
let #Derived_gen.27 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.27;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1017, TotallyNotJson.149):
let TotallyNotJson.1020 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1019 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1020;
ret TotallyNotJson.1019;
procedure Test.19 (Test.55):
let Test.296 : Str = CallByName Encode.23 Test.55;
ret Test.296;
procedure TotallyNotJson.157 (TotallyNotJson.1068, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1068;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1068;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1071 : Int1 = false;
let TotallyNotJson.1070 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1071};
let TotallyNotJson.1069 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1070;
ret TotallyNotJson.1069;
case 92:
let TotallyNotJson.1074 : Int1 = false;
let TotallyNotJson.1073 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1074};
let TotallyNotJson.1072 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1073;
ret TotallyNotJson.1072;
case 47:
let TotallyNotJson.1077 : Int1 = false;
let TotallyNotJson.1076 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1077};
let TotallyNotJson.1075 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1076;
ret TotallyNotJson.1075;
case 8:
let TotallyNotJson.1080 : Int1 = false;
let TotallyNotJson.1079 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1080};
let TotallyNotJson.1078 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1079;
ret TotallyNotJson.1078;
case 12:
let TotallyNotJson.1083 : Int1 = false;
let TotallyNotJson.1082 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1083};
let TotallyNotJson.1081 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1082;
ret TotallyNotJson.1081;
case 10:
let TotallyNotJson.1086 : Int1 = false;
let TotallyNotJson.1085 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1086};
let TotallyNotJson.1084 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1085;
ret TotallyNotJson.1084;
case 13:
let TotallyNotJson.1089 : Int1 = false;
let TotallyNotJson.1088 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1089};
let TotallyNotJson.1087 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1088;
ret TotallyNotJson.1087;
case 9:
let TotallyNotJson.1092 : Int1 = false;
let TotallyNotJson.1091 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1092};
let TotallyNotJson.1090 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1091;
ret TotallyNotJson.1090;
default:
let TotallyNotJson.1096 : U64 = 1i64;
let TotallyNotJson.1095 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1096;
let TotallyNotJson.1094 : {U64, Int1} = Struct {TotallyNotJson.1095, TotallyNotJson.159};
let TotallyNotJson.1093 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1094;
ret TotallyNotJson.1093;
procedure Test.2 ():
let Test.258 : {} = Struct {};
ret Test.258;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1039 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1038 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1039;
ret TotallyNotJson.1038;
procedure Test.20 (Test.58, Test.59):
let Test.265 : {List Str, {}} = Struct {Test.58, Test.59};
let Test.264 : {List Str, {}} = CallByName Encode.23 Test.265;
ret Test.264;
procedure TotallyNotJson.231 (TotallyNotJson.232, TotallyNotJson.976, #Attr.12):
let TotallyNotJson.230 : List Str = StructAtIndex 1 #Attr.12;
let TotallyNotJson.229 : Str = StructAtIndex 0 #Attr.12;
let TotallyNotJson.1014 : I64 = 123i64;
let TotallyNotJson.1013 : U8 = CallByName Num.127 TotallyNotJson.1014;
let TotallyNotJson.1010 : List U8 = CallByName List.4 TotallyNotJson.232 TotallyNotJson.1013;
let TotallyNotJson.1012 : I64 = 34i64;
let TotallyNotJson.1011 : U8 = CallByName Num.127 TotallyNotJson.1012;
let TotallyNotJson.1008 : List U8 = CallByName List.4 TotallyNotJson.1010 TotallyNotJson.1011;
let TotallyNotJson.1009 : List U8 = CallByName Str.12 TotallyNotJson.229;
let TotallyNotJson.1005 : List U8 = CallByName List.8 TotallyNotJson.1008 TotallyNotJson.1009;
let TotallyNotJson.1007 : I64 = 34i64;
let TotallyNotJson.1006 : U8 = CallByName Num.127 TotallyNotJson.1007;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.1005 TotallyNotJson.1006;
let TotallyNotJson.1004 : I64 = 58i64;
let TotallyNotJson.1003 : U8 = CallByName Num.127 TotallyNotJson.1004;
let TotallyNotJson.999 : List U8 = CallByName List.4 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 91i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.234 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : U64 = CallByName List.6 TotallyNotJson.230;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.234, TotallyNotJson.998};
let TotallyNotJson.987 : {} = Struct {};
let TotallyNotJson.985 : {List U8, U64} = CallByName List.18 TotallyNotJson.230 TotallyNotJson.986 TotallyNotJson.987;
let TotallyNotJson.236 : List U8 = StructAtIndex 0 TotallyNotJson.985;
let TotallyNotJson.984 : I64 = 93i64;
let TotallyNotJson.983 : U8 = CallByName Num.127 TotallyNotJson.984;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.236 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.979 : List U8 = CallByName List.4 TotallyNotJson.980 TotallyNotJson.981;
ret TotallyNotJson.979;
procedure Test.22 (Test.74):
let Test.263 : {} = Struct {};
let Test.262 : {List Str, {}} = CallByName Test.20 Test.74 Test.263;
ret Test.262;
procedure TotallyNotJson.233 (TotallyNotJson.978, TotallyNotJson.239):
let TotallyNotJson.237 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.238 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.997 : {} = Struct {};
let TotallyNotJson.240 : List U8 = CallByName Encode.24 TotallyNotJson.237 TotallyNotJson.239 TotallyNotJson.997;
joinpoint TotallyNotJson.992 TotallyNotJson.241:
let TotallyNotJson.990 : U64 = 1i64;
let TotallyNotJson.989 : U64 = CallByName Num.20 TotallyNotJson.238 TotallyNotJson.990;
let TotallyNotJson.988 : {List U8, U64} = Struct {TotallyNotJson.241, TotallyNotJson.989};
ret TotallyNotJson.988;
in
let TotallyNotJson.996 : U64 = 1i64;
let TotallyNotJson.993 : Int1 = CallByName Num.24 TotallyNotJson.238 TotallyNotJson.996;
if TotallyNotJson.993 then
let TotallyNotJson.995 : I64 = 44i64;
let TotallyNotJson.994 : U8 = CallByName Num.127 TotallyNotJson.995;
let TotallyNotJson.991 : List U8 = CallByName List.4 TotallyNotJson.240 TotallyNotJson.994;
jump TotallyNotJson.992 TotallyNotJson.991;
else
jump TotallyNotJson.992 TotallyNotJson.240;
procedure Test.23 (Test.77, Test.78):
let Test.284 : Str = CallByName Test.19 Test.77;
let Test.261 : List Str = CallByName List.13 Test.78 Test.284;
let Test.260 : {List Str, {}} = CallByName Test.22 Test.261;
ret Test.260;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1015 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1015;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.282 : U8 = CallByName Num.127 Test.49;
let Test.279 : List U8 = CallByName List.4 Test.48 Test.282;
let Test.281 : Str = CallByName Num.96 Test.50;
let Test.280 : List U8 = CallByName Str.12 Test.281;
let Test.277 : List U8 = CallByName List.8 Test.279 Test.280;
let Test.278 : U8 = 32i64;
let Test.276 : List U8 = CallByName List.4 Test.277 Test.278;
ret Test.276;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1097 : U64 = 0i64;
let TotallyNotJson.1098 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1097, TotallyNotJson.1098};
let TotallyNotJson.1067 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1067;
let TotallyNotJson.1021 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1065 : Int1 = true;
let TotallyNotJson.1066 : Int1 = lowlevel Eq TotallyNotJson.1065 TotallyNotJson.1021;
if TotallyNotJson.1066 then
let TotallyNotJson.1031 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1032 : U64 = 2i64;
let TotallyNotJson.1030 : U64 = CallByName Num.19 TotallyNotJson.1031 TotallyNotJson.1032;
let TotallyNotJson.1027 : List U8 = CallByName List.68 TotallyNotJson.1030;
let TotallyNotJson.1029 : U8 = 34i64;
let TotallyNotJson.1028 : List U8 = Array [TotallyNotJson.1029];
let TotallyNotJson.1026 : List U8 = CallByName List.8 TotallyNotJson.1027 TotallyNotJson.1028;
let TotallyNotJson.1023 : List U8 = CallByName List.8 TotallyNotJson.1026 TotallyNotJson.153;
let TotallyNotJson.1025 : U8 = 34i64;
let TotallyNotJson.1024 : List U8 = Array [TotallyNotJson.1025];
let TotallyNotJson.1022 : List U8 = CallByName List.8 TotallyNotJson.1023 TotallyNotJson.1024;
ret TotallyNotJson.1022;
else
inc TotallyNotJson.153;
let TotallyNotJson.1064 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1063 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1064;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1063;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1063;
let TotallyNotJson.1061 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1062 : U64 = 120i64;
let TotallyNotJson.1059 : U64 = CallByName Num.21 TotallyNotJson.1061 TotallyNotJson.1062;
let TotallyNotJson.1060 : U64 = 100i64;
let TotallyNotJson.1058 : U64 = CallByName Num.137 TotallyNotJson.1059 TotallyNotJson.1060;
let TotallyNotJson.1055 : List U8 = CallByName List.68 TotallyNotJson.1058;
let TotallyNotJson.1057 : U8 = 34i64;
let TotallyNotJson.1056 : List U8 = Array [TotallyNotJson.1057];
let TotallyNotJson.1054 : List U8 = CallByName List.8 TotallyNotJson.1055 TotallyNotJson.1056;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1054 TotallyNotJson.179;
let TotallyNotJson.1037 : {} = Struct {};
let TotallyNotJson.1034 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1037;
let TotallyNotJson.1036 : U8 = 34i64;
let TotallyNotJson.1035 : List U8 = Array [TotallyNotJson.1036];
let TotallyNotJson.1033 : List U8 = CallByName List.8 TotallyNotJson.1034 TotallyNotJson.1035;
ret TotallyNotJson.1033;
procedure Test.56 (Test.57, Test.287, Test.55):
let Test.294 : I64 = 115i64;
let Test.295 : U64 = CallByName Str.36 Test.55;
let Test.292 : List U8 = CallByName Test.3 Test.57 Test.294 Test.295;
let Test.293 : List U8 = CallByName Str.12 Test.55;
let Test.290 : List U8 = CallByName List.8 Test.292 Test.293;
let Test.291 : U8 = 32i64;
let Test.289 : List U8 = CallByName List.4 Test.290 Test.291;
ret Test.289;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1040 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1040;
case 92:
let TotallyNotJson.1041 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1041;
case 47:
let TotallyNotJson.1042 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1042;
case 8:
let TotallyNotJson.1044 : U8 = 98i64;
let TotallyNotJson.1043 : List U8 = Array [92i64, TotallyNotJson.1044];
ret TotallyNotJson.1043;
case 12:
let TotallyNotJson.1046 : U8 = 102i64;
let TotallyNotJson.1045 : List U8 = Array [92i64, TotallyNotJson.1046];
ret TotallyNotJson.1045;
case 10:
let TotallyNotJson.1048 : U8 = 110i64;
let TotallyNotJson.1047 : List U8 = Array [92i64, TotallyNotJson.1048];
ret TotallyNotJson.1047;
case 13:
let TotallyNotJson.1050 : U8 = 114i64;
let TotallyNotJson.1049 : List U8 = Array [92i64, TotallyNotJson.1050];
ret TotallyNotJson.1049;
case 9:
let TotallyNotJson.1052 : U8 = 114i64;
let TotallyNotJson.1051 : List U8 = Array [92i64, TotallyNotJson.1052];
ret TotallyNotJson.1051;
default:
let TotallyNotJson.1053 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1053;
procedure Test.60 (Test.61, Test.266, #Attr.12):
let Test.59 : {} = StructAtIndex 1 #Attr.12;
let Test.58 : List Str = StructAtIndex 0 #Attr.12;
let Test.274 : I64 = 108i64;
let Test.275 : U64 = CallByName List.6 Test.58;
let Test.62 : List U8 = CallByName Test.3 Test.61 Test.274 Test.275;
let Test.268 : List U8 = CallByName List.18 Test.58 Test.62 Test.59;
ret Test.268;
procedure TotallyNotJson.31 (TotallyNotJson.229, TotallyNotJson.230):
let TotallyNotJson.975 : {Str, List Str} = Struct {TotallyNotJson.229, TotallyNotJson.230};
let TotallyNotJson.974 : {Str, List Str} = CallByName Encode.23 TotallyNotJson.975;
ret TotallyNotJson.974;
procedure Test.63 (Test.64, Test.65, Test.59):
let Test.272 : Str = CallByName Test.75 Test.65;
let Test.273 : {} = Struct {};
let Test.271 : List U8 = CallByName Encode.24 Test.64 Test.272 Test.273;
ret Test.271;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.75 (Test.76):
ret Test.76;
procedure Test.0 ():
let Test.12 : Str = "foo";
let Test.11 : {} = CallByName TotallyNotJson.8;
let Test.10 : List U8 = CallByName Encode.26 Test.12 Test.11;
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
let Test.7 : U8 = 1i64;
let Test.8 : U8 = GetTagId Test.2;
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
if Test.9 then
let Test.4 : Str = UnionAtIndex (Id 1) (Index 0) Test.2;
ret Test.4;
let Test.259 : Str = "foo";
let Test.257 : {} = CallByName Test.2;
let Test.256 : List U8 = CallByName Encode.26 Test.259 Test.257;
let Test.210 : [C {U64, U8}, C Str] = CallByName Str.9 Test.256;
let Test.253 : U8 = 1i64;
let Test.254 : U8 = GetTagId Test.210;
let Test.255 : Int1 = lowlevel Eq Test.253 Test.254;
if Test.255 then
let Test.212 : Str = UnionAtIndex (Id 1) (Index 0) Test.210;
ret Test.212;
else
dec Test.2;
let Test.6 : Str = "<bad>";
ret Test.6;
dec Test.210;
let Test.252 : Str = "<bad>";
ret Test.252;

View File

@ -10,10 +10,10 @@ procedure #Derived.4 (#Derived.5, #Derived.6, #Derived.1):
let #Derived.2 : Str = StructAtIndex 0 #Derived.1;
let #Derived.3 : Str = StructAtIndex 1 #Derived.1;
let #Derived_gen.7 : Str = "A";
let #Derived_gen.9 : Str = CallByName TotallyNotJson.25 #Derived.2;
let #Derived_gen.10 : Str = CallByName TotallyNotJson.25 #Derived.3;
let #Derived_gen.9 : Str = CallByName Test.19 #Derived.2;
let #Derived_gen.10 : Str = CallByName Test.19 #Derived.3;
let #Derived_gen.8 : List Str = Array [#Derived_gen.9, #Derived_gen.10];
let #Derived_gen.6 : {Str, List Str} = CallByName TotallyNotJson.31 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.6 : {List Str, {}} = CallByName Test.23 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98):
@ -30,12 +30,12 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.231 Encode.99 Encode.101 Encode.107;
let Encode.113 : List U8 = CallByName Test.60 Encode.99 Encode.101 Encode.107;
ret Encode.113;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.117 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.117;
let Encode.118 : List U8 = CallByName Test.56 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
@ -43,200 +43,82 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.657 : U64 = 0i64;
let List.658 : U64 = CallByName List.6 List.488;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.657 List.658;
ret List.656;
procedure List.18 (List.160, List.161, List.162):
let List.601 : U64 = 0i64;
let List.602 : U64 = CallByName List.6 List.160;
let List.600 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.601 List.602;
procedure List.13 (#Attr.2, #Attr.3):
let List.600 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.600;
procedure List.18 (List.160, List.161, List.162):
let List.613 : U64 = 0i64;
let List.614 : U64 = CallByName List.6 List.160;
let List.612 : List U8 = CallByName List.92 List.160 List.161 List.162 List.613 List.614;
ret List.612;
procedure List.26 (List.201, List.202, List.203):
let List.650 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.653 : U8 = 1i64;
let List.654 : U8 = GetTagId List.650;
let List.655 : Int1 = lowlevel Eq List.653 List.654;
if List.655 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.650;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.650;
ret List.205;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.4 (List.124, List.125):
let List.599 : U64 = 1i64;
let List.598 : List U8 = CallByName List.70 List.124 List.599;
let List.597 : List U8 = CallByName List.71 List.598 List.125;
ret List.597;
procedure List.49 (List.420, List.421):
let List.641 : U64 = StructAtIndex 1 List.421;
let List.642 : U64 = StructAtIndex 0 List.421;
let List.640 : List U8 = CallByName List.72 List.420 List.641 List.642;
ret List.640;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.648 List.438:
let List.646 : U64 = 0i64;
let List.645 : {U64, U64} = Struct {List.438, List.646};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.645;
let List.644 : U64 = CallByName Num.75 List.437 List.438;
let List.639 : {U64, U64} = Struct {List.644, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.639;
let List.638 : {List U8, List U8} = Struct {List.439, List.440};
ret List.638;
in
let List.649 : Int1 = CallByName Num.24 List.437 List.436;
if List.649 then
jump List.648 List.436;
else
jump List.648 List.437;
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.124 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.125;
ret List.594;
procedure List.6 (#Attr.2):
let List.624 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.624;
procedure List.6 (#Attr.2):
let List.626 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.626;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.66 (#Attr.2, #Attr.3):
let List.610 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.610;
procedure List.66 (#Attr.2, #Attr.3):
let List.622 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.622;
procedure List.68 (#Attr.2):
let List.637 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.637;
let List.584 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
let List.590 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.590;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.643 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.643;
let List.588 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.588;
procedure List.8 (#Attr.2, #Attr.3):
let List.635 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.635;
procedure List.80 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.659 List.491 List.492 List.493 List.494 List.495:
let List.661 : Int1 = CallByName Num.22 List.494 List.495;
if List.661 then
let List.670 : U8 = CallByName List.66 List.491 List.494;
let List.662 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.670;
let List.667 : U8 = 1i64;
let List.668 : U8 = GetTagId List.662;
let List.669 : Int1 = lowlevel Eq List.667 List.668;
if List.669 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.662;
let List.665 : U64 = 1i64;
let List.664 : U64 = CallByName Num.51 List.494 List.665;
jump List.659 List.491 List.496 List.493 List.664 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.662;
let List.666 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.666;
else
dec List.491;
let List.660 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.660;
in
jump List.659 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.92 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.615 List.163 List.164 List.165 List.166 List.167:
let List.617 : Int1 = CallByName Num.22 List.166 List.167;
if List.617 then
let List.621 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.621;
let List.620 : U64 = 1i64;
let List.619 : U64 = CallByName Num.51 List.166 List.620;
jump List.615 List.163 List.168 List.165 List.619 List.167;
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : Str = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.63 List.164 List.583 List.165;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.615 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure List.92 (#Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34):
joinpoint List.603 List.163 List.164 List.165 List.166 List.167:
let List.605 : Int1 = CallByName Num.22 List.166 List.167;
if List.605 then
let List.609 : Str = CallByName List.66 List.163 List.166;
inc List.609;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.233 List.164 List.609;
let List.608 : U64 = 1i64;
let List.607 : U64 = CallByName Num.51 List.166 List.608;
jump List.603 List.163 List.168 List.165 List.607 List.167;
else
dec List.163;
ret List.164;
in
jump List.603 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34;
jump List.577 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure Num.127 (#Attr.2):
let Num.286 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.286;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.291;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.290;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.287 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.287;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.292 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.292;
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.298 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.298;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.300;
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.282;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.295 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.295;
let Num.281 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.281;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.299 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.299;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
procedure Str.36 (#Attr.2):
let Str.242 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.242;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.239;
@ -251,255 +133,88 @@ procedure Str.9 (Str.67):
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.35 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.35;
let #Derived_gen.28 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.28;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1017, TotallyNotJson.149):
let TotallyNotJson.1020 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1019 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1020;
ret TotallyNotJson.1019;
procedure Test.19 (Test.55):
let Test.300 : Str = CallByName Encode.23 Test.55;
ret Test.300;
procedure TotallyNotJson.157 (TotallyNotJson.1068, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1068;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1068;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1071 : Int1 = false;
let TotallyNotJson.1070 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1071};
let TotallyNotJson.1069 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1070;
ret TotallyNotJson.1069;
case 92:
let TotallyNotJson.1074 : Int1 = false;
let TotallyNotJson.1073 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1074};
let TotallyNotJson.1072 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1073;
ret TotallyNotJson.1072;
case 47:
let TotallyNotJson.1077 : Int1 = false;
let TotallyNotJson.1076 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1077};
let TotallyNotJson.1075 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1076;
ret TotallyNotJson.1075;
case 8:
let TotallyNotJson.1080 : Int1 = false;
let TotallyNotJson.1079 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1080};
let TotallyNotJson.1078 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1079;
ret TotallyNotJson.1078;
case 12:
let TotallyNotJson.1083 : Int1 = false;
let TotallyNotJson.1082 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1083};
let TotallyNotJson.1081 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1082;
ret TotallyNotJson.1081;
case 10:
let TotallyNotJson.1086 : Int1 = false;
let TotallyNotJson.1085 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1086};
let TotallyNotJson.1084 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1085;
ret TotallyNotJson.1084;
case 13:
let TotallyNotJson.1089 : Int1 = false;
let TotallyNotJson.1088 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1089};
let TotallyNotJson.1087 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1088;
ret TotallyNotJson.1087;
case 9:
let TotallyNotJson.1092 : Int1 = false;
let TotallyNotJson.1091 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1092};
let TotallyNotJson.1090 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1091;
ret TotallyNotJson.1090;
default:
let TotallyNotJson.1096 : U64 = 1i64;
let TotallyNotJson.1095 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1096;
let TotallyNotJson.1094 : {U64, Int1} = Struct {TotallyNotJson.1095, TotallyNotJson.159};
let TotallyNotJson.1093 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1094;
ret TotallyNotJson.1093;
procedure Test.2 ():
let Test.258 : {} = Struct {};
ret Test.258;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1039 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1038 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1039;
ret TotallyNotJson.1038;
procedure Test.20 (Test.58, Test.59):
let Test.266 : {List Str, {}} = Struct {Test.58, Test.59};
let Test.265 : {List Str, {}} = CallByName Encode.23 Test.266;
ret Test.265;
procedure TotallyNotJson.231 (TotallyNotJson.232, TotallyNotJson.976, #Attr.12):
let TotallyNotJson.230 : List Str = StructAtIndex 1 #Attr.12;
let TotallyNotJson.229 : Str = StructAtIndex 0 #Attr.12;
let TotallyNotJson.1014 : I64 = 123i64;
let TotallyNotJson.1013 : U8 = CallByName Num.127 TotallyNotJson.1014;
let TotallyNotJson.1010 : List U8 = CallByName List.4 TotallyNotJson.232 TotallyNotJson.1013;
let TotallyNotJson.1012 : I64 = 34i64;
let TotallyNotJson.1011 : U8 = CallByName Num.127 TotallyNotJson.1012;
let TotallyNotJson.1008 : List U8 = CallByName List.4 TotallyNotJson.1010 TotallyNotJson.1011;
let TotallyNotJson.1009 : List U8 = CallByName Str.12 TotallyNotJson.229;
let TotallyNotJson.1005 : List U8 = CallByName List.8 TotallyNotJson.1008 TotallyNotJson.1009;
let TotallyNotJson.1007 : I64 = 34i64;
let TotallyNotJson.1006 : U8 = CallByName Num.127 TotallyNotJson.1007;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.1005 TotallyNotJson.1006;
let TotallyNotJson.1004 : I64 = 58i64;
let TotallyNotJson.1003 : U8 = CallByName Num.127 TotallyNotJson.1004;
let TotallyNotJson.999 : List U8 = CallByName List.4 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 91i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.234 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : U64 = CallByName List.6 TotallyNotJson.230;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.234, TotallyNotJson.998};
let TotallyNotJson.987 : {} = Struct {};
let TotallyNotJson.985 : {List U8, U64} = CallByName List.18 TotallyNotJson.230 TotallyNotJson.986 TotallyNotJson.987;
let TotallyNotJson.236 : List U8 = StructAtIndex 0 TotallyNotJson.985;
let TotallyNotJson.984 : I64 = 93i64;
let TotallyNotJson.983 : U8 = CallByName Num.127 TotallyNotJson.984;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.236 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.979 : List U8 = CallByName List.4 TotallyNotJson.980 TotallyNotJson.981;
ret TotallyNotJson.979;
procedure Test.22 (Test.74):
let Test.264 : {} = Struct {};
let Test.263 : {List Str, {}} = CallByName Test.20 Test.74 Test.264;
ret Test.263;
procedure TotallyNotJson.233 (TotallyNotJson.978, TotallyNotJson.239):
let TotallyNotJson.237 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.238 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.997 : {} = Struct {};
let TotallyNotJson.240 : List U8 = CallByName Encode.24 TotallyNotJson.237 TotallyNotJson.239 TotallyNotJson.997;
joinpoint TotallyNotJson.992 TotallyNotJson.241:
let TotallyNotJson.990 : U64 = 1i64;
let TotallyNotJson.989 : U64 = CallByName Num.20 TotallyNotJson.238 TotallyNotJson.990;
let TotallyNotJson.988 : {List U8, U64} = Struct {TotallyNotJson.241, TotallyNotJson.989};
ret TotallyNotJson.988;
in
let TotallyNotJson.996 : U64 = 1i64;
let TotallyNotJson.993 : Int1 = CallByName Num.24 TotallyNotJson.238 TotallyNotJson.996;
if TotallyNotJson.993 then
let TotallyNotJson.995 : I64 = 44i64;
let TotallyNotJson.994 : U8 = CallByName Num.127 TotallyNotJson.995;
let TotallyNotJson.991 : List U8 = CallByName List.4 TotallyNotJson.240 TotallyNotJson.994;
jump TotallyNotJson.992 TotallyNotJson.991;
else
jump TotallyNotJson.992 TotallyNotJson.240;
procedure Test.23 (Test.77, Test.78):
let Test.285 : Str = CallByName Test.19 Test.77;
let Test.262 : List Str = CallByName List.13 Test.78 Test.285;
let Test.261 : {List Str, {}} = CallByName Test.22 Test.262;
ret Test.261;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1099 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1099;
procedure Test.3 (Test.48, Test.49, Test.50):
let Test.283 : U8 = CallByName Num.127 Test.49;
let Test.280 : List U8 = CallByName List.4 Test.48 Test.283;
let Test.282 : Str = CallByName Num.96 Test.50;
let Test.281 : List U8 = CallByName Str.12 Test.282;
let Test.278 : List U8 = CallByName List.8 Test.280 Test.281;
let Test.279 : U8 = 32i64;
let Test.277 : List U8 = CallByName List.4 Test.278 Test.279;
ret Test.277;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1097 : U64 = 0i64;
let TotallyNotJson.1098 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1097, TotallyNotJson.1098};
let TotallyNotJson.1067 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1067;
let TotallyNotJson.1021 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1065 : Int1 = true;
let TotallyNotJson.1066 : Int1 = lowlevel Eq TotallyNotJson.1065 TotallyNotJson.1021;
if TotallyNotJson.1066 then
let TotallyNotJson.1031 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1032 : U64 = 2i64;
let TotallyNotJson.1030 : U64 = CallByName Num.19 TotallyNotJson.1031 TotallyNotJson.1032;
let TotallyNotJson.1027 : List U8 = CallByName List.68 TotallyNotJson.1030;
let TotallyNotJson.1029 : U8 = 34i64;
let TotallyNotJson.1028 : List U8 = Array [TotallyNotJson.1029];
let TotallyNotJson.1026 : List U8 = CallByName List.8 TotallyNotJson.1027 TotallyNotJson.1028;
let TotallyNotJson.1023 : List U8 = CallByName List.8 TotallyNotJson.1026 TotallyNotJson.153;
let TotallyNotJson.1025 : U8 = 34i64;
let TotallyNotJson.1024 : List U8 = Array [TotallyNotJson.1025];
let TotallyNotJson.1022 : List U8 = CallByName List.8 TotallyNotJson.1023 TotallyNotJson.1024;
ret TotallyNotJson.1022;
else
inc TotallyNotJson.153;
let TotallyNotJson.1064 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1063 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1064;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1063;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1063;
let TotallyNotJson.1061 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1062 : U64 = 120i64;
let TotallyNotJson.1059 : U64 = CallByName Num.21 TotallyNotJson.1061 TotallyNotJson.1062;
let TotallyNotJson.1060 : U64 = 100i64;
let TotallyNotJson.1058 : U64 = CallByName Num.137 TotallyNotJson.1059 TotallyNotJson.1060;
let TotallyNotJson.1055 : List U8 = CallByName List.68 TotallyNotJson.1058;
let TotallyNotJson.1057 : U8 = 34i64;
let TotallyNotJson.1056 : List U8 = Array [TotallyNotJson.1057];
let TotallyNotJson.1054 : List U8 = CallByName List.8 TotallyNotJson.1055 TotallyNotJson.1056;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1054 TotallyNotJson.179;
let TotallyNotJson.1037 : {} = Struct {};
let TotallyNotJson.1034 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1037;
let TotallyNotJson.1036 : U8 = 34i64;
let TotallyNotJson.1035 : List U8 = Array [TotallyNotJson.1036];
let TotallyNotJson.1033 : List U8 = CallByName List.8 TotallyNotJson.1034 TotallyNotJson.1035;
ret TotallyNotJson.1033;
procedure Test.56 (Test.57, Test.288, Test.55):
let Test.295 : I64 = 115i64;
let Test.296 : U64 = CallByName Str.36 Test.55;
let Test.293 : List U8 = CallByName Test.3 Test.57 Test.295 Test.296;
let Test.294 : List U8 = CallByName Str.12 Test.55;
let Test.291 : List U8 = CallByName List.8 Test.293 Test.294;
let Test.292 : U8 = 32i64;
let Test.290 : List U8 = CallByName List.4 Test.291 Test.292;
ret Test.290;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1040 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1040;
case 92:
let TotallyNotJson.1041 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1041;
case 47:
let TotallyNotJson.1042 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1042;
case 8:
let TotallyNotJson.1044 : U8 = 98i64;
let TotallyNotJson.1043 : List U8 = Array [92i64, TotallyNotJson.1044];
ret TotallyNotJson.1043;
case 12:
let TotallyNotJson.1046 : U8 = 102i64;
let TotallyNotJson.1045 : List U8 = Array [92i64, TotallyNotJson.1046];
ret TotallyNotJson.1045;
case 10:
let TotallyNotJson.1048 : U8 = 110i64;
let TotallyNotJson.1047 : List U8 = Array [92i64, TotallyNotJson.1048];
ret TotallyNotJson.1047;
case 13:
let TotallyNotJson.1050 : U8 = 114i64;
let TotallyNotJson.1049 : List U8 = Array [92i64, TotallyNotJson.1050];
ret TotallyNotJson.1049;
case 9:
let TotallyNotJson.1052 : U8 = 114i64;
let TotallyNotJson.1051 : List U8 = Array [92i64, TotallyNotJson.1052];
ret TotallyNotJson.1051;
default:
let TotallyNotJson.1053 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1053;
procedure Test.60 (Test.61, Test.267, #Attr.12):
let Test.59 : {} = StructAtIndex 1 #Attr.12;
let Test.58 : List Str = StructAtIndex 0 #Attr.12;
let Test.275 : I64 = 108i64;
let Test.276 : U64 = CallByName List.6 Test.58;
let Test.62 : List U8 = CallByName Test.3 Test.61 Test.275 Test.276;
let Test.269 : List U8 = CallByName List.18 Test.58 Test.62 Test.59;
ret Test.269;
procedure TotallyNotJson.31 (TotallyNotJson.229, TotallyNotJson.230):
let TotallyNotJson.975 : {Str, List Str} = Struct {TotallyNotJson.229, TotallyNotJson.230};
let TotallyNotJson.974 : {Str, List Str} = CallByName Encode.23 TotallyNotJson.975;
ret TotallyNotJson.974;
procedure Test.63 (Test.64, Test.65, Test.59):
let Test.273 : Str = CallByName Test.75 Test.65;
let Test.274 : {} = Struct {};
let Test.272 : List U8 = CallByName Encode.24 Test.64 Test.273 Test.274;
ret Test.272;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.75 (Test.76):
ret Test.76;
procedure Test.0 ():
let Test.13 : Str = "foo";
let Test.12 : Str = "foo";
let Test.1 : {Str, Str} = Struct {Test.12, Test.13};
let Test.11 : {} = CallByName TotallyNotJson.8;
let Test.10 : List U8 = CallByName Encode.26 Test.1 Test.11;
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
let Test.7 : U8 = 1i64;
let Test.8 : U8 = GetTagId Test.2;
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
if Test.9 then
let Test.4 : Str = UnionAtIndex (Id 1) (Index 0) Test.2;
ret Test.4;
let Test.260 : Str = "foo";
let Test.259 : Str = "foo";
let Test.209 : {Str, Str} = Struct {Test.259, Test.260};
let Test.257 : {} = CallByName Test.2;
let Test.256 : List U8 = CallByName Encode.26 Test.209 Test.257;
let Test.210 : [C {U64, U8}, C Str] = CallByName Str.9 Test.256;
let Test.253 : U8 = 1i64;
let Test.254 : U8 = GetTagId Test.210;
let Test.255 : Int1 = lowlevel Eq Test.253 Test.254;
if Test.255 then
let Test.212 : Str = UnionAtIndex (Id 1) (Index 0) Test.210;
ret Test.212;
else
dec Test.2;
let Test.6 : Str = "<bad>";
ret Test.6;
dec Test.210;
let Test.252 : Str = "<bad>";
ret Test.252;

View File

@ -1,823 +1,17 @@
procedure Bool.1 ():
let Bool.51 : Int1 = false;
ret Bool.51;
procedure Bool.12 (#Attr.2, #Attr.3):
let Bool.24 : Int1 = lowlevel NotEq #Attr.2 #Attr.3;
ret Bool.24;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
procedure Bool.7 (Bool.19, Bool.20):
let Bool.23 : Int1 = CallByName Bool.12 Bool.19 Bool.20;
ret Bool.23;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.42 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.42;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.54 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.54;
procedure Bool.2 ():
let Bool.50 : Int1 = true;
ret Bool.50;
procedure Bool.3 (#Attr.2, #Attr.3):
let Bool.33 : Int1 = lowlevel And #Attr.2 #Attr.3;
ret Bool.33;
procedure Bool.4 (#Attr.2, #Attr.3):
let Bool.53 : Int1 = lowlevel Or #Attr.2 #Attr.3;
ret Bool.53;
procedure Decode.24 (Decode.101):
ret Decode.101;
procedure Decode.25 (Decode.102, Decode.121, Decode.104):
let Decode.134 : {List U8, [C {}, C Str]} = CallByName TotallyNotJson.491 Decode.102 Decode.104;
ret Decode.134;
procedure Decode.26 (Decode.105, Decode.106):
let Decode.133 : {} = CallByName TotallyNotJson.59;
let Decode.132 : {List U8, [C {}, C Str]} = CallByName Decode.25 Decode.105 Decode.133 Decode.106;
ret Decode.132;
procedure Decode.27 (Decode.107, Decode.108):
let Decode.122 : {List U8, [C {}, C Str]} = CallByName Decode.26 Decode.107 Decode.108;
let Decode.110 : List U8 = StructAtIndex 0 Decode.122;
inc Decode.110;
let Decode.109 : [C {}, C Str] = StructAtIndex 1 Decode.122;
let Decode.125 : Int1 = CallByName List.1 Decode.110;
if Decode.125 then
dec Decode.110;
let Decode.129 : U8 = 1i64;
let Decode.130 : U8 = GetTagId Decode.109;
let Decode.131 : Int1 = lowlevel Eq Decode.129 Decode.130;
if Decode.131 then
let Decode.111 : Str = UnionAtIndex (Id 1) (Index 0) Decode.109;
let Decode.126 : [C [C List U8, C ], C Str] = TagId(1) Decode.111;
ret Decode.126;
else
dec Decode.109;
let Decode.128 : [C List U8, C ] = TagId(1) ;
let Decode.127 : [C [C List U8, C ], C Str] = TagId(0) Decode.128;
ret Decode.127;
else
dec Decode.109;
let Decode.124 : [C List U8, C ] = TagId(0) Decode.110;
let Decode.123 : [C [C List U8, C ], C Str] = TagId(0) Decode.124;
ret Decode.123;
procedure List.1 (List.107):
let List.628 : U64 = CallByName List.6 List.107;
dec List.107;
let List.629 : U64 = 0i64;
let List.627 : Int1 = CallByName Bool.11 List.628 List.629;
ret List.627;
procedure List.104 (List.488, List.489, List.490):
let List.637 : U64 = 0i64;
let List.638 : U64 = CallByName List.6 List.488;
let List.636 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.488 List.489 List.490 List.637 List.638;
ret List.636;
procedure List.2 (List.108, List.109):
let List.619 : U64 = CallByName List.6 List.108;
let List.616 : Int1 = CallByName Num.22 List.109 List.619;
if List.616 then
let List.618 : U8 = CallByName List.66 List.108 List.109;
dec List.108;
let List.617 : [C {}, C U8] = TagId(1) List.618;
ret List.617;
else
dec List.108;
let List.615 : {} = Struct {};
let List.614 : [C {}, C U8] = TagId(0) List.615;
ret List.614;
procedure List.26 (List.201, List.202, List.203):
let List.630 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.104 List.201 List.202 List.203;
let List.633 : U8 = 1i64;
let List.634 : U8 = GetTagId List.630;
let List.635 : Int1 = lowlevel Eq List.633 List.634;
if List.635 then
let List.204 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.630;
ret List.204;
else
let List.205 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.630;
ret List.205;
procedure List.38 (List.344, List.345):
let List.596 : U64 = CallByName List.6 List.344;
let List.346 : U64 = CallByName Num.77 List.596 List.345;
let List.595 : List U8 = CallByName List.43 List.344 List.346;
ret List.595;
procedure List.4 (List.124, List.125):
let List.606 : U64 = 1i64;
let List.605 : List U8 = CallByName List.70 List.124 List.606;
let List.604 : List U8 = CallByName List.71 List.605 List.125;
ret List.604;
procedure List.43 (List.342, List.343):
let List.586 : U64 = CallByName List.6 List.342;
let List.585 : U64 = CallByName Num.77 List.586 List.343;
let List.580 : {U64, U64} = Struct {List.343, List.585};
let List.579 : List U8 = CallByName List.49 List.342 List.580;
ret List.579;
procedure List.49 (List.420, List.421):
let List.624 : U64 = StructAtIndex 1 List.421;
let List.625 : U64 = StructAtIndex 0 List.421;
let List.623 : List U8 = CallByName List.72 List.420 List.624 List.625;
ret List.623;
procedure List.6 (#Attr.2):
let List.626 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.626;
procedure List.66 (#Attr.2, #Attr.3):
let List.612 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.612;
procedure List.70 (#Attr.2, #Attr.3):
let List.603 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.603;
procedure List.71 (#Attr.2, #Attr.3):
let List.601 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.601;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.584 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.584;
procedure List.8 (#Attr.2, #Attr.3):
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.80 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
joinpoint List.639 List.491 List.492 List.493 List.494 List.495:
let List.641 : Int1 = CallByName Num.22 List.494 List.495;
if List.641 then
let List.650 : U8 = CallByName List.66 List.491 List.494;
let List.642 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.492 List.650;
let List.647 : U8 = 1i64;
let List.648 : U8 = GetTagId List.642;
let List.649 : Int1 = lowlevel Eq List.647 List.648;
if List.649 then
let List.496 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.642;
let List.645 : U64 = 1i64;
let List.644 : U64 = CallByName Num.51 List.494 List.645;
jump List.639 List.491 List.496 List.493 List.644 List.495;
else
dec List.491;
let List.497 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.642;
let List.646 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.497;
ret List.646;
else
dec List.491;
let List.640 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.492;
ret List.640;
in
jump List.639 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.282 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.282;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.291;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U8 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.294;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.316 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.316;
procedure Num.23 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumLte #Attr.2 #Attr.3;
ret Num.300;
procedure Num.25 (#Attr.2, #Attr.3):
let Num.306 : Int1 = lowlevel NumGte #Attr.2 #Attr.3;
ret Num.306;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.317 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.317;
procedure Num.71 (#Attr.2, #Attr.3):
let Num.279 : U8 = lowlevel NumBitwiseOr #Attr.2 #Attr.3;
ret Num.279;
procedure Num.72 (#Attr.2, #Attr.3):
let Num.280 : U8 = lowlevel NumShiftLeftBy #Attr.2 #Attr.3;
ret Num.280;
procedure Num.77 (#Attr.2, #Attr.3):
let Num.313 : U64 = lowlevel NumSubSaturated #Attr.2 #Attr.3;
ret Num.313;
procedure Str.43 (#Attr.2):
let Str.239 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.239;
procedure Str.9 (Str.67):
let Str.68 : {U64, Str, Int1, U8} = CallByName Str.43 Str.67;
let Str.236 : Int1 = StructAtIndex 2 Str.68;
if Str.236 then
let Str.238 : Str = StructAtIndex 1 Str.68;
let Str.237 : [C {U64, U8}, C Str] = TagId(1) Str.238;
ret Str.237;
else
let Str.234 : U8 = StructAtIndex 3 Str.68;
let Str.235 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.7 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.7;
let Str.233 : {U64, U8} = Struct {Str.235, Str.234};
let Str.232 : [C {U64, U8}, C Str] = TagId(0) Str.233;
ret Str.232;
procedure Test.3 ():
let Test.0 : List U8 = Array [82i64, 111i64, 99i64];
let Test.8 : {} = CallByName TotallyNotJson.8;
inc Test.0;
let Test.1 : [C [C List U8, C ], C Str] = CallByName Decode.27 Test.0 Test.8;
let Test.7 : Str = "Roc";
let Test.6 : [C [C List U8, C ], C Str] = TagId(1) Test.7;
let Test.5 : Int1 = CallByName Bool.11 Test.1 Test.6;
dec Test.7;
expect Test.5;
dec Test.1;
dec Test.0;
let Test.4 : {} = Struct {};
ret Test.4;
procedure TotallyNotJson.491 (TotallyNotJson.492, TotallyNotJson.976):
joinpoint TotallyNotJson.1260:
inc TotallyNotJson.492;
let TotallyNotJson.1129 : {List U8, List U8} = CallByName TotallyNotJson.60 TotallyNotJson.492;
let TotallyNotJson.496 : List U8 = StructAtIndex 0 TotallyNotJson.1129;
let TotallyNotJson.495 : List U8 = StructAtIndex 1 TotallyNotJson.1129;
inc TotallyNotJson.495;
let TotallyNotJson.1125 : Int1 = CallByName List.1 TotallyNotJson.495;
if TotallyNotJson.1125 then
dec TotallyNotJson.495;
dec TotallyNotJson.496;
let TotallyNotJson.1128 : {} = Struct {};
let TotallyNotJson.1127 : [C {}, C Str] = TagId(0) TotallyNotJson.1128;
let TotallyNotJson.1126 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.492, TotallyNotJson.1127};
ret TotallyNotJson.1126;
else
let TotallyNotJson.1123 : U64 = CallByName List.6 TotallyNotJson.495;
let TotallyNotJson.1124 : U64 = 2i64;
let TotallyNotJson.1121 : U64 = CallByName Num.77 TotallyNotJson.1123 TotallyNotJson.1124;
let TotallyNotJson.1122 : U64 = 1i64;
let TotallyNotJson.1120 : {U64, U64} = Struct {TotallyNotJson.1121, TotallyNotJson.1122};
let TotallyNotJson.995 : List U8 = CallByName List.49 TotallyNotJson.495 TotallyNotJson.1120;
let TotallyNotJson.996 : {} = Struct {};
let TotallyNotJson.991 : {List U8, List U8} = CallByName TotallyNotJson.500 TotallyNotJson.995;
let TotallyNotJson.992 : {} = Struct {};
let TotallyNotJson.990 : List U8 = CallByName TotallyNotJson.502 TotallyNotJson.991;
let TotallyNotJson.499 : [C {U64, U8}, C Str] = CallByName Str.9 TotallyNotJson.990;
let TotallyNotJson.987 : U8 = 1i64;
let TotallyNotJson.988 : U8 = GetTagId TotallyNotJson.499;
let TotallyNotJson.989 : Int1 = lowlevel Eq TotallyNotJson.987 TotallyNotJson.988;
if TotallyNotJson.989 then
dec TotallyNotJson.492;
let TotallyNotJson.503 : Str = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.499;
let TotallyNotJson.983 : [C {}, C Str] = TagId(1) TotallyNotJson.503;
let TotallyNotJson.982 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.496, TotallyNotJson.983};
ret TotallyNotJson.982;
else
dec TotallyNotJson.499;
dec TotallyNotJson.496;
let TotallyNotJson.986 : {} = Struct {};
let TotallyNotJson.985 : [C {}, C Str] = TagId(0) TotallyNotJson.986;
let TotallyNotJson.984 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.492, TotallyNotJson.985};
ret TotallyNotJson.984;
in
let TotallyNotJson.1258 : U64 = lowlevel ListLenUsize TotallyNotJson.492;
let TotallyNotJson.1259 : U64 = 4i64;
let TotallyNotJson.1265 : Int1 = lowlevel NumGte TotallyNotJson.1258 TotallyNotJson.1259;
if TotallyNotJson.1265 then
let TotallyNotJson.1255 : U64 = 3i64;
let TotallyNotJson.1256 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1255;
let TotallyNotJson.1257 : U8 = 108i64;
let TotallyNotJson.1264 : Int1 = lowlevel Eq TotallyNotJson.1257 TotallyNotJson.1256;
if TotallyNotJson.1264 then
let TotallyNotJson.1252 : U64 = 2i64;
let TotallyNotJson.1253 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1252;
let TotallyNotJson.1254 : U8 = 108i64;
let TotallyNotJson.1263 : Int1 = lowlevel Eq TotallyNotJson.1254 TotallyNotJson.1253;
if TotallyNotJson.1263 then
let TotallyNotJson.1249 : U64 = 1i64;
let TotallyNotJson.1250 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1249;
let TotallyNotJson.1251 : U8 = 117i64;
let TotallyNotJson.1262 : Int1 = lowlevel Eq TotallyNotJson.1251 TotallyNotJson.1250;
if TotallyNotJson.1262 then
let TotallyNotJson.1246 : U64 = 0i64;
let TotallyNotJson.1247 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1246;
let TotallyNotJson.1248 : U8 = 110i64;
let TotallyNotJson.1261 : Int1 = lowlevel Eq TotallyNotJson.1248 TotallyNotJson.1247;
if TotallyNotJson.1261 then
let TotallyNotJson.981 : U64 = 4i64;
let TotallyNotJson.978 : List U8 = CallByName List.38 TotallyNotJson.492 TotallyNotJson.981;
let TotallyNotJson.980 : Str = "null";
let TotallyNotJson.979 : [C {}, C Str] = TagId(1) TotallyNotJson.980;
let TotallyNotJson.977 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.978, TotallyNotJson.979};
ret TotallyNotJson.977;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
procedure TotallyNotJson.500 (TotallyNotJson.501):
let TotallyNotJson.1119 : List U8 = Array [];
let TotallyNotJson.998 : {List U8, List U8} = Struct {TotallyNotJson.501, TotallyNotJson.1119};
let TotallyNotJson.997 : {List U8, List U8} = CallByName TotallyNotJson.69 TotallyNotJson.998;
ret TotallyNotJson.997;
procedure TotallyNotJson.502 (TotallyNotJson.993):
let TotallyNotJson.994 : List U8 = StructAtIndex 1 TotallyNotJson.993;
let #Derived_gen.6 : List U8 = StructAtIndex 0 TotallyNotJson.993;
dec #Derived_gen.6;
ret TotallyNotJson.994;
procedure TotallyNotJson.59 ():
let TotallyNotJson.975 : {} = Struct {};
let TotallyNotJson.974 : {} = CallByName Decode.24 TotallyNotJson.975;
ret TotallyNotJson.974;
procedure TotallyNotJson.60 (TotallyNotJson.507):
let TotallyNotJson.1141 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(4) ;
let TotallyNotJson.1142 : {} = Struct {};
inc TotallyNotJson.507;
let TotallyNotJson.1130 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = CallByName List.26 TotallyNotJson.507 TotallyNotJson.1141 TotallyNotJson.1142;
let TotallyNotJson.1138 : U8 = 2i64;
let TotallyNotJson.1139 : U8 = GetTagId TotallyNotJson.1130;
let TotallyNotJson.1140 : Int1 = lowlevel Eq TotallyNotJson.1138 TotallyNotJson.1139;
if TotallyNotJson.1140 then
inc TotallyNotJson.507;
let TotallyNotJson.509 : U64 = UnionAtIndex (Id 2) (Index 0) TotallyNotJson.1130;
let TotallyNotJson.1132 : List U8 = CallByName List.38 TotallyNotJson.507 TotallyNotJson.509;
let TotallyNotJson.1135 : U64 = 0i64;
let TotallyNotJson.1134 : {U64, U64} = Struct {TotallyNotJson.509, TotallyNotJson.1135};
let TotallyNotJson.1133 : List U8 = CallByName List.49 TotallyNotJson.507 TotallyNotJson.1134;
let TotallyNotJson.1131 : {List U8, List U8} = Struct {TotallyNotJson.1132, TotallyNotJson.1133};
ret TotallyNotJson.1131;
else
let TotallyNotJson.1137 : List U8 = Array [];
let TotallyNotJson.1136 : {List U8, List U8} = Struct {TotallyNotJson.507, TotallyNotJson.1137};
ret TotallyNotJson.1136;
procedure TotallyNotJson.61 (TotallyNotJson.510, TotallyNotJson.511):
let TotallyNotJson.1143 : {[C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], U8} = Struct {TotallyNotJson.510, TotallyNotJson.511};
joinpoint TotallyNotJson.1186:
let TotallyNotJson.1184 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(3) ;
let TotallyNotJson.1183 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) TotallyNotJson.1184;
ret TotallyNotJson.1183;
in
let TotallyNotJson.1187 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.1245 : U8 = GetTagId TotallyNotJson.1187;
switch TotallyNotJson.1245:
case 4:
let TotallyNotJson.512 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1189 TotallyNotJson.1188:
if TotallyNotJson.1188 then
let TotallyNotJson.1146 : U64 = 1i64;
let TotallyNotJson.1145 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1146;
let TotallyNotJson.1144 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1145;
ret TotallyNotJson.1144;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1191 : U8 = 34i64;
let TotallyNotJson.1190 : Int1 = CallByName Bool.11 TotallyNotJson.512 TotallyNotJson.1191;
jump TotallyNotJson.1189 TotallyNotJson.1190;
case 0:
let TotallyNotJson.1202 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.515 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1202;
let TotallyNotJson.516 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1199 TotallyNotJson.1193:
if TotallyNotJson.1193 then
let TotallyNotJson.1150 : U64 = 1i64;
let TotallyNotJson.1149 : U64 = CallByName Num.19 TotallyNotJson.515 TotallyNotJson.1150;
let TotallyNotJson.1148 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(2) TotallyNotJson.1149;
let TotallyNotJson.1147 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) TotallyNotJson.1148;
ret TotallyNotJson.1147;
else
let TotallyNotJson.1198 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.519 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1198;
let TotallyNotJson.520 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1195 TotallyNotJson.1194:
if TotallyNotJson.1194 then
let TotallyNotJson.1154 : U64 = 1i64;
let TotallyNotJson.1153 : U64 = CallByName Num.19 TotallyNotJson.519 TotallyNotJson.1154;
let TotallyNotJson.1152 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(1) TotallyNotJson.1153;
let TotallyNotJson.1151 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1152;
ret TotallyNotJson.1151;
else
let TotallyNotJson.1185 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.523 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1185;
let TotallyNotJson.1158 : U64 = 1i64;
let TotallyNotJson.1157 : U64 = CallByName Num.19 TotallyNotJson.523 TotallyNotJson.1158;
let TotallyNotJson.1156 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1157;
let TotallyNotJson.1155 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1156;
ret TotallyNotJson.1155;
in
let TotallyNotJson.1197 : U8 = 92i64;
let TotallyNotJson.1196 : Int1 = CallByName Bool.11 TotallyNotJson.520 TotallyNotJson.1197;
jump TotallyNotJson.1195 TotallyNotJson.1196;
in
let TotallyNotJson.1201 : U8 = 34i64;
let TotallyNotJson.1200 : Int1 = CallByName Bool.11 TotallyNotJson.516 TotallyNotJson.1201;
jump TotallyNotJson.1199 TotallyNotJson.1200;
case 1:
let TotallyNotJson.1211 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.526 : U64 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1211;
let TotallyNotJson.527 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1209 TotallyNotJson.1203:
if TotallyNotJson.1203 then
let TotallyNotJson.1162 : U64 = 1i64;
let TotallyNotJson.1161 : U64 = CallByName Num.19 TotallyNotJson.526 TotallyNotJson.1162;
let TotallyNotJson.1160 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1161;
let TotallyNotJson.1159 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1160;
ret TotallyNotJson.1159;
else
let TotallyNotJson.1208 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.530 : U64 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1208;
let TotallyNotJson.531 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1205 TotallyNotJson.1204:
if TotallyNotJson.1204 then
let TotallyNotJson.1166 : U64 = 1i64;
let TotallyNotJson.1165 : U64 = CallByName Num.19 TotallyNotJson.530 TotallyNotJson.1166;
let TotallyNotJson.1164 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(5) TotallyNotJson.1165;
let TotallyNotJson.1163 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1164;
ret TotallyNotJson.1163;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1207 : U8 = 117i64;
let TotallyNotJson.1206 : Int1 = CallByName Bool.11 TotallyNotJson.531 TotallyNotJson.1207;
jump TotallyNotJson.1205 TotallyNotJson.1206;
in
let TotallyNotJson.1210 : Int1 = CallByName TotallyNotJson.62 TotallyNotJson.527;
jump TotallyNotJson.1209 TotallyNotJson.1210;
case 5:
let TotallyNotJson.1232 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.534 : U64 = UnionAtIndex (Id 5) (Index 0) TotallyNotJson.1232;
let TotallyNotJson.535 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1213 TotallyNotJson.1212:
if TotallyNotJson.1212 then
let TotallyNotJson.1170 : U64 = 1i64;
let TotallyNotJson.1169 : U64 = CallByName Num.19 TotallyNotJson.534 TotallyNotJson.1170;
let TotallyNotJson.1168 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(6) TotallyNotJson.1169;
let TotallyNotJson.1167 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1168;
ret TotallyNotJson.1167;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1214 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.535;
jump TotallyNotJson.1213 TotallyNotJson.1214;
case 6:
let TotallyNotJson.1236 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.538 : U64 = UnionAtIndex (Id 6) (Index 0) TotallyNotJson.1236;
let TotallyNotJson.539 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1234 TotallyNotJson.1233:
if TotallyNotJson.1233 then
let TotallyNotJson.1174 : U64 = 1i64;
let TotallyNotJson.1173 : U64 = CallByName Num.19 TotallyNotJson.538 TotallyNotJson.1174;
let TotallyNotJson.1172 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(7) TotallyNotJson.1173;
let TotallyNotJson.1171 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1172;
ret TotallyNotJson.1171;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1235 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.539;
jump TotallyNotJson.1234 TotallyNotJson.1235;
case 7:
let TotallyNotJson.1240 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.542 : U64 = UnionAtIndex (Id 7) (Index 0) TotallyNotJson.1240;
let TotallyNotJson.543 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1238 TotallyNotJson.1237:
if TotallyNotJson.1237 then
let TotallyNotJson.1178 : U64 = 1i64;
let TotallyNotJson.1177 : U64 = CallByName Num.19 TotallyNotJson.542 TotallyNotJson.1178;
let TotallyNotJson.1176 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(8) TotallyNotJson.1177;
let TotallyNotJson.1175 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1176;
ret TotallyNotJson.1175;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1239 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.543;
jump TotallyNotJson.1238 TotallyNotJson.1239;
case 8:
let TotallyNotJson.1244 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.546 : U64 = UnionAtIndex (Id 8) (Index 0) TotallyNotJson.1244;
let TotallyNotJson.547 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1242 TotallyNotJson.1241:
if TotallyNotJson.1241 then
let TotallyNotJson.1182 : U64 = 1i64;
let TotallyNotJson.1181 : U64 = CallByName Num.19 TotallyNotJson.546 TotallyNotJson.1182;
let TotallyNotJson.1180 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1181;
let TotallyNotJson.1179 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1180;
ret TotallyNotJson.1179;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1243 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.547;
jump TotallyNotJson.1242 TotallyNotJson.1243;
default:
jump TotallyNotJson.1186;
procedure TotallyNotJson.62 (TotallyNotJson.552):
switch TotallyNotJson.552:
case 34:
let TotallyNotJson.1087 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1087;
case 92:
let TotallyNotJson.1088 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1088;
case 47:
let TotallyNotJson.1089 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1089;
case 98:
let TotallyNotJson.1090 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1090;
case 102:
let TotallyNotJson.1091 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1091;
case 110:
let TotallyNotJson.1092 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1092;
case 114:
let TotallyNotJson.1093 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1093;
case 116:
let TotallyNotJson.1094 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1094;
default:
let TotallyNotJson.1095 : Int1 = CallByName Bool.1;
ret TotallyNotJson.1095;
procedure TotallyNotJson.63 (TotallyNotJson.553):
switch TotallyNotJson.553:
case 34:
let TotallyNotJson.1064 : U8 = 34i64;
ret TotallyNotJson.1064;
case 92:
let TotallyNotJson.1065 : U8 = 92i64;
ret TotallyNotJson.1065;
case 47:
let TotallyNotJson.1066 : U8 = 47i64;
ret TotallyNotJson.1066;
case 98:
let TotallyNotJson.1067 : U8 = 8i64;
ret TotallyNotJson.1067;
case 102:
let TotallyNotJson.1068 : U8 = 12i64;
ret TotallyNotJson.1068;
case 110:
let TotallyNotJson.1069 : U8 = 10i64;
ret TotallyNotJson.1069;
case 114:
let TotallyNotJson.1070 : U8 = 13i64;
ret TotallyNotJson.1070;
case 116:
let TotallyNotJson.1071 : U8 = 9i64;
ret TotallyNotJson.1071;
default:
ret TotallyNotJson.553;
procedure TotallyNotJson.64 (TotallyNotJson.554):
let TotallyNotJson.1231 : U8 = 48i64;
let TotallyNotJson.1228 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1231;
let TotallyNotJson.1230 : U8 = 57i64;
let TotallyNotJson.1229 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1230;
let TotallyNotJson.1216 : Int1 = CallByName Bool.3 TotallyNotJson.1228 TotallyNotJson.1229;
let TotallyNotJson.1227 : U8 = 97i64;
let TotallyNotJson.1224 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1227;
let TotallyNotJson.1226 : U8 = 102i64;
let TotallyNotJson.1225 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1226;
let TotallyNotJson.1218 : Int1 = CallByName Bool.3 TotallyNotJson.1224 TotallyNotJson.1225;
let TotallyNotJson.1223 : U8 = 65i64;
let TotallyNotJson.1220 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1223;
let TotallyNotJson.1222 : U8 = 70i64;
let TotallyNotJson.1221 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1222;
let TotallyNotJson.1219 : Int1 = CallByName Bool.3 TotallyNotJson.1220 TotallyNotJson.1221;
let TotallyNotJson.1217 : Int1 = CallByName Bool.4 TotallyNotJson.1218 TotallyNotJson.1219;
let TotallyNotJson.1215 : Int1 = CallByName Bool.4 TotallyNotJson.1216 TotallyNotJson.1217;
ret TotallyNotJson.1215;
procedure TotallyNotJson.65 (TotallyNotJson.555):
let TotallyNotJson.1043 : U8 = 48i64;
let TotallyNotJson.1040 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1043;
let TotallyNotJson.1042 : U8 = 57i64;
let TotallyNotJson.1041 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1042;
let TotallyNotJson.1037 : Int1 = CallByName Bool.3 TotallyNotJson.1040 TotallyNotJson.1041;
if TotallyNotJson.1037 then
let TotallyNotJson.1039 : U8 = 48i64;
let TotallyNotJson.1038 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1039;
ret TotallyNotJson.1038;
else
let TotallyNotJson.1036 : U8 = 97i64;
let TotallyNotJson.1033 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1036;
let TotallyNotJson.1035 : U8 = 102i64;
let TotallyNotJson.1034 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1035;
let TotallyNotJson.1028 : Int1 = CallByName Bool.3 TotallyNotJson.1033 TotallyNotJson.1034;
if TotallyNotJson.1028 then
let TotallyNotJson.1032 : U8 = 97i64;
let TotallyNotJson.1030 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1032;
let TotallyNotJson.1031 : U8 = 10i64;
let TotallyNotJson.1029 : U8 = CallByName Num.19 TotallyNotJson.1030 TotallyNotJson.1031;
ret TotallyNotJson.1029;
else
let TotallyNotJson.1027 : U8 = 65i64;
let TotallyNotJson.1024 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1027;
let TotallyNotJson.1026 : U8 = 70i64;
let TotallyNotJson.1025 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1026;
let TotallyNotJson.1019 : Int1 = CallByName Bool.3 TotallyNotJson.1024 TotallyNotJson.1025;
if TotallyNotJson.1019 then
let TotallyNotJson.1023 : U8 = 65i64;
let TotallyNotJson.1021 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1023;
let TotallyNotJson.1022 : U8 = 10i64;
let TotallyNotJson.1020 : U8 = CallByName Num.19 TotallyNotJson.1021 TotallyNotJson.1022;
ret TotallyNotJson.1020;
else
let TotallyNotJson.1018 : Str = "got an invalid hex char";
Crash TotallyNotJson.1018
procedure TotallyNotJson.66 (TotallyNotJson.556, TotallyNotJson.557):
let TotallyNotJson.1009 : U8 = 4i64;
let TotallyNotJson.1008 : U8 = CallByName Num.72 TotallyNotJson.556 TotallyNotJson.1009;
let TotallyNotJson.1007 : U8 = CallByName Num.71 TotallyNotJson.1008 TotallyNotJson.557;
ret TotallyNotJson.1007;
procedure TotallyNotJson.67 (TotallyNotJson.558, TotallyNotJson.559, TotallyNotJson.560, TotallyNotJson.561):
let TotallyNotJson.562 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.558;
let TotallyNotJson.563 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.559;
let TotallyNotJson.564 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.560;
let TotallyNotJson.565 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.561;
let TotallyNotJson.1016 : U8 = 0i64;
let TotallyNotJson.1013 : Int1 = CallByName Bool.11 TotallyNotJson.562 TotallyNotJson.1016;
let TotallyNotJson.1015 : U8 = 0i64;
let TotallyNotJson.1014 : Int1 = CallByName Bool.11 TotallyNotJson.563 TotallyNotJson.1015;
let TotallyNotJson.1010 : Int1 = CallByName Bool.3 TotallyNotJson.1013 TotallyNotJson.1014;
if TotallyNotJson.1010 then
let TotallyNotJson.1012 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.564 TotallyNotJson.565;
let TotallyNotJson.1011 : List U8 = Array [TotallyNotJson.1012];
ret TotallyNotJson.1011;
else
let TotallyNotJson.1005 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.562 TotallyNotJson.563;
let TotallyNotJson.1006 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.564 TotallyNotJson.565;
let TotallyNotJson.1004 : List U8 = Array [TotallyNotJson.1005, TotallyNotJson.1006];
ret TotallyNotJson.1004;
procedure TotallyNotJson.68 ():
let TotallyNotJson.1049 : U8 = 102i64;
let TotallyNotJson.1050 : U8 = 102i64;
let TotallyNotJson.1051 : U8 = 100i64;
let TotallyNotJson.1052 : U8 = 100i64;
let TotallyNotJson.1048 : List U8 = CallByName TotallyNotJson.67 TotallyNotJson.1049 TotallyNotJson.1050 TotallyNotJson.1051 TotallyNotJson.1052;
ret TotallyNotJson.1048;
procedure TotallyNotJson.69 (#Derived_gen.0):
joinpoint TotallyNotJson.999 TotallyNotJson.970:
let TotallyNotJson.566 : List U8 = StructAtIndex 0 TotallyNotJson.970;
inc 4 TotallyNotJson.566;
let TotallyNotJson.567 : List U8 = StructAtIndex 1 TotallyNotJson.970;
let TotallyNotJson.1118 : U64 = 0i64;
let TotallyNotJson.568 : [C {}, C U8] = CallByName List.2 TotallyNotJson.566 TotallyNotJson.1118;
let TotallyNotJson.1117 : U64 = 1i64;
let TotallyNotJson.569 : [C {}, C U8] = CallByName List.2 TotallyNotJson.566 TotallyNotJson.1117;
let TotallyNotJson.1116 : U64 = 2i64;
let TotallyNotJson.570 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1116;
let TotallyNotJson.1115 : U64 = 6i64;
let TotallyNotJson.571 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1115;
let TotallyNotJson.1000 : {[C {}, C U8], [C {}, C U8]} = Struct {TotallyNotJson.568, TotallyNotJson.569};
joinpoint TotallyNotJson.1080:
let TotallyNotJson.1079 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.582 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1079;
let TotallyNotJson.1077 : U64 = 1i64;
let TotallyNotJson.1075 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1077;
let TotallyNotJson.1076 : List U8 = CallByName List.4 TotallyNotJson.567 TotallyNotJson.582;
let TotallyNotJson.1074 : {List U8, List U8} = Struct {TotallyNotJson.1075, TotallyNotJson.1076};
jump TotallyNotJson.999 TotallyNotJson.1074;
in
let TotallyNotJson.1111 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.1112 : U8 = 1i64;
let TotallyNotJson.1113 : U8 = GetTagId TotallyNotJson.1111;
let TotallyNotJson.1114 : Int1 = lowlevel Eq TotallyNotJson.1112 TotallyNotJson.1113;
if TotallyNotJson.1114 then
let TotallyNotJson.1107 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.1108 : U8 = 1i64;
let TotallyNotJson.1109 : U8 = GetTagId TotallyNotJson.1107;
let TotallyNotJson.1110 : Int1 = lowlevel Eq TotallyNotJson.1108 TotallyNotJson.1109;
if TotallyNotJson.1110 then
let TotallyNotJson.1106 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.573 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1106;
let TotallyNotJson.1105 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.574 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1105;
joinpoint TotallyNotJson.1099 TotallyNotJson.1081:
if TotallyNotJson.1081 then
dec TotallyNotJson.566;
let TotallyNotJson.1057 : U64 = lowlevel ListLenUsize TotallyNotJson.570;
let TotallyNotJson.1058 : U64 = 4i64;
let TotallyNotJson.1059 : Int1 = lowlevel NumGte TotallyNotJson.1057 TotallyNotJson.1058;
if TotallyNotJson.1059 then
let TotallyNotJson.1056 : U64 = 0i64;
let TotallyNotJson.575 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1056;
let TotallyNotJson.1055 : U64 = 1i64;
let TotallyNotJson.576 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1055;
let TotallyNotJson.1054 : U64 = 2i64;
let TotallyNotJson.577 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1054;
let TotallyNotJson.1053 : U64 = 3i64;
let TotallyNotJson.578 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1053;
dec TotallyNotJson.570;
let TotallyNotJson.579 : List U8 = CallByName TotallyNotJson.67 TotallyNotJson.575 TotallyNotJson.576 TotallyNotJson.577 TotallyNotJson.578;
let TotallyNotJson.1003 : List U8 = CallByName List.8 TotallyNotJson.567 TotallyNotJson.579;
let TotallyNotJson.1002 : {List U8, List U8} = Struct {TotallyNotJson.571, TotallyNotJson.1003};
jump TotallyNotJson.999 TotallyNotJson.1002;
else
dec TotallyNotJson.571;
let TotallyNotJson.1047 : List U8 = CallByName TotallyNotJson.68;
let TotallyNotJson.1046 : List U8 = CallByName List.8 TotallyNotJson.567 TotallyNotJson.1047;
let TotallyNotJson.1045 : {List U8, List U8} = Struct {TotallyNotJson.570, TotallyNotJson.1046};
jump TotallyNotJson.999 TotallyNotJson.1045;
else
dec TotallyNotJson.571;
let TotallyNotJson.1098 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.580 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1098;
let TotallyNotJson.1097 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.581 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1097;
joinpoint TotallyNotJson.1083 TotallyNotJson.1082:
if TotallyNotJson.1082 then
dec TotallyNotJson.566;
let TotallyNotJson.1063 : U8 = CallByName TotallyNotJson.63 TotallyNotJson.581;
let TotallyNotJson.1062 : List U8 = CallByName List.4 TotallyNotJson.567 TotallyNotJson.1063;
let TotallyNotJson.1061 : {List U8, List U8} = Struct {TotallyNotJson.570, TotallyNotJson.1062};
jump TotallyNotJson.999 TotallyNotJson.1061;
else
dec TotallyNotJson.570;
jump TotallyNotJson.1080;
in
let TotallyNotJson.1096 : U8 = 92i64;
let TotallyNotJson.1085 : Int1 = CallByName Bool.11 TotallyNotJson.580 TotallyNotJson.1096;
let TotallyNotJson.1086 : Int1 = CallByName TotallyNotJson.62 TotallyNotJson.581;
let TotallyNotJson.1084 : Int1 = CallByName Bool.3 TotallyNotJson.1085 TotallyNotJson.1086;
jump TotallyNotJson.1083 TotallyNotJson.1084;
in
let TotallyNotJson.1104 : U8 = 92i64;
let TotallyNotJson.1101 : Int1 = CallByName Bool.11 TotallyNotJson.573 TotallyNotJson.1104;
let TotallyNotJson.1103 : U8 = 117i64;
let TotallyNotJson.1102 : Int1 = CallByName Bool.11 TotallyNotJson.574 TotallyNotJson.1103;
let TotallyNotJson.1100 : Int1 = CallByName Bool.3 TotallyNotJson.1101 TotallyNotJson.1102;
jump TotallyNotJson.1099 TotallyNotJson.1100;
else
dec TotallyNotJson.571;
dec TotallyNotJson.570;
jump TotallyNotJson.1080;
else
dec TotallyNotJson.571;
dec TotallyNotJson.570;
let TotallyNotJson.1078 : {List U8, List U8} = Struct {TotallyNotJson.566, TotallyNotJson.567};
ret TotallyNotJson.1078;
in
jump TotallyNotJson.999 #Derived_gen.0;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.6 ():
let Test.10 : Int1 = false;
let Test.0 : [C Int1, C Int1, C Int1] = TagId(2) Test.10;
let Test.9 : Int1 = false;
let Test.1 : [C Int1, C Int1, C Int1] = TagId(0) Test.9;
let Test.8 : Int1 = CallByName Bool.7 Test.0 Test.1;
expect Test.8;
let Test.7 : {} = Struct {};
ret Test.7;

View File

@ -1,197 +1,23 @@
procedure Bool.1 ():
let Bool.51 : Int1 = false;
ret Bool.51;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.42 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.42;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.54 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.54;
procedure Bool.2 ():
let Bool.50 : Int1 = true;
ret Bool.50;
procedure Bool.3 (#Attr.2, #Attr.3):
let Bool.33 : Int1 = lowlevel And #Attr.2 #Attr.3;
ret Bool.33;
procedure Bool.4 (#Attr.2, #Attr.3):
let Bool.53 : Int1 = lowlevel Or #Attr.2 #Attr.3;
ret Bool.53;
let Bool.24 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.24;
procedure Decode.24 (Decode.101):
ret Decode.101;
procedure Decode.25 (Decode.102, Decode.121, Decode.104):
let Decode.124 : {List U8, [C {}, C Str]} = CallByName TotallyNotJson.491 Decode.102 Decode.104;
let Decode.124 : {List U8, [C {}, C Str]} = CallByName Test.76 Decode.102 Decode.104;
ret Decode.124;
procedure Decode.26 (Decode.105, Decode.106):
let Decode.123 : {} = CallByName TotallyNotJson.59;
let Decode.123 : {} = CallByName Test.15;
let Decode.122 : {List U8, [C {}, C Str]} = CallByName Decode.25 Decode.105 Decode.123 Decode.106;
ret Decode.122;
procedure List.1 (List.107):
let List.624 : U64 = CallByName List.6 List.107;
dec List.107;
let List.625 : U64 = 0i64;
let List.623 : Int1 = CallByName Bool.11 List.624 List.625;
ret List.623;
procedure List.104 (List.488, List.489, List.490):
let List.633 : U64 = 0i64;
let List.634 : U64 = CallByName List.6 List.488;
let List.632 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.488 List.489 List.490 List.633 List.634;
ret List.632;
procedure List.2 (List.108, List.109):
let List.615 : U64 = CallByName List.6 List.108;
let List.612 : Int1 = CallByName Num.22 List.109 List.615;
if List.612 then
let List.614 : U8 = CallByName List.66 List.108 List.109;
dec List.108;
let List.613 : [C {}, C U8] = TagId(1) List.614;
ret List.613;
else
dec List.108;
let List.611 : {} = Struct {};
let List.610 : [C {}, C U8] = TagId(0) List.611;
ret List.610;
procedure List.26 (List.201, List.202, List.203):
let List.626 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.104 List.201 List.202 List.203;
let List.629 : U8 = 1i64;
let List.630 : U8 = GetTagId List.626;
let List.631 : Int1 = lowlevel Eq List.629 List.630;
if List.631 then
let List.204 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.626;
ret List.204;
else
let List.205 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.626;
ret List.205;
procedure List.38 (List.344, List.345):
let List.592 : U64 = CallByName List.6 List.344;
let List.346 : U64 = CallByName Num.77 List.592 List.345;
let List.591 : List U8 = CallByName List.43 List.344 List.346;
ret List.591;
procedure List.4 (List.124, List.125):
let List.602 : U64 = 1i64;
let List.601 : List U8 = CallByName List.70 List.124 List.602;
let List.600 : List U8 = CallByName List.71 List.601 List.125;
ret List.600;
procedure List.43 (List.342, List.343):
let List.582 : U64 = CallByName List.6 List.342;
let List.581 : U64 = CallByName Num.77 List.582 List.343;
let List.576 : {U64, U64} = Struct {List.343, List.581};
let List.575 : List U8 = CallByName List.49 List.342 List.576;
ret List.575;
procedure List.49 (List.420, List.421):
let List.620 : U64 = StructAtIndex 1 List.421;
let List.621 : U64 = StructAtIndex 0 List.421;
let List.619 : List U8 = CallByName List.72 List.420 List.620 List.621;
ret List.619;
procedure List.6 (#Attr.2):
let List.622 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.622;
procedure List.66 (#Attr.2, #Attr.3):
let List.608 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.608;
procedure List.70 (#Attr.2, #Attr.3):
let List.599 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.599;
procedure List.71 (#Attr.2, #Attr.3):
let List.597 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.597;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.580 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.580;
procedure List.8 (#Attr.2, #Attr.3):
let List.594 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.594;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.635 List.491 List.492 List.493 List.494 List.495:
let List.637 : Int1 = CallByName Num.22 List.494 List.495;
if List.637 then
let List.646 : U8 = CallByName List.66 List.491 List.494;
let List.638 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.492 List.646;
let List.643 : U8 = 1i64;
let List.644 : U8 = GetTagId List.638;
let List.645 : Int1 = lowlevel Eq List.643 List.644;
if List.645 then
let List.496 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.638;
let List.641 : U64 = 1i64;
let List.640 : U64 = CallByName Num.51 List.494 List.641;
jump List.635 List.491 List.496 List.493 List.640 List.495;
else
dec List.491;
let List.497 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.638;
let List.642 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.497;
ret List.642;
else
dec List.491;
let List.636 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.492;
ret List.636;
in
jump List.635 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.282 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.282;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.291;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U8 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.294;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.316 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.316;
procedure Num.23 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumLte #Attr.2 #Attr.3;
ret Num.300;
procedure Num.25 (#Attr.2, #Attr.3):
let Num.306 : Int1 = lowlevel NumGte #Attr.2 #Attr.3;
ret Num.306;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.317 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.317;
procedure Num.71 (#Attr.2, #Attr.3):
let Num.279 : U8 = lowlevel NumBitwiseOr #Attr.2 #Attr.3;
ret Num.279;
procedure Num.72 (#Attr.2, #Attr.3):
let Num.280 : U8 = lowlevel NumShiftLeftBy #Attr.2 #Attr.3;
ret Num.280;
procedure Num.77 (#Attr.2, #Attr.3):
let Num.313 : U64 = lowlevel NumSubSaturated #Attr.2 #Attr.3;
ret Num.313;
procedure Str.12 (#Attr.2):
let Str.241 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.241;
@ -204,10 +30,6 @@ procedure Str.42 (#Attr.2):
let Str.240 : {I64, U8} = lowlevel StrToNum #Attr.2;
ret Str.240;
procedure Str.43 (#Attr.2):
let Str.249 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8 #Attr.2;
ret Str.249;
procedure Str.60 (Str.185):
let Str.186 : {I64, U8} = CallByName Str.42 Str.185;
dec Str.185;
@ -223,633 +45,59 @@ procedure Str.60 (Str.185):
let Str.233 : [C {}, C I64] = TagId(0) Str.234;
ret Str.233;
procedure Str.9 (Str.67):
let Str.68 : {U64, Str, Int1, U8} = CallByName Str.43 Str.67;
let Str.246 : Int1 = StructAtIndex 2 Str.68;
if Str.246 then
let Str.248 : Str = StructAtIndex 1 Str.68;
let Str.247 : [C {U64, U8}, C Str] = TagId(1) Str.248;
ret Str.247;
else
let Str.244 : U8 = StructAtIndex 3 Str.68;
let Str.245 : U64 = StructAtIndex 0 Str.68;
let #Derived_gen.7 : Str = StructAtIndex 1 Str.68;
dec #Derived_gen.7;
let Str.243 : {U64, U8} = Struct {Str.245, Str.244};
let Str.242 : [C {U64, U8}, C Str] = TagId(0) Str.243;
ret Str.242;
procedure Test.103 ():
let Test.101 : [C Str, C {List U8, I64}] = CallByName Test.19;
let Test.115 : List U8 = Array [];
let Test.116 : I64 = -1234i64;
let Test.114 : {List U8, I64} = Struct {Test.115, Test.116};
let Test.113 : [C Str, C {List U8, I64}] = TagId(1) Test.114;
let Test.112 : Int1 = CallByName Bool.11 Test.101 Test.113;
dec Test.114;
expect Test.112;
dec Test.101;
let Test.111 : {} = Struct {};
ret Test.111;
procedure Test.0 ():
let Test.37 : Str = "-1234";
let Test.35 : List U8 = CallByName Str.12 Test.37;
let Test.36 : {} = CallByName TotallyNotJson.8;
let Test.34 : {List U8, [C {}, C Str]} = CallByName Decode.26 Test.35 Test.36;
let Test.2 : List U8 = StructAtIndex 0 Test.34;
let Test.1 : [C {}, C Str] = StructAtIndex 1 Test.34;
let Test.31 : U8 = 1i64;
let Test.32 : U8 = GetTagId Test.1;
let Test.33 : Int1 = lowlevel Eq Test.31 Test.32;
if Test.33 then
let Test.3 : Str = UnionAtIndex (Id 1) (Index 0) Test.1;
let Test.19 : [C {}, C I64] = CallByName Str.27 Test.3;
let Test.25 : U8 = 1i64;
let Test.26 : U8 = GetTagId Test.19;
let Test.27 : Int1 = lowlevel Eq Test.25 Test.26;
if Test.27 then
let Test.4 : I64 = UnionAtIndex (Id 1) (Index 0) Test.19;
let Test.21 : {List U8, I64} = Struct {Test.2, Test.4};
let Test.20 : [C Str, C {List U8, I64}] = TagId(1) Test.21;
ret Test.20;
procedure Test.15 ():
let Test.137 : {} = Struct {};
let Test.136 : {} = CallByName Decode.24 Test.137;
ret Test.136;
procedure Test.19 ():
let Test.135 : Str = "-1234";
let Test.133 : List U8 = CallByName Str.12 Test.135;
let Test.134 : {} = Struct {};
let Test.132 : {List U8, [C {}, C Str]} = CallByName Decode.26 Test.133 Test.134;
let Test.93 : List U8 = StructAtIndex 0 Test.132;
let Test.92 : [C {}, C Str] = StructAtIndex 1 Test.132;
let Test.129 : U8 = 1i64;
let Test.130 : U8 = GetTagId Test.92;
let Test.131 : Int1 = lowlevel Eq Test.129 Test.130;
if Test.131 then
let Test.94 : Str = UnionAtIndex (Id 1) (Index 0) Test.92;
let Test.117 : [C {}, C I64] = CallByName Str.27 Test.94;
let Test.123 : U8 = 1i64;
let Test.124 : U8 = GetTagId Test.117;
let Test.125 : Int1 = lowlevel Eq Test.123 Test.124;
if Test.125 then
let Test.95 : I64 = UnionAtIndex (Id 1) (Index 0) Test.117;
let Test.119 : {List U8, I64} = Struct {Test.93, Test.95};
let Test.118 : [C Str, C {List U8, I64}] = TagId(1) Test.119;
ret Test.118;
else
dec Test.2;
let Test.24 : Str = "not a number";
let Test.22 : [C Str, C {List U8, I64}] = TagId(0) Test.24;
ret Test.22;
dec Test.93;
let Test.122 : Str = "not a number";
let Test.120 : [C Str, C {List U8, I64}] = TagId(0) Test.122;
ret Test.120;
else
dec Test.2;
dec Test.1;
let Test.30 : Str = "not a number";
let Test.28 : [C Str, C {List U8, I64}] = TagId(0) Test.30;
ret Test.28;
dec Test.93;
dec Test.92;
let Test.128 : Str = "not a number";
let Test.126 : [C Str, C {List U8, I64}] = TagId(0) Test.128;
ret Test.126;
procedure Test.12 ():
let Test.10 : [C Str, C {List U8, I64}] = CallByName Test.0;
let Test.17 : List U8 = Array [];
let Test.18 : I64 = -1234i64;
let Test.16 : {List U8, I64} = Struct {Test.17, Test.18};
let Test.15 : [C Str, C {List U8, I64}] = TagId(1) Test.16;
let Test.14 : Int1 = CallByName Bool.11 Test.10 Test.15;
dec Test.16;
expect Test.14;
dec Test.10;
let Test.13 : {} = Struct {};
ret Test.13;
procedure TotallyNotJson.491 (TotallyNotJson.492, TotallyNotJson.976):
joinpoint TotallyNotJson.1260:
inc TotallyNotJson.492;
let TotallyNotJson.1129 : {List U8, List U8} = CallByName TotallyNotJson.60 TotallyNotJson.492;
let TotallyNotJson.496 : List U8 = StructAtIndex 0 TotallyNotJson.1129;
let TotallyNotJson.495 : List U8 = StructAtIndex 1 TotallyNotJson.1129;
inc TotallyNotJson.495;
let TotallyNotJson.1125 : Int1 = CallByName List.1 TotallyNotJson.495;
if TotallyNotJson.1125 then
dec TotallyNotJson.495;
dec TotallyNotJson.496;
let TotallyNotJson.1128 : {} = Struct {};
let TotallyNotJson.1127 : [C {}, C Str] = TagId(0) TotallyNotJson.1128;
let TotallyNotJson.1126 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.492, TotallyNotJson.1127};
ret TotallyNotJson.1126;
else
let TotallyNotJson.1123 : U64 = CallByName List.6 TotallyNotJson.495;
let TotallyNotJson.1124 : U64 = 2i64;
let TotallyNotJson.1121 : U64 = CallByName Num.77 TotallyNotJson.1123 TotallyNotJson.1124;
let TotallyNotJson.1122 : U64 = 1i64;
let TotallyNotJson.1120 : {U64, U64} = Struct {TotallyNotJson.1121, TotallyNotJson.1122};
let TotallyNotJson.995 : List U8 = CallByName List.49 TotallyNotJson.495 TotallyNotJson.1120;
let TotallyNotJson.996 : {} = Struct {};
let TotallyNotJson.991 : {List U8, List U8} = CallByName TotallyNotJson.500 TotallyNotJson.995;
let TotallyNotJson.992 : {} = Struct {};
let TotallyNotJson.990 : List U8 = CallByName TotallyNotJson.502 TotallyNotJson.991;
let TotallyNotJson.499 : [C {U64, U8}, C Str] = CallByName Str.9 TotallyNotJson.990;
let TotallyNotJson.987 : U8 = 1i64;
let TotallyNotJson.988 : U8 = GetTagId TotallyNotJson.499;
let TotallyNotJson.989 : Int1 = lowlevel Eq TotallyNotJson.987 TotallyNotJson.988;
if TotallyNotJson.989 then
dec TotallyNotJson.492;
let TotallyNotJson.503 : Str = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.499;
let TotallyNotJson.983 : [C {}, C Str] = TagId(1) TotallyNotJson.503;
let TotallyNotJson.982 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.496, TotallyNotJson.983};
ret TotallyNotJson.982;
else
dec TotallyNotJson.499;
dec TotallyNotJson.496;
let TotallyNotJson.986 : {} = Struct {};
let TotallyNotJson.985 : [C {}, C Str] = TagId(0) TotallyNotJson.986;
let TotallyNotJson.984 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.492, TotallyNotJson.985};
ret TotallyNotJson.984;
in
let TotallyNotJson.1258 : U64 = lowlevel ListLenUsize TotallyNotJson.492;
let TotallyNotJson.1259 : U64 = 4i64;
let TotallyNotJson.1265 : Int1 = lowlevel NumGte TotallyNotJson.1258 TotallyNotJson.1259;
if TotallyNotJson.1265 then
let TotallyNotJson.1255 : U64 = 3i64;
let TotallyNotJson.1256 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1255;
let TotallyNotJson.1257 : U8 = 108i64;
let TotallyNotJson.1264 : Int1 = lowlevel Eq TotallyNotJson.1257 TotallyNotJson.1256;
if TotallyNotJson.1264 then
let TotallyNotJson.1252 : U64 = 2i64;
let TotallyNotJson.1253 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1252;
let TotallyNotJson.1254 : U8 = 108i64;
let TotallyNotJson.1263 : Int1 = lowlevel Eq TotallyNotJson.1254 TotallyNotJson.1253;
if TotallyNotJson.1263 then
let TotallyNotJson.1249 : U64 = 1i64;
let TotallyNotJson.1250 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1249;
let TotallyNotJson.1251 : U8 = 117i64;
let TotallyNotJson.1262 : Int1 = lowlevel Eq TotallyNotJson.1251 TotallyNotJson.1250;
if TotallyNotJson.1262 then
let TotallyNotJson.1246 : U64 = 0i64;
let TotallyNotJson.1247 : U8 = lowlevel ListGetUnsafe TotallyNotJson.492 TotallyNotJson.1246;
let TotallyNotJson.1248 : U8 = 110i64;
let TotallyNotJson.1261 : Int1 = lowlevel Eq TotallyNotJson.1248 TotallyNotJson.1247;
if TotallyNotJson.1261 then
let TotallyNotJson.981 : U64 = 4i64;
let TotallyNotJson.978 : List U8 = CallByName List.38 TotallyNotJson.492 TotallyNotJson.981;
let TotallyNotJson.980 : Str = "null";
let TotallyNotJson.979 : [C {}, C Str] = TagId(1) TotallyNotJson.980;
let TotallyNotJson.977 : {List U8, [C {}, C Str]} = Struct {TotallyNotJson.978, TotallyNotJson.979};
ret TotallyNotJson.977;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
else
jump TotallyNotJson.1260;
procedure TotallyNotJson.500 (TotallyNotJson.501):
let TotallyNotJson.1119 : List U8 = Array [];
let TotallyNotJson.998 : {List U8, List U8} = Struct {TotallyNotJson.501, TotallyNotJson.1119};
let TotallyNotJson.997 : {List U8, List U8} = CallByName TotallyNotJson.69 TotallyNotJson.998;
ret TotallyNotJson.997;
procedure TotallyNotJson.502 (TotallyNotJson.993):
let TotallyNotJson.994 : List U8 = StructAtIndex 1 TotallyNotJson.993;
let #Derived_gen.6 : List U8 = StructAtIndex 0 TotallyNotJson.993;
dec #Derived_gen.6;
ret TotallyNotJson.994;
procedure TotallyNotJson.59 ():
let TotallyNotJson.975 : {} = Struct {};
let TotallyNotJson.974 : {} = CallByName Decode.24 TotallyNotJson.975;
ret TotallyNotJson.974;
procedure TotallyNotJson.60 (TotallyNotJson.507):
let TotallyNotJson.1141 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(4) ;
let TotallyNotJson.1142 : {} = Struct {};
inc TotallyNotJson.507;
let TotallyNotJson.1130 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = CallByName List.26 TotallyNotJson.507 TotallyNotJson.1141 TotallyNotJson.1142;
let TotallyNotJson.1138 : U8 = 2i64;
let TotallyNotJson.1139 : U8 = GetTagId TotallyNotJson.1130;
let TotallyNotJson.1140 : Int1 = lowlevel Eq TotallyNotJson.1138 TotallyNotJson.1139;
if TotallyNotJson.1140 then
inc TotallyNotJson.507;
let TotallyNotJson.509 : U64 = UnionAtIndex (Id 2) (Index 0) TotallyNotJson.1130;
let TotallyNotJson.1132 : List U8 = CallByName List.38 TotallyNotJson.507 TotallyNotJson.509;
let TotallyNotJson.1135 : U64 = 0i64;
let TotallyNotJson.1134 : {U64, U64} = Struct {TotallyNotJson.509, TotallyNotJson.1135};
let TotallyNotJson.1133 : List U8 = CallByName List.49 TotallyNotJson.507 TotallyNotJson.1134;
let TotallyNotJson.1131 : {List U8, List U8} = Struct {TotallyNotJson.1132, TotallyNotJson.1133};
ret TotallyNotJson.1131;
else
let TotallyNotJson.1137 : List U8 = Array [];
let TotallyNotJson.1136 : {List U8, List U8} = Struct {TotallyNotJson.507, TotallyNotJson.1137};
ret TotallyNotJson.1136;
procedure TotallyNotJson.61 (TotallyNotJson.510, TotallyNotJson.511):
let TotallyNotJson.1143 : {[C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], U8} = Struct {TotallyNotJson.510, TotallyNotJson.511};
joinpoint TotallyNotJson.1186:
let TotallyNotJson.1184 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(3) ;
let TotallyNotJson.1183 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) TotallyNotJson.1184;
ret TotallyNotJson.1183;
in
let TotallyNotJson.1187 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.1245 : U8 = GetTagId TotallyNotJson.1187;
switch TotallyNotJson.1245:
case 4:
let TotallyNotJson.512 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1189 TotallyNotJson.1188:
if TotallyNotJson.1188 then
let TotallyNotJson.1146 : U64 = 1i64;
let TotallyNotJson.1145 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1146;
let TotallyNotJson.1144 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1145;
ret TotallyNotJson.1144;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1191 : U8 = 34i64;
let TotallyNotJson.1190 : Int1 = CallByName Bool.11 TotallyNotJson.512 TotallyNotJson.1191;
jump TotallyNotJson.1189 TotallyNotJson.1190;
case 0:
let TotallyNotJson.1202 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.515 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1202;
let TotallyNotJson.516 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1199 TotallyNotJson.1193:
if TotallyNotJson.1193 then
let TotallyNotJson.1150 : U64 = 1i64;
let TotallyNotJson.1149 : U64 = CallByName Num.19 TotallyNotJson.515 TotallyNotJson.1150;
let TotallyNotJson.1148 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(2) TotallyNotJson.1149;
let TotallyNotJson.1147 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) TotallyNotJson.1148;
ret TotallyNotJson.1147;
else
let TotallyNotJson.1198 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.519 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1198;
let TotallyNotJson.520 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1195 TotallyNotJson.1194:
if TotallyNotJson.1194 then
let TotallyNotJson.1154 : U64 = 1i64;
let TotallyNotJson.1153 : U64 = CallByName Num.19 TotallyNotJson.519 TotallyNotJson.1154;
let TotallyNotJson.1152 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(1) TotallyNotJson.1153;
let TotallyNotJson.1151 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1152;
ret TotallyNotJson.1151;
else
let TotallyNotJson.1185 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.523 : U64 = UnionAtIndex (Id 0) (Index 0) TotallyNotJson.1185;
let TotallyNotJson.1158 : U64 = 1i64;
let TotallyNotJson.1157 : U64 = CallByName Num.19 TotallyNotJson.523 TotallyNotJson.1158;
let TotallyNotJson.1156 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1157;
let TotallyNotJson.1155 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1156;
ret TotallyNotJson.1155;
in
let TotallyNotJson.1197 : U8 = 92i64;
let TotallyNotJson.1196 : Int1 = CallByName Bool.11 TotallyNotJson.520 TotallyNotJson.1197;
jump TotallyNotJson.1195 TotallyNotJson.1196;
in
let TotallyNotJson.1201 : U8 = 34i64;
let TotallyNotJson.1200 : Int1 = CallByName Bool.11 TotallyNotJson.516 TotallyNotJson.1201;
jump TotallyNotJson.1199 TotallyNotJson.1200;
case 1:
let TotallyNotJson.1211 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.526 : U64 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1211;
let TotallyNotJson.527 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1209 TotallyNotJson.1203:
if TotallyNotJson.1203 then
let TotallyNotJson.1162 : U64 = 1i64;
let TotallyNotJson.1161 : U64 = CallByName Num.19 TotallyNotJson.526 TotallyNotJson.1162;
let TotallyNotJson.1160 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1161;
let TotallyNotJson.1159 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1160;
ret TotallyNotJson.1159;
else
let TotallyNotJson.1208 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.530 : U64 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1208;
let TotallyNotJson.531 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1205 TotallyNotJson.1204:
if TotallyNotJson.1204 then
let TotallyNotJson.1166 : U64 = 1i64;
let TotallyNotJson.1165 : U64 = CallByName Num.19 TotallyNotJson.530 TotallyNotJson.1166;
let TotallyNotJson.1164 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(5) TotallyNotJson.1165;
let TotallyNotJson.1163 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1164;
ret TotallyNotJson.1163;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1207 : U8 = 117i64;
let TotallyNotJson.1206 : Int1 = CallByName Bool.11 TotallyNotJson.531 TotallyNotJson.1207;
jump TotallyNotJson.1205 TotallyNotJson.1206;
in
let TotallyNotJson.1210 : Int1 = CallByName TotallyNotJson.62 TotallyNotJson.527;
jump TotallyNotJson.1209 TotallyNotJson.1210;
case 5:
let TotallyNotJson.1232 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.534 : U64 = UnionAtIndex (Id 5) (Index 0) TotallyNotJson.1232;
let TotallyNotJson.535 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1213 TotallyNotJson.1212:
if TotallyNotJson.1212 then
let TotallyNotJson.1170 : U64 = 1i64;
let TotallyNotJson.1169 : U64 = CallByName Num.19 TotallyNotJson.534 TotallyNotJson.1170;
let TotallyNotJson.1168 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(6) TotallyNotJson.1169;
let TotallyNotJson.1167 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1168;
ret TotallyNotJson.1167;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1214 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.535;
jump TotallyNotJson.1213 TotallyNotJson.1214;
case 6:
let TotallyNotJson.1236 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.538 : U64 = UnionAtIndex (Id 6) (Index 0) TotallyNotJson.1236;
let TotallyNotJson.539 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1234 TotallyNotJson.1233:
if TotallyNotJson.1233 then
let TotallyNotJson.1174 : U64 = 1i64;
let TotallyNotJson.1173 : U64 = CallByName Num.19 TotallyNotJson.538 TotallyNotJson.1174;
let TotallyNotJson.1172 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(7) TotallyNotJson.1173;
let TotallyNotJson.1171 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1172;
ret TotallyNotJson.1171;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1235 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.539;
jump TotallyNotJson.1234 TotallyNotJson.1235;
case 7:
let TotallyNotJson.1240 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.542 : U64 = UnionAtIndex (Id 7) (Index 0) TotallyNotJson.1240;
let TotallyNotJson.543 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1238 TotallyNotJson.1237:
if TotallyNotJson.1237 then
let TotallyNotJson.1178 : U64 = 1i64;
let TotallyNotJson.1177 : U64 = CallByName Num.19 TotallyNotJson.542 TotallyNotJson.1178;
let TotallyNotJson.1176 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(8) TotallyNotJson.1177;
let TotallyNotJson.1175 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1176;
ret TotallyNotJson.1175;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1239 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.543;
jump TotallyNotJson.1238 TotallyNotJson.1239;
case 8:
let TotallyNotJson.1244 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = StructAtIndex 0 TotallyNotJson.1143;
let TotallyNotJson.546 : U64 = UnionAtIndex (Id 8) (Index 0) TotallyNotJson.1244;
let TotallyNotJson.547 : U8 = StructAtIndex 1 TotallyNotJson.1143;
joinpoint TotallyNotJson.1242 TotallyNotJson.1241:
if TotallyNotJson.1241 then
let TotallyNotJson.1182 : U64 = 1i64;
let TotallyNotJson.1181 : U64 = CallByName Num.19 TotallyNotJson.546 TotallyNotJson.1182;
let TotallyNotJson.1180 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = TagId(0) TotallyNotJson.1181;
let TotallyNotJson.1179 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) TotallyNotJson.1180;
ret TotallyNotJson.1179;
else
jump TotallyNotJson.1186;
in
let TotallyNotJson.1243 : Int1 = CallByName TotallyNotJson.64 TotallyNotJson.547;
jump TotallyNotJson.1242 TotallyNotJson.1243;
default:
jump TotallyNotJson.1186;
procedure TotallyNotJson.62 (TotallyNotJson.552):
switch TotallyNotJson.552:
case 34:
let TotallyNotJson.1087 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1087;
case 92:
let TotallyNotJson.1088 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1088;
case 47:
let TotallyNotJson.1089 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1089;
case 98:
let TotallyNotJson.1090 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1090;
case 102:
let TotallyNotJson.1091 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1091;
case 110:
let TotallyNotJson.1092 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1092;
case 114:
let TotallyNotJson.1093 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1093;
case 116:
let TotallyNotJson.1094 : Int1 = CallByName Bool.2;
ret TotallyNotJson.1094;
default:
let TotallyNotJson.1095 : Int1 = CallByName Bool.1;
ret TotallyNotJson.1095;
procedure TotallyNotJson.63 (TotallyNotJson.553):
switch TotallyNotJson.553:
case 34:
let TotallyNotJson.1064 : U8 = 34i64;
ret TotallyNotJson.1064;
case 92:
let TotallyNotJson.1065 : U8 = 92i64;
ret TotallyNotJson.1065;
case 47:
let TotallyNotJson.1066 : U8 = 47i64;
ret TotallyNotJson.1066;
case 98:
let TotallyNotJson.1067 : U8 = 8i64;
ret TotallyNotJson.1067;
case 102:
let TotallyNotJson.1068 : U8 = 12i64;
ret TotallyNotJson.1068;
case 110:
let TotallyNotJson.1069 : U8 = 10i64;
ret TotallyNotJson.1069;
case 114:
let TotallyNotJson.1070 : U8 = 13i64;
ret TotallyNotJson.1070;
case 116:
let TotallyNotJson.1071 : U8 = 9i64;
ret TotallyNotJson.1071;
default:
ret TotallyNotJson.553;
procedure TotallyNotJson.64 (TotallyNotJson.554):
let TotallyNotJson.1231 : U8 = 48i64;
let TotallyNotJson.1228 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1231;
let TotallyNotJson.1230 : U8 = 57i64;
let TotallyNotJson.1229 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1230;
let TotallyNotJson.1216 : Int1 = CallByName Bool.3 TotallyNotJson.1228 TotallyNotJson.1229;
let TotallyNotJson.1227 : U8 = 97i64;
let TotallyNotJson.1224 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1227;
let TotallyNotJson.1226 : U8 = 102i64;
let TotallyNotJson.1225 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1226;
let TotallyNotJson.1218 : Int1 = CallByName Bool.3 TotallyNotJson.1224 TotallyNotJson.1225;
let TotallyNotJson.1223 : U8 = 65i64;
let TotallyNotJson.1220 : Int1 = CallByName Num.25 TotallyNotJson.554 TotallyNotJson.1223;
let TotallyNotJson.1222 : U8 = 70i64;
let TotallyNotJson.1221 : Int1 = CallByName Num.23 TotallyNotJson.554 TotallyNotJson.1222;
let TotallyNotJson.1219 : Int1 = CallByName Bool.3 TotallyNotJson.1220 TotallyNotJson.1221;
let TotallyNotJson.1217 : Int1 = CallByName Bool.4 TotallyNotJson.1218 TotallyNotJson.1219;
let TotallyNotJson.1215 : Int1 = CallByName Bool.4 TotallyNotJson.1216 TotallyNotJson.1217;
ret TotallyNotJson.1215;
procedure TotallyNotJson.65 (TotallyNotJson.555):
let TotallyNotJson.1043 : U8 = 48i64;
let TotallyNotJson.1040 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1043;
let TotallyNotJson.1042 : U8 = 57i64;
let TotallyNotJson.1041 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1042;
let TotallyNotJson.1037 : Int1 = CallByName Bool.3 TotallyNotJson.1040 TotallyNotJson.1041;
if TotallyNotJson.1037 then
let TotallyNotJson.1039 : U8 = 48i64;
let TotallyNotJson.1038 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1039;
ret TotallyNotJson.1038;
else
let TotallyNotJson.1036 : U8 = 97i64;
let TotallyNotJson.1033 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1036;
let TotallyNotJson.1035 : U8 = 102i64;
let TotallyNotJson.1034 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1035;
let TotallyNotJson.1028 : Int1 = CallByName Bool.3 TotallyNotJson.1033 TotallyNotJson.1034;
if TotallyNotJson.1028 then
let TotallyNotJson.1032 : U8 = 97i64;
let TotallyNotJson.1030 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1032;
let TotallyNotJson.1031 : U8 = 10i64;
let TotallyNotJson.1029 : U8 = CallByName Num.19 TotallyNotJson.1030 TotallyNotJson.1031;
ret TotallyNotJson.1029;
else
let TotallyNotJson.1027 : U8 = 65i64;
let TotallyNotJson.1024 : Int1 = CallByName Num.25 TotallyNotJson.555 TotallyNotJson.1027;
let TotallyNotJson.1026 : U8 = 70i64;
let TotallyNotJson.1025 : Int1 = CallByName Num.23 TotallyNotJson.555 TotallyNotJson.1026;
let TotallyNotJson.1019 : Int1 = CallByName Bool.3 TotallyNotJson.1024 TotallyNotJson.1025;
if TotallyNotJson.1019 then
let TotallyNotJson.1023 : U8 = 65i64;
let TotallyNotJson.1021 : U8 = CallByName Num.20 TotallyNotJson.555 TotallyNotJson.1023;
let TotallyNotJson.1022 : U8 = 10i64;
let TotallyNotJson.1020 : U8 = CallByName Num.19 TotallyNotJson.1021 TotallyNotJson.1022;
ret TotallyNotJson.1020;
else
let TotallyNotJson.1018 : Str = "got an invalid hex char";
Crash TotallyNotJson.1018
procedure TotallyNotJson.66 (TotallyNotJson.556, TotallyNotJson.557):
let TotallyNotJson.1009 : U8 = 4i64;
let TotallyNotJson.1008 : U8 = CallByName Num.72 TotallyNotJson.556 TotallyNotJson.1009;
let TotallyNotJson.1007 : U8 = CallByName Num.71 TotallyNotJson.1008 TotallyNotJson.557;
ret TotallyNotJson.1007;
procedure TotallyNotJson.67 (TotallyNotJson.558, TotallyNotJson.559, TotallyNotJson.560, TotallyNotJson.561):
let TotallyNotJson.562 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.558;
let TotallyNotJson.563 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.559;
let TotallyNotJson.564 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.560;
let TotallyNotJson.565 : U8 = CallByName TotallyNotJson.65 TotallyNotJson.561;
let TotallyNotJson.1016 : U8 = 0i64;
let TotallyNotJson.1013 : Int1 = CallByName Bool.11 TotallyNotJson.562 TotallyNotJson.1016;
let TotallyNotJson.1015 : U8 = 0i64;
let TotallyNotJson.1014 : Int1 = CallByName Bool.11 TotallyNotJson.563 TotallyNotJson.1015;
let TotallyNotJson.1010 : Int1 = CallByName Bool.3 TotallyNotJson.1013 TotallyNotJson.1014;
if TotallyNotJson.1010 then
let TotallyNotJson.1012 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.564 TotallyNotJson.565;
let TotallyNotJson.1011 : List U8 = Array [TotallyNotJson.1012];
ret TotallyNotJson.1011;
else
let TotallyNotJson.1005 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.562 TotallyNotJson.563;
let TotallyNotJson.1006 : U8 = CallByName TotallyNotJson.66 TotallyNotJson.564 TotallyNotJson.565;
let TotallyNotJson.1004 : List U8 = Array [TotallyNotJson.1005, TotallyNotJson.1006];
ret TotallyNotJson.1004;
procedure TotallyNotJson.68 ():
let TotallyNotJson.1049 : U8 = 102i64;
let TotallyNotJson.1050 : U8 = 102i64;
let TotallyNotJson.1051 : U8 = 100i64;
let TotallyNotJson.1052 : U8 = 100i64;
let TotallyNotJson.1048 : List U8 = CallByName TotallyNotJson.67 TotallyNotJson.1049 TotallyNotJson.1050 TotallyNotJson.1051 TotallyNotJson.1052;
ret TotallyNotJson.1048;
procedure TotallyNotJson.69 (#Derived_gen.5):
joinpoint TotallyNotJson.999 TotallyNotJson.970:
let TotallyNotJson.566 : List U8 = StructAtIndex 0 TotallyNotJson.970;
inc 4 TotallyNotJson.566;
let TotallyNotJson.567 : List U8 = StructAtIndex 1 TotallyNotJson.970;
let TotallyNotJson.1118 : U64 = 0i64;
let TotallyNotJson.568 : [C {}, C U8] = CallByName List.2 TotallyNotJson.566 TotallyNotJson.1118;
let TotallyNotJson.1117 : U64 = 1i64;
let TotallyNotJson.569 : [C {}, C U8] = CallByName List.2 TotallyNotJson.566 TotallyNotJson.1117;
let TotallyNotJson.1116 : U64 = 2i64;
let TotallyNotJson.570 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1116;
let TotallyNotJson.1115 : U64 = 6i64;
let TotallyNotJson.571 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1115;
let TotallyNotJson.1000 : {[C {}, C U8], [C {}, C U8]} = Struct {TotallyNotJson.568, TotallyNotJson.569};
joinpoint TotallyNotJson.1080:
let TotallyNotJson.1079 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.582 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1079;
let TotallyNotJson.1077 : U64 = 1i64;
let TotallyNotJson.1075 : List U8 = CallByName List.38 TotallyNotJson.566 TotallyNotJson.1077;
let TotallyNotJson.1076 : List U8 = CallByName List.4 TotallyNotJson.567 TotallyNotJson.582;
let TotallyNotJson.1074 : {List U8, List U8} = Struct {TotallyNotJson.1075, TotallyNotJson.1076};
jump TotallyNotJson.999 TotallyNotJson.1074;
in
let TotallyNotJson.1111 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.1112 : U8 = 1i64;
let TotallyNotJson.1113 : U8 = GetTagId TotallyNotJson.1111;
let TotallyNotJson.1114 : Int1 = lowlevel Eq TotallyNotJson.1112 TotallyNotJson.1113;
if TotallyNotJson.1114 then
let TotallyNotJson.1107 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.1108 : U8 = 1i64;
let TotallyNotJson.1109 : U8 = GetTagId TotallyNotJson.1107;
let TotallyNotJson.1110 : Int1 = lowlevel Eq TotallyNotJson.1108 TotallyNotJson.1109;
if TotallyNotJson.1110 then
let TotallyNotJson.1106 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.573 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1106;
let TotallyNotJson.1105 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.574 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1105;
joinpoint TotallyNotJson.1099 TotallyNotJson.1081:
if TotallyNotJson.1081 then
dec TotallyNotJson.566;
let TotallyNotJson.1057 : U64 = lowlevel ListLenUsize TotallyNotJson.570;
let TotallyNotJson.1058 : U64 = 4i64;
let TotallyNotJson.1059 : Int1 = lowlevel NumGte TotallyNotJson.1057 TotallyNotJson.1058;
if TotallyNotJson.1059 then
let TotallyNotJson.1056 : U64 = 0i64;
let TotallyNotJson.575 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1056;
let TotallyNotJson.1055 : U64 = 1i64;
let TotallyNotJson.576 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1055;
let TotallyNotJson.1054 : U64 = 2i64;
let TotallyNotJson.577 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1054;
let TotallyNotJson.1053 : U64 = 3i64;
let TotallyNotJson.578 : U8 = lowlevel ListGetUnsafe TotallyNotJson.570 TotallyNotJson.1053;
dec TotallyNotJson.570;
let TotallyNotJson.579 : List U8 = CallByName TotallyNotJson.67 TotallyNotJson.575 TotallyNotJson.576 TotallyNotJson.577 TotallyNotJson.578;
let TotallyNotJson.1003 : List U8 = CallByName List.8 TotallyNotJson.567 TotallyNotJson.579;
let TotallyNotJson.1002 : {List U8, List U8} = Struct {TotallyNotJson.571, TotallyNotJson.1003};
jump TotallyNotJson.999 TotallyNotJson.1002;
else
dec TotallyNotJson.571;
let TotallyNotJson.1047 : List U8 = CallByName TotallyNotJson.68;
let TotallyNotJson.1046 : List U8 = CallByName List.8 TotallyNotJson.567 TotallyNotJson.1047;
let TotallyNotJson.1045 : {List U8, List U8} = Struct {TotallyNotJson.570, TotallyNotJson.1046};
jump TotallyNotJson.999 TotallyNotJson.1045;
else
dec TotallyNotJson.571;
let TotallyNotJson.1098 : [C {}, C U8] = StructAtIndex 0 TotallyNotJson.1000;
let TotallyNotJson.580 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1098;
let TotallyNotJson.1097 : [C {}, C U8] = StructAtIndex 1 TotallyNotJson.1000;
let TotallyNotJson.581 : U8 = UnionAtIndex (Id 1) (Index 0) TotallyNotJson.1097;
joinpoint TotallyNotJson.1083 TotallyNotJson.1082:
if TotallyNotJson.1082 then
dec TotallyNotJson.566;
let TotallyNotJson.1063 : U8 = CallByName TotallyNotJson.63 TotallyNotJson.581;
let TotallyNotJson.1062 : List U8 = CallByName List.4 TotallyNotJson.567 TotallyNotJson.1063;
let TotallyNotJson.1061 : {List U8, List U8} = Struct {TotallyNotJson.570, TotallyNotJson.1062};
jump TotallyNotJson.999 TotallyNotJson.1061;
else
dec TotallyNotJson.570;
jump TotallyNotJson.1080;
in
let TotallyNotJson.1096 : U8 = 92i64;
let TotallyNotJson.1085 : Int1 = CallByName Bool.11 TotallyNotJson.580 TotallyNotJson.1096;
let TotallyNotJson.1086 : Int1 = CallByName TotallyNotJson.62 TotallyNotJson.581;
let TotallyNotJson.1084 : Int1 = CallByName Bool.3 TotallyNotJson.1085 TotallyNotJson.1086;
jump TotallyNotJson.1083 TotallyNotJson.1084;
in
let TotallyNotJson.1104 : U8 = 92i64;
let TotallyNotJson.1101 : Int1 = CallByName Bool.11 TotallyNotJson.573 TotallyNotJson.1104;
let TotallyNotJson.1103 : U8 = 117i64;
let TotallyNotJson.1102 : Int1 = CallByName Bool.11 TotallyNotJson.574 TotallyNotJson.1103;
let TotallyNotJson.1100 : Int1 = CallByName Bool.3 TotallyNotJson.1101 TotallyNotJson.1102;
jump TotallyNotJson.1099 TotallyNotJson.1100;
else
dec TotallyNotJson.571;
dec TotallyNotJson.570;
jump TotallyNotJson.1080;
else
dec TotallyNotJson.571;
dec TotallyNotJson.570;
let TotallyNotJson.1078 : {List U8, List U8} = Struct {TotallyNotJson.566, TotallyNotJson.567};
ret TotallyNotJson.1078;
in
jump TotallyNotJson.999 #Derived_gen.5;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.76 (Test.77, Test.138):
let Test.141 : {} = Struct {};
let Test.140 : [C {}, C Str] = TagId(0) Test.141;
let Test.139 : {List U8, [C {}, C Str]} = Struct {Test.77, Test.140};
ret Test.139;

View File

@ -12,483 +12,198 @@ procedure Encode.23 (Encode.98):
ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.111 : List U8 = CallByName Test.5 Encode.99 Encode.101 Encode.107;
let Encode.111 : List U8 = CallByName Test.213 Encode.99 Encode.101 Encode.107;
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.231 Encode.99 Encode.101 Encode.107;
ret Encode.113;
let Encode.115 : List U8 = CallByName Test.63 Encode.99 Encode.101 Encode.107;
ret Encode.115;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName TotallyNotJson.150 Encode.99 Encode.101 Encode.107;
ret Encode.118;
let Encode.116 : List U8 = CallByName Test.59 Encode.99 Encode.101 Encode.107;
ret Encode.116;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
let Encode.110 : {Str, Str} = CallByName Test.2 Encode.105;
let Encode.110 : {Str, Str} = CallByName Test.49 Encode.105;
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.104 (List.488, List.489, List.490):
let List.657 : U64 = 0i64;
let List.658 : U64 = CallByName List.6 List.488;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.488 List.489 List.490 List.657 List.658;
ret List.656;
procedure List.18 (List.160, List.161, List.162):
let List.601 : U64 = 0i64;
let List.602 : U64 = CallByName List.6 List.160;
let List.600 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.601 List.602;
procedure List.13 (#Attr.2, #Attr.3):
let List.600 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.600;
procedure List.18 (List.160, List.161, List.162):
let List.613 : U64 = 0i64;
let List.614 : U64 = CallByName List.6 List.160;
let List.612 : List U8 = CallByName List.92 List.160 List.161 List.162 List.613 List.614;
ret List.612;
procedure List.26 (List.201, List.202, List.203):
let List.650 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.104 List.201 List.202 List.203;
let List.653 : U8 = 1i64;
let List.654 : U8 = GetTagId List.650;
let List.655 : Int1 = lowlevel Eq List.653 List.654;
if List.655 then
let List.204 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.650;
ret List.204;
else
let List.205 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.650;
ret List.205;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.4 (List.124, List.125):
let List.599 : U64 = 1i64;
let List.598 : List U8 = CallByName List.70 List.124 List.599;
let List.597 : List U8 = CallByName List.71 List.598 List.125;
ret List.597;
procedure List.49 (List.420, List.421):
let List.641 : U64 = StructAtIndex 1 List.421;
let List.642 : U64 = StructAtIndex 0 List.421;
let List.640 : List U8 = CallByName List.72 List.420 List.641 List.642;
ret List.640;
procedure List.52 (List.435, List.436):
let List.437 : U64 = CallByName List.6 List.435;
joinpoint List.648 List.438:
let List.646 : U64 = 0i64;
let List.645 : {U64, U64} = Struct {List.438, List.646};
inc List.435;
let List.439 : List U8 = CallByName List.49 List.435 List.645;
let List.644 : U64 = CallByName Num.75 List.437 List.438;
let List.639 : {U64, U64} = Struct {List.644, List.438};
let List.440 : List U8 = CallByName List.49 List.435 List.639;
let List.638 : {List U8, List U8} = Struct {List.439, List.440};
ret List.638;
in
let List.649 : Int1 = CallByName Num.24 List.437 List.436;
if List.649 then
jump List.648 List.436;
else
jump List.648 List.437;
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.124 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.125;
ret List.594;
procedure List.6 (#Attr.2):
let List.624 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.624;
procedure List.6 (#Attr.2):
let List.626 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.626;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.66 (#Attr.2, #Attr.3):
let List.610 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.610;
procedure List.66 (#Attr.2, #Attr.3):
let List.622 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.622;
procedure List.68 (#Attr.2):
let List.637 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.637;
let List.584 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.70 (#Attr.2, #Attr.3):
let List.578 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.578;
let List.590 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.590;
procedure List.71 (#Attr.2, #Attr.3):
let List.576 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.643 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.643;
let List.588 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.588;
procedure List.8 (#Attr.2, #Attr.3):
let List.635 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.635;
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.80 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
joinpoint List.659 List.491 List.492 List.493 List.494 List.495:
let List.661 : Int1 = CallByName Num.22 List.494 List.495;
if List.661 then
let List.670 : U8 = CallByName List.66 List.491 List.494;
let List.662 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.492 List.670;
let List.667 : U8 = 1i64;
let List.668 : U8 = GetTagId List.662;
let List.669 : Int1 = lowlevel Eq List.667 List.668;
if List.669 then
let List.496 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.662;
let List.665 : U64 = 1i64;
let List.664 : U64 = CallByName Num.51 List.494 List.665;
jump List.659 List.491 List.496 List.493 List.664 List.495;
else
dec List.491;
let List.497 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.662;
let List.666 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.497;
ret List.666;
else
dec List.491;
let List.660 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.492;
ret List.660;
in
jump List.659 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
procedure List.92 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.615 List.163 List.164 List.165 List.166 List.167:
let List.617 : Int1 = CallByName Num.22 List.166 List.167;
if List.617 then
let List.621 : U8 = CallByName List.66 List.163 List.166;
let List.168 : List U8 = CallByName TotallyNotJson.183 List.164 List.621;
let List.620 : U64 = 1i64;
let List.619 : U64 = CallByName Num.51 List.166 List.620;
jump List.615 List.163 List.168 List.165 List.619 List.167;
procedure List.92 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : Str = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.66 List.164 List.583 List.165;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.615 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure List.92 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.603 List.163 List.164 List.165 List.166 List.167:
let List.605 : Int1 = CallByName Num.22 List.166 List.167;
if List.605 then
let List.609 : Str = CallByName List.66 List.163 List.166;
inc List.609;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.233 List.164 List.609;
let List.608 : U64 = 1i64;
let List.607 : U64 = CallByName Num.51 List.166 List.608;
jump List.603 List.163 List.168 List.165 List.607 List.167;
else
dec List.163;
ret List.164;
in
jump List.603 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
jump List.577 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.127 (#Attr.2):
let Num.286 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.286;
procedure Num.137 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumDivCeilUnchecked #Attr.2 #Attr.3;
ret Num.291;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.290;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.287 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.287;
procedure Num.21 (#Attr.2, #Attr.3):
let Num.292 : U64 = lowlevel NumMul #Attr.2 #Attr.3;
ret Num.292;
let Num.280 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.280;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.298 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.298;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.300;
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.282;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.295 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.295;
let Num.281 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.281;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.299 : U64 = lowlevel NumSubWrap #Attr.2 #Attr.3;
ret Num.299;
procedure Num.96 (#Attr.2):
let Num.279 : Str = lowlevel NumToStr #Attr.2;
ret Num.279;
procedure Str.12 (#Attr.2):
let Str.233 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.233;
procedure Test.2 (Test.10):
let Test.15 : {Str, Str} = CallByName Encode.23 Test.10;
ret Test.15;
procedure Str.36 (#Attr.2):
let Str.234 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.234;
procedure Test.20 (Test.58):
let Test.295 : Str = CallByName Encode.23 Test.58;
ret Test.295;
procedure Test.21 (Test.61, Test.62):
let Test.275 : {List Str, {}} = Struct {Test.61, Test.62};
let Test.274 : {List Str, {}} = CallByName Encode.23 Test.275;
ret Test.274;
procedure Test.213 (Test.214, Test.215, Test.212):
joinpoint Test.267 Test.216:
let Test.265 : List U8 = CallByName Encode.24 Test.214 Test.216 Test.215;
ret Test.265;
in
let Test.308 : Int1 = CallByName Bool.2;
if Test.308 then
let Test.309 : Str = "A";
let Test.312 : Str = StructAtIndex 0 Test.212;
let #Derived_gen.17 : Str = StructAtIndex 1 Test.212;
dec #Derived_gen.17;
let Test.311 : Str = CallByName Test.20 Test.312;
let Test.310 : List Str = Array [Test.311];
let Test.266 : {List Str, {}} = CallByName Test.24 Test.309 Test.310;
jump Test.267 Test.266;
else
let Test.268 : Str = "B";
let Test.307 : Str = StructAtIndex 1 Test.212;
let #Derived_gen.18 : Str = StructAtIndex 0 Test.212;
dec #Derived_gen.18;
let Test.306 : Str = CallByName Test.20 Test.307;
let Test.269 : List Str = Array [Test.306];
let Test.266 : {List Str, {}} = CallByName Test.24 Test.268 Test.269;
jump Test.267 Test.266;
procedure Test.23 (Test.77):
let Test.273 : {} = Struct {};
let Test.272 : {List Str, {}} = CallByName Test.21 Test.77 Test.273;
ret Test.272;
procedure Test.24 (Test.80, Test.81):
let Test.294 : Str = CallByName Test.20 Test.80;
let Test.271 : List Str = CallByName List.13 Test.81 Test.294;
let Test.270 : {List Str, {}} = CallByName Test.23 Test.271;
ret Test.270;
procedure Test.3 ():
let Test.9 : Str = "";
inc Test.9;
let Test.14 : {Str, Str} = Struct {Test.9, Test.9};
ret Test.14;
let Test.260 : {} = Struct {};
ret Test.260;
procedure Test.5 (Test.6, Test.7, Test.4):
joinpoint Test.20 Test.8:
let Test.18 : List U8 = CallByName Encode.24 Test.6 Test.8 Test.7;
ret Test.18;
in
let Test.25 : Int1 = CallByName Bool.2;
if Test.25 then
let Test.26 : Str = "A";
let Test.29 : Str = StructAtIndex 0 Test.4;
let #Derived_gen.24 : Str = StructAtIndex 1 Test.4;
dec #Derived_gen.24;
let Test.28 : Str = CallByName TotallyNotJson.25 Test.29;
let Test.27 : List Str = Array [Test.28];
let Test.19 : {Str, List Str} = CallByName TotallyNotJson.31 Test.26 Test.27;
jump Test.20 Test.19;
else
let Test.21 : Str = "B";
let Test.24 : Str = StructAtIndex 1 Test.4;
let #Derived_gen.25 : Str = StructAtIndex 0 Test.4;
dec #Derived_gen.25;
let Test.23 : Str = CallByName TotallyNotJson.25 Test.24;
let Test.22 : List Str = Array [Test.23];
let Test.19 : {Str, List Str} = CallByName TotallyNotJson.31 Test.21 Test.22;
jump Test.20 Test.19;
procedure Test.4 (Test.51, Test.52, Test.53):
let Test.292 : U8 = CallByName Num.127 Test.52;
let Test.289 : List U8 = CallByName List.4 Test.51 Test.292;
let Test.291 : Str = CallByName Num.96 Test.53;
let Test.290 : List U8 = CallByName Str.12 Test.291;
let Test.287 : List U8 = CallByName List.8 Test.289 Test.290;
let Test.288 : U8 = 32i64;
let Test.286 : List U8 = CallByName List.4 Test.287 Test.288;
ret Test.286;
procedure TotallyNotJson.150 (TotallyNotJson.151, TotallyNotJson.1020, TotallyNotJson.149):
let TotallyNotJson.1023 : List U8 = CallByName TotallyNotJson.26 TotallyNotJson.149;
let TotallyNotJson.1022 : List U8 = CallByName List.8 TotallyNotJson.151 TotallyNotJson.1023;
ret TotallyNotJson.1022;
procedure Test.49 (Test.255):
let Test.262 : {Str, Str} = CallByName Encode.23 Test.255;
ret Test.262;
procedure TotallyNotJson.157 (TotallyNotJson.1071, TotallyNotJson.160):
let TotallyNotJson.158 : U64 = StructAtIndex 0 TotallyNotJson.1071;
let TotallyNotJson.159 : Int1 = StructAtIndex 1 TotallyNotJson.1071;
switch TotallyNotJson.160:
case 34:
let TotallyNotJson.1074 : Int1 = false;
let TotallyNotJson.1073 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1074};
let TotallyNotJson.1072 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1073;
ret TotallyNotJson.1072;
case 92:
let TotallyNotJson.1077 : Int1 = false;
let TotallyNotJson.1076 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1077};
let TotallyNotJson.1075 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1076;
ret TotallyNotJson.1075;
case 47:
let TotallyNotJson.1080 : Int1 = false;
let TotallyNotJson.1079 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1080};
let TotallyNotJson.1078 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1079;
ret TotallyNotJson.1078;
case 8:
let TotallyNotJson.1083 : Int1 = false;
let TotallyNotJson.1082 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1083};
let TotallyNotJson.1081 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1082;
ret TotallyNotJson.1081;
case 12:
let TotallyNotJson.1086 : Int1 = false;
let TotallyNotJson.1085 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1086};
let TotallyNotJson.1084 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1085;
ret TotallyNotJson.1084;
case 10:
let TotallyNotJson.1089 : Int1 = false;
let TotallyNotJson.1088 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1089};
let TotallyNotJson.1087 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1088;
ret TotallyNotJson.1087;
case 13:
let TotallyNotJson.1092 : Int1 = false;
let TotallyNotJson.1091 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1092};
let TotallyNotJson.1090 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1091;
ret TotallyNotJson.1090;
case 9:
let TotallyNotJson.1095 : Int1 = false;
let TotallyNotJson.1094 : {U64, Int1} = Struct {TotallyNotJson.158, TotallyNotJson.1095};
let TotallyNotJson.1093 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) TotallyNotJson.1094;
ret TotallyNotJson.1093;
default:
let TotallyNotJson.1099 : U64 = 1i64;
let TotallyNotJson.1098 : U64 = CallByName Num.19 TotallyNotJson.158 TotallyNotJson.1099;
let TotallyNotJson.1097 : {U64, Int1} = Struct {TotallyNotJson.1098, TotallyNotJson.159};
let TotallyNotJson.1096 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) TotallyNotJson.1097;
ret TotallyNotJson.1096;
procedure Test.50 ():
let Test.217 : Str = "";
inc Test.217;
let Test.261 : {Str, Str} = Struct {Test.217, Test.217};
ret Test.261;
procedure TotallyNotJson.183 (TotallyNotJson.184, TotallyNotJson.185):
let TotallyNotJson.1042 : List U8 = CallByName TotallyNotJson.27 TotallyNotJson.185;
let TotallyNotJson.1041 : List U8 = CallByName List.8 TotallyNotJson.184 TotallyNotJson.1042;
ret TotallyNotJson.1041;
procedure Test.59 (Test.60, Test.297, Test.58):
let Test.304 : I64 = 115i64;
let Test.305 : U64 = CallByName Str.36 Test.58;
let Test.302 : List U8 = CallByName Test.4 Test.60 Test.304 Test.305;
let Test.303 : List U8 = CallByName Str.12 Test.58;
let Test.300 : List U8 = CallByName List.8 Test.302 Test.303;
let Test.301 : U8 = 32i64;
let Test.299 : List U8 = CallByName List.4 Test.300 Test.301;
ret Test.299;
procedure TotallyNotJson.231 (TotallyNotJson.232, TotallyNotJson.976, #Attr.12):
let TotallyNotJson.230 : List Str = StructAtIndex 1 #Attr.12;
let TotallyNotJson.229 : Str = StructAtIndex 0 #Attr.12;
let TotallyNotJson.1014 : I64 = 123i64;
let TotallyNotJson.1013 : U8 = CallByName Num.127 TotallyNotJson.1014;
let TotallyNotJson.1010 : List U8 = CallByName List.4 TotallyNotJson.232 TotallyNotJson.1013;
let TotallyNotJson.1012 : I64 = 34i64;
let TotallyNotJson.1011 : U8 = CallByName Num.127 TotallyNotJson.1012;
let TotallyNotJson.1008 : List U8 = CallByName List.4 TotallyNotJson.1010 TotallyNotJson.1011;
let TotallyNotJson.1009 : List U8 = CallByName Str.12 TotallyNotJson.229;
let TotallyNotJson.1005 : List U8 = CallByName List.8 TotallyNotJson.1008 TotallyNotJson.1009;
let TotallyNotJson.1007 : I64 = 34i64;
let TotallyNotJson.1006 : U8 = CallByName Num.127 TotallyNotJson.1007;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.1005 TotallyNotJson.1006;
let TotallyNotJson.1004 : I64 = 58i64;
let TotallyNotJson.1003 : U8 = CallByName Num.127 TotallyNotJson.1004;
let TotallyNotJson.999 : List U8 = CallByName List.4 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 91i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.234 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : U64 = CallByName List.6 TotallyNotJson.230;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.234, TotallyNotJson.998};
let TotallyNotJson.987 : {} = Struct {};
let TotallyNotJson.985 : {List U8, U64} = CallByName List.18 TotallyNotJson.230 TotallyNotJson.986 TotallyNotJson.987;
let TotallyNotJson.236 : List U8 = StructAtIndex 0 TotallyNotJson.985;
let TotallyNotJson.984 : I64 = 93i64;
let TotallyNotJson.983 : U8 = CallByName Num.127 TotallyNotJson.984;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.236 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.979 : List U8 = CallByName List.4 TotallyNotJson.980 TotallyNotJson.981;
ret TotallyNotJson.979;
procedure Test.63 (Test.64, Test.276, #Attr.12):
let Test.62 : {} = StructAtIndex 1 #Attr.12;
let Test.61 : List Str = StructAtIndex 0 #Attr.12;
let Test.284 : I64 = 108i64;
let Test.285 : U64 = CallByName List.6 Test.61;
let Test.65 : List U8 = CallByName Test.4 Test.64 Test.284 Test.285;
let Test.278 : List U8 = CallByName List.18 Test.61 Test.65 Test.62;
ret Test.278;
procedure TotallyNotJson.233 (TotallyNotJson.978, TotallyNotJson.239):
let TotallyNotJson.237 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.238 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.997 : {} = Struct {};
let TotallyNotJson.240 : List U8 = CallByName Encode.24 TotallyNotJson.237 TotallyNotJson.239 TotallyNotJson.997;
joinpoint TotallyNotJson.992 TotallyNotJson.241:
let TotallyNotJson.990 : U64 = 1i64;
let TotallyNotJson.989 : U64 = CallByName Num.20 TotallyNotJson.238 TotallyNotJson.990;
let TotallyNotJson.988 : {List U8, U64} = Struct {TotallyNotJson.241, TotallyNotJson.989};
ret TotallyNotJson.988;
in
let TotallyNotJson.996 : U64 = 1i64;
let TotallyNotJson.993 : Int1 = CallByName Num.24 TotallyNotJson.238 TotallyNotJson.996;
if TotallyNotJson.993 then
let TotallyNotJson.995 : I64 = 44i64;
let TotallyNotJson.994 : U8 = CallByName Num.127 TotallyNotJson.995;
let TotallyNotJson.991 : List U8 = CallByName List.4 TotallyNotJson.240 TotallyNotJson.994;
jump TotallyNotJson.992 TotallyNotJson.991;
else
jump TotallyNotJson.992 TotallyNotJson.240;
procedure Test.66 (Test.67, Test.68, Test.62):
let Test.282 : Str = CallByName Test.78 Test.68;
let Test.283 : {} = Struct {};
let Test.281 : List U8 = CallByName Encode.24 Test.67 Test.282 Test.283;
ret Test.281;
procedure TotallyNotJson.25 (TotallyNotJson.149):
let TotallyNotJson.1102 : Str = CallByName Encode.23 TotallyNotJson.149;
ret TotallyNotJson.1102;
procedure TotallyNotJson.26 (TotallyNotJson.152):
let TotallyNotJson.153 : List U8 = CallByName Str.12 TotallyNotJson.152;
let TotallyNotJson.1100 : U64 = 0i64;
let TotallyNotJson.1101 : Int1 = true;
let TotallyNotJson.154 : {U64, Int1} = Struct {TotallyNotJson.1100, TotallyNotJson.1101};
let TotallyNotJson.1070 : {} = Struct {};
inc TotallyNotJson.153;
let TotallyNotJson.155 : {U64, Int1} = CallByName List.26 TotallyNotJson.153 TotallyNotJson.154 TotallyNotJson.1070;
let TotallyNotJson.1024 : Int1 = StructAtIndex 1 TotallyNotJson.155;
let TotallyNotJson.1068 : Int1 = true;
let TotallyNotJson.1069 : Int1 = lowlevel Eq TotallyNotJson.1068 TotallyNotJson.1024;
if TotallyNotJson.1069 then
let TotallyNotJson.1034 : U64 = CallByName List.6 TotallyNotJson.153;
let TotallyNotJson.1035 : U64 = 2i64;
let TotallyNotJson.1033 : U64 = CallByName Num.19 TotallyNotJson.1034 TotallyNotJson.1035;
let TotallyNotJson.1030 : List U8 = CallByName List.68 TotallyNotJson.1033;
let TotallyNotJson.1032 : U8 = 34i64;
let TotallyNotJson.1031 : List U8 = Array [TotallyNotJson.1032];
let TotallyNotJson.1029 : List U8 = CallByName List.8 TotallyNotJson.1030 TotallyNotJson.1031;
let TotallyNotJson.1026 : List U8 = CallByName List.8 TotallyNotJson.1029 TotallyNotJson.153;
let TotallyNotJson.1028 : U8 = 34i64;
let TotallyNotJson.1027 : List U8 = Array [TotallyNotJson.1028];
let TotallyNotJson.1025 : List U8 = CallByName List.8 TotallyNotJson.1026 TotallyNotJson.1027;
ret TotallyNotJson.1025;
else
inc TotallyNotJson.153;
let TotallyNotJson.1067 : U64 = StructAtIndex 0 TotallyNotJson.155;
let TotallyNotJson.1066 : {List U8, List U8} = CallByName List.52 TotallyNotJson.153 TotallyNotJson.1067;
let TotallyNotJson.179 : List U8 = StructAtIndex 0 TotallyNotJson.1066;
let TotallyNotJson.181 : List U8 = StructAtIndex 1 TotallyNotJson.1066;
let TotallyNotJson.1064 : U64 = CallByName List.6 TotallyNotJson.153;
dec TotallyNotJson.153;
let TotallyNotJson.1065 : U64 = 120i64;
let TotallyNotJson.1062 : U64 = CallByName Num.21 TotallyNotJson.1064 TotallyNotJson.1065;
let TotallyNotJson.1063 : U64 = 100i64;
let TotallyNotJson.1061 : U64 = CallByName Num.137 TotallyNotJson.1062 TotallyNotJson.1063;
let TotallyNotJson.1058 : List U8 = CallByName List.68 TotallyNotJson.1061;
let TotallyNotJson.1060 : U8 = 34i64;
let TotallyNotJson.1059 : List U8 = Array [TotallyNotJson.1060];
let TotallyNotJson.1057 : List U8 = CallByName List.8 TotallyNotJson.1058 TotallyNotJson.1059;
let TotallyNotJson.182 : List U8 = CallByName List.8 TotallyNotJson.1057 TotallyNotJson.179;
let TotallyNotJson.1040 : {} = Struct {};
let TotallyNotJson.1037 : List U8 = CallByName List.18 TotallyNotJson.181 TotallyNotJson.182 TotallyNotJson.1040;
let TotallyNotJson.1039 : U8 = 34i64;
let TotallyNotJson.1038 : List U8 = Array [TotallyNotJson.1039];
let TotallyNotJson.1036 : List U8 = CallByName List.8 TotallyNotJson.1037 TotallyNotJson.1038;
ret TotallyNotJson.1036;
procedure TotallyNotJson.27 (TotallyNotJson.186):
switch TotallyNotJson.186:
case 34:
let TotallyNotJson.1043 : List U8 = Array [92i64, 34i64];
ret TotallyNotJson.1043;
case 92:
let TotallyNotJson.1044 : List U8 = Array [92i64, 92i64];
ret TotallyNotJson.1044;
case 47:
let TotallyNotJson.1045 : List U8 = Array [92i64, 47i64];
ret TotallyNotJson.1045;
case 8:
let TotallyNotJson.1047 : U8 = 98i64;
let TotallyNotJson.1046 : List U8 = Array [92i64, TotallyNotJson.1047];
ret TotallyNotJson.1046;
case 12:
let TotallyNotJson.1049 : U8 = 102i64;
let TotallyNotJson.1048 : List U8 = Array [92i64, TotallyNotJson.1049];
ret TotallyNotJson.1048;
case 10:
let TotallyNotJson.1051 : U8 = 110i64;
let TotallyNotJson.1050 : List U8 = Array [92i64, TotallyNotJson.1051];
ret TotallyNotJson.1050;
case 13:
let TotallyNotJson.1053 : U8 = 114i64;
let TotallyNotJson.1052 : List U8 = Array [92i64, TotallyNotJson.1053];
ret TotallyNotJson.1052;
case 9:
let TotallyNotJson.1055 : U8 = 114i64;
let TotallyNotJson.1054 : List U8 = Array [92i64, TotallyNotJson.1055];
ret TotallyNotJson.1054;
default:
let TotallyNotJson.1056 : List U8 = Array [TotallyNotJson.186];
ret TotallyNotJson.1056;
procedure TotallyNotJson.31 (TotallyNotJson.229, TotallyNotJson.230):
let TotallyNotJson.1016 : {Str, List Str} = Struct {TotallyNotJson.229, TotallyNotJson.230};
let TotallyNotJson.1015 : {Str, List Str} = CallByName Encode.23 TotallyNotJson.1016;
ret TotallyNotJson.1015;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.78 (Test.79):
ret Test.79;
procedure Test.0 ():
let Test.12 : {Str, Str} = CallByName Test.3;
let Test.13 : {} = CallByName TotallyNotJson.8;
let Test.11 : List U8 = CallByName Encode.26 Test.12 Test.13;
ret Test.11;
let Test.258 : {Str, Str} = CallByName Test.50;
let Test.259 : {} = CallByName Test.3;
let Test.257 : List U8 = CallByName Encode.26 Test.258 Test.259;
ret Test.257;

View File

@ -1,6 +1,6 @@
procedure #Derived.0 (#Derived.1):
let #Derived_gen.11 : [C {}, C {}] = TagId(0) #Derived.1;
let #Derived_gen.10 : [C {}, C {}] = CallByName Encode.23 #Derived_gen.11;
let #Derived_gen.11 : [C {}, C {}, C Str] = TagId(0) #Derived.1;
let #Derived_gen.10 : [C {}, C {}, C Str] = CallByName Encode.23 #Derived_gen.11;
ret #Derived_gen.10;
procedure #Derived.2 (#Derived.3, #Derived.4, #Attr.12):
@ -10,13 +10,13 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Attr.12):
ret #Derived_gen.13;
in
let #Derived_gen.17 : Str = "A";
let #Derived_gen.18 : List [] = Array [];
let #Derived_gen.16 : {Str, List []} = CallByName TotallyNotJson.31 #Derived_gen.17 #Derived_gen.18;
let #Derived_gen.18 : List Str = Array [];
let #Derived_gen.16 : {List Str, {}} = CallByName Test.24 #Derived_gen.17 #Derived_gen.18;
jump #Derived_gen.15 #Derived_gen.16;
procedure #Derived.5 (#Derived.6):
let #Derived_gen.1 : [C {}, C {}] = TagId(1) #Derived.6;
let #Derived_gen.0 : [C {}, C {}] = CallByName Encode.23 #Derived_gen.1;
let #Derived_gen.1 : [C {}, C {}, C Str] = TagId(1) #Derived.6;
let #Derived_gen.0 : [C {}, C {}, C Str] = CallByName Encode.23 #Derived_gen.1;
ret #Derived_gen.0;
procedure #Derived.7 (#Derived.8, #Derived.9, #Attr.12):
@ -26,8 +26,8 @@ procedure #Derived.7 (#Derived.8, #Derived.9, #Attr.12):
ret #Derived_gen.3;
in
let #Derived_gen.7 : Str = "B";
let #Derived_gen.8 : List [] = Array [];
let #Derived_gen.6 : {Str, List []} = CallByName TotallyNotJson.31 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.8 : List Str = Array [];
let #Derived_gen.6 : {List Str, {}} = CallByName Test.24 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Bool.2 ():
@ -46,18 +46,16 @@ procedure Encode.23 (Encode.98):
procedure Encode.23 (Encode.98):
ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
dec Encode.99;
let Encode.125 : Str = "a Lambda Set is empty. Most likely there is a type error in your program.";
Crash Encode.125
procedure Encode.23 (Encode.98):
ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.111 : List U8 = CallByName Test.5 Encode.99 Encode.101 Encode.107;
let Encode.111 : List U8 = CallByName Test.213 Encode.99 Encode.101 Encode.107;
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.113 : List U8 = CallByName TotallyNotJson.231 Encode.99 Encode.101 Encode.107;
ret Encode.113;
let Encode.115 : List U8 = CallByName Test.63 Encode.99 Encode.101 Encode.107;
ret Encode.115;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.117 : U8 = GetTagId Encode.107;
@ -66,276 +64,284 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.116 : List U8 = CallByName #Derived.2 Encode.99 Encode.101 Encode.107;
ret Encode.116;
default:
case 1:
let Encode.116 : List U8 = CallByName #Derived.7 Encode.99 Encode.101 Encode.107;
ret Encode.116;
default:
let Encode.116 : List U8 = CallByName Test.59 Encode.99 Encode.101 Encode.107;
ret Encode.116;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.121 : List U8 = CallByName TotallyNotJson.231 Encode.99 Encode.101 Encode.107;
let Encode.121 : List U8 = CallByName Test.63 Encode.99 Encode.101 Encode.107;
ret Encode.121;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.124 : List U8 = CallByName Test.59 Encode.99 Encode.101 Encode.107;
ret Encode.124;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
let Encode.110 : {{}, {}} = CallByName Test.2 Encode.105;
let Encode.110 : {{}, {}} = CallByName Test.49 Encode.105;
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.18 (List.160, List.161, List.162):
let List.601 : U64 = 0i64;
let List.602 : U64 = CallByName List.6 List.160;
let List.600 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.601 List.602;
procedure List.13 (#Attr.2, #Attr.3):
let List.600 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.600;
procedure List.13 (#Attr.2, #Attr.3):
let List.628 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.628;
procedure List.18 (List.160, List.161, List.162):
let List.641 : U64 = 0i64;
let List.642 : U64 = CallByName List.6 List.160;
let List.640 : {List U8, U64} = CallByName List.92 List.160 List.161 List.162 List.641 List.642;
ret List.640;
let List.575 : U64 = 0i64;
let List.576 : U64 = CallByName List.6 List.160;
let List.574 : List U8 = CallByName List.92 List.160 List.161 List.162 List.575 List.576;
ret List.574;
procedure List.18 (List.160, List.161, List.162):
let List.602 : U64 = 0i64;
let List.603 : U64 = CallByName List.6 List.160;
let List.601 : List U8 = CallByName List.92 List.160 List.161 List.162 List.602 List.603;
ret List.601;
procedure List.4 (List.124, List.125):
let List.639 : U64 = 1i64;
let List.638 : List U8 = CallByName List.70 List.124 List.639;
let List.637 : List U8 = CallByName List.71 List.638 List.125;
ret List.637;
let List.623 : U64 = 1i64;
let List.622 : List U8 = CallByName List.70 List.124 List.623;
let List.621 : List U8 = CallByName List.71 List.622 List.125;
ret List.621;
procedure List.6 (#Attr.2):
let List.612 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.612;
let List.599 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.599;
procedure List.6 (#Attr.2):
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.652;
let List.626 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.626;
procedure List.66 (#Attr.2, #Attr.3):
let List.610 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.610;
let List.584 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.66 (#Attr.2, #Attr.3):
let List.650 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.650;
let List.611 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.611;
procedure List.70 (#Attr.2, #Attr.3):
let List.618 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.618;
let List.617 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.617;
procedure List.71 (#Attr.2, #Attr.3):
let List.616 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.616;
let List.615 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.615;
procedure List.8 (#Attr.2, #Attr.3):
let List.653 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.653;
let List.625 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.625;
procedure List.92 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.603 List.163 List.164 List.165 List.166 List.167:
let List.605 : Int1 = CallByName Num.22 List.166 List.167;
if List.605 then
let List.609 : [C {}, C {}] = CallByName List.66 List.163 List.166;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.233 List.164 List.609;
let List.608 : U64 = 1i64;
let List.607 : U64 = CallByName Num.51 List.166 List.608;
jump List.603 List.163 List.168 List.165 List.607 List.167;
procedure List.92 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
joinpoint List.577 List.163 List.164 List.165 List.166 List.167:
let List.579 : Int1 = CallByName Num.22 List.166 List.167;
if List.579 then
let List.583 : [C {}, C {}, C Str] = CallByName List.66 List.163 List.166;
inc List.583;
let List.168 : List U8 = CallByName Test.66 List.164 List.583 List.165;
let List.582 : U64 = 1i64;
let List.581 : U64 = CallByName Num.51 List.166 List.582;
jump List.577 List.163 List.168 List.165 List.581 List.167;
else
dec List.163;
ret List.164;
in
jump List.603 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.577 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
procedure List.92 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.643 List.163 List.164 List.165 List.166 List.167:
let List.645 : Int1 = CallByName Num.22 List.166 List.167;
if List.645 then
let List.649 : [] = CallByName List.66 List.163 List.166;
let List.168 : {List U8, U64} = CallByName TotallyNotJson.233 List.164 List.649;
let List.648 : U64 = 1i64;
let List.647 : U64 = CallByName Num.51 List.166 List.648;
jump List.643 List.163 List.168 List.165 List.647 List.167;
procedure List.92 (#Derived_gen.52, #Derived_gen.53, #Derived_gen.54, #Derived_gen.55, #Derived_gen.56):
joinpoint List.604 List.163 List.164 List.165 List.166 List.167:
let List.606 : Int1 = CallByName Num.22 List.166 List.167;
if List.606 then
let List.610 : Str = CallByName List.66 List.163 List.166;
inc List.610;
let List.168 : List U8 = CallByName Test.66 List.164 List.610 List.165;
let List.609 : U64 = 1i64;
let List.608 : U64 = CallByName Num.51 List.166 List.609;
jump List.604 List.163 List.168 List.165 List.608 List.167;
else
dec List.163;
ret List.164;
in
jump List.643 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
jump List.604 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56;
procedure Num.127 (#Attr.2):
let Num.298 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.298;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.299 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.299;
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.284;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.302 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.302;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.300 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.300;
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.286;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.301 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.301;
let Num.285 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.285;
procedure Num.96 (#Attr.2):
let Num.283 : Str = lowlevel NumToStr #Attr.2;
ret Num.283;
procedure Str.12 (#Attr.2):
let Str.233 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.233;
let Str.236 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.236;
procedure Test.2 (Test.11):
let Test.18 : {{}, {}} = CallByName Encode.23 Test.11;
ret Test.18;
procedure Str.36 (#Attr.2):
let Str.237 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.237;
procedure Test.20 (Test.58):
let Test.299 : [C {}, C {}, C Str] = TagId(2) Test.58;
let Test.298 : [C {}, C {}, C Str] = CallByName Encode.23 Test.299;
ret Test.298;
procedure Test.20 (Test.58):
let Test.342 : Str = CallByName Encode.23 Test.58;
ret Test.342;
procedure Test.21 (Test.61, Test.62):
let Test.278 : {List [C {}, C {}, C Str], {}} = Struct {Test.61, Test.62};
let Test.277 : {List [C {}, C {}, C Str], {}} = CallByName Encode.23 Test.278;
ret Test.277;
procedure Test.21 (Test.61, Test.62):
let Test.322 : {List Str, {}} = Struct {Test.61, Test.62};
let Test.321 : {List Str, {}} = CallByName Encode.23 Test.322;
ret Test.321;
procedure Test.213 (Test.214, Test.215, Test.212):
joinpoint Test.270 Test.216:
let Test.268 : List U8 = CallByName Encode.24 Test.214 Test.216 Test.215;
ret Test.268;
in
let Test.312 : Int1 = CallByName Bool.2;
if Test.312 then
let Test.313 : Str = "A";
let Test.316 : {} = StructAtIndex 0 Test.212;
let Test.315 : [C {}, C {}, C Str] = CallByName #Derived.0 Test.316;
let Test.314 : List [C {}, C {}, C Str] = Array [Test.315];
let Test.269 : {List [C {}, C {}, C Str], {}} = CallByName Test.24 Test.313 Test.314;
jump Test.270 Test.269;
else
let Test.271 : Str = "B";
let Test.311 : {} = StructAtIndex 1 Test.212;
let Test.310 : [C {}, C {}, C Str] = CallByName #Derived.5 Test.311;
let Test.272 : List [C {}, C {}, C Str] = Array [Test.310];
let Test.269 : {List [C {}, C {}, C Str], {}} = CallByName Test.24 Test.271 Test.272;
jump Test.270 Test.269;
procedure Test.23 (Test.77):
let Test.276 : {} = Struct {};
let Test.275 : {List [C {}, C {}, C Str], {}} = CallByName Test.21 Test.77 Test.276;
ret Test.275;
procedure Test.23 (Test.77):
let Test.320 : {} = Struct {};
let Test.319 : {List Str, {}} = CallByName Test.21 Test.77 Test.320;
ret Test.319;
procedure Test.24 (Test.80, Test.81):
let Test.297 : [C {}, C {}, C Str] = CallByName Test.20 Test.80;
let Test.274 : List [C {}, C {}, C Str] = CallByName List.13 Test.81 Test.297;
let Test.273 : {List [C {}, C {}, C Str], {}} = CallByName Test.23 Test.274;
ret Test.273;
procedure Test.24 (Test.80, Test.81):
let Test.355 : Str = CallByName Test.20 Test.80;
let Test.354 : List Str = CallByName List.13 Test.81 Test.355;
let Test.353 : {List Str, {}} = CallByName Test.23 Test.354;
ret Test.353;
procedure Test.3 ():
let Test.16 : {} = Struct {};
let Test.17 : {} = Struct {};
let Test.15 : {{}, {}} = Struct {Test.16, Test.17};
ret Test.15;
let Test.261 : {} = Struct {};
ret Test.261;
procedure Test.5 (Test.6, Test.7, Test.4):
joinpoint Test.23 Test.8:
let Test.21 : List U8 = CallByName Encode.24 Test.6 Test.8 Test.7;
ret Test.21;
in
let Test.28 : Int1 = CallByName Bool.2;
if Test.28 then
let Test.29 : Str = "A";
let Test.32 : {} = StructAtIndex 0 Test.4;
let Test.31 : [C {}, C {}] = CallByName #Derived.0 Test.32;
let Test.30 : List [C {}, C {}] = Array [Test.31];
let Test.22 : {Str, List [C {}, C {}]} = CallByName TotallyNotJson.31 Test.29 Test.30;
jump Test.23 Test.22;
else
let Test.24 : Str = "B";
let Test.27 : {} = StructAtIndex 1 Test.4;
let Test.26 : [C {}, C {}] = CallByName #Derived.5 Test.27;
let Test.25 : List [C {}, C {}] = Array [Test.26];
let Test.22 : {Str, List [C {}, C {}]} = CallByName TotallyNotJson.31 Test.24 Test.25;
jump Test.23 Test.22;
procedure Test.4 (Test.51, Test.52, Test.53):
let Test.339 : U8 = CallByName Num.127 Test.52;
let Test.336 : List U8 = CallByName List.4 Test.51 Test.339;
let Test.338 : Str = CallByName Num.96 Test.53;
let Test.337 : List U8 = CallByName Str.12 Test.338;
let Test.334 : List U8 = CallByName List.8 Test.336 Test.337;
let Test.335 : U8 = 32i64;
let Test.333 : List U8 = CallByName List.4 Test.334 Test.335;
ret Test.333;
procedure TotallyNotJson.231 (TotallyNotJson.232, TotallyNotJson.976, #Attr.12):
let TotallyNotJson.230 : List [C {}, C {}] = StructAtIndex 1 #Attr.12;
let TotallyNotJson.229 : Str = StructAtIndex 0 #Attr.12;
let TotallyNotJson.1014 : I64 = 123i64;
let TotallyNotJson.1013 : U8 = CallByName Num.127 TotallyNotJson.1014;
let TotallyNotJson.1010 : List U8 = CallByName List.4 TotallyNotJson.232 TotallyNotJson.1013;
let TotallyNotJson.1012 : I64 = 34i64;
let TotallyNotJson.1011 : U8 = CallByName Num.127 TotallyNotJson.1012;
let TotallyNotJson.1008 : List U8 = CallByName List.4 TotallyNotJson.1010 TotallyNotJson.1011;
let TotallyNotJson.1009 : List U8 = CallByName Str.12 TotallyNotJson.229;
let TotallyNotJson.1005 : List U8 = CallByName List.8 TotallyNotJson.1008 TotallyNotJson.1009;
let TotallyNotJson.1007 : I64 = 34i64;
let TotallyNotJson.1006 : U8 = CallByName Num.127 TotallyNotJson.1007;
let TotallyNotJson.1002 : List U8 = CallByName List.4 TotallyNotJson.1005 TotallyNotJson.1006;
let TotallyNotJson.1004 : I64 = 58i64;
let TotallyNotJson.1003 : U8 = CallByName Num.127 TotallyNotJson.1004;
let TotallyNotJson.999 : List U8 = CallByName List.4 TotallyNotJson.1002 TotallyNotJson.1003;
let TotallyNotJson.1001 : I64 = 91i64;
let TotallyNotJson.1000 : U8 = CallByName Num.127 TotallyNotJson.1001;
let TotallyNotJson.234 : List U8 = CallByName List.4 TotallyNotJson.999 TotallyNotJson.1000;
let TotallyNotJson.998 : U64 = CallByName List.6 TotallyNotJson.230;
let TotallyNotJson.986 : {List U8, U64} = Struct {TotallyNotJson.234, TotallyNotJson.998};
let TotallyNotJson.987 : {} = Struct {};
let TotallyNotJson.985 : {List U8, U64} = CallByName List.18 TotallyNotJson.230 TotallyNotJson.986 TotallyNotJson.987;
let TotallyNotJson.236 : List U8 = StructAtIndex 0 TotallyNotJson.985;
let TotallyNotJson.984 : I64 = 93i64;
let TotallyNotJson.983 : U8 = CallByName Num.127 TotallyNotJson.984;
let TotallyNotJson.980 : List U8 = CallByName List.4 TotallyNotJson.236 TotallyNotJson.983;
let TotallyNotJson.982 : I64 = 125i64;
let TotallyNotJson.981 : U8 = CallByName Num.127 TotallyNotJson.982;
let TotallyNotJson.979 : List U8 = CallByName List.4 TotallyNotJson.980 TotallyNotJson.981;
ret TotallyNotJson.979;
procedure Test.49 (Test.256):
let Test.265 : {{}, {}} = CallByName Encode.23 Test.256;
ret Test.265;
procedure TotallyNotJson.231 (TotallyNotJson.232, TotallyNotJson.976, #Attr.12):
let TotallyNotJson.230 : List [] = StructAtIndex 1 #Attr.12;
let TotallyNotJson.229 : Str = StructAtIndex 0 #Attr.12;
let TotallyNotJson.1057 : I64 = 123i64;
let TotallyNotJson.1056 : U8 = CallByName Num.127 TotallyNotJson.1057;
let TotallyNotJson.1053 : List U8 = CallByName List.4 TotallyNotJson.232 TotallyNotJson.1056;
let TotallyNotJson.1055 : I64 = 34i64;
let TotallyNotJson.1054 : U8 = CallByName Num.127 TotallyNotJson.1055;
let TotallyNotJson.1051 : List U8 = CallByName List.4 TotallyNotJson.1053 TotallyNotJson.1054;
let TotallyNotJson.1052 : List U8 = CallByName Str.12 TotallyNotJson.229;
let TotallyNotJson.1048 : List U8 = CallByName List.8 TotallyNotJson.1051 TotallyNotJson.1052;
let TotallyNotJson.1050 : I64 = 34i64;
let TotallyNotJson.1049 : U8 = CallByName Num.127 TotallyNotJson.1050;
let TotallyNotJson.1045 : List U8 = CallByName List.4 TotallyNotJson.1048 TotallyNotJson.1049;
let TotallyNotJson.1047 : I64 = 58i64;
let TotallyNotJson.1046 : U8 = CallByName Num.127 TotallyNotJson.1047;
let TotallyNotJson.1042 : List U8 = CallByName List.4 TotallyNotJson.1045 TotallyNotJson.1046;
let TotallyNotJson.1044 : I64 = 91i64;
let TotallyNotJson.1043 : U8 = CallByName Num.127 TotallyNotJson.1044;
let TotallyNotJson.234 : List U8 = CallByName List.4 TotallyNotJson.1042 TotallyNotJson.1043;
let TotallyNotJson.1041 : U64 = CallByName List.6 TotallyNotJson.230;
let TotallyNotJson.1029 : {List U8, U64} = Struct {TotallyNotJson.234, TotallyNotJson.1041};
let TotallyNotJson.1030 : {} = Struct {};
let TotallyNotJson.1028 : {List U8, U64} = CallByName List.18 TotallyNotJson.230 TotallyNotJson.1029 TotallyNotJson.1030;
let TotallyNotJson.236 : List U8 = StructAtIndex 0 TotallyNotJson.1028;
let TotallyNotJson.1027 : I64 = 93i64;
let TotallyNotJson.1026 : U8 = CallByName Num.127 TotallyNotJson.1027;
let TotallyNotJson.1023 : List U8 = CallByName List.4 TotallyNotJson.236 TotallyNotJson.1026;
let TotallyNotJson.1025 : I64 = 125i64;
let TotallyNotJson.1024 : U8 = CallByName Num.127 TotallyNotJson.1025;
let TotallyNotJson.1022 : List U8 = CallByName List.4 TotallyNotJson.1023 TotallyNotJson.1024;
ret TotallyNotJson.1022;
procedure Test.50 ():
let Test.263 : {} = Struct {};
let Test.264 : {} = Struct {};
let Test.262 : {{}, {}} = Struct {Test.263, Test.264};
ret Test.262;
procedure TotallyNotJson.233 (TotallyNotJson.978, TotallyNotJson.239):
let TotallyNotJson.237 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.238 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.1040 : {} = Struct {};
let TotallyNotJson.240 : List U8 = CallByName Encode.24 TotallyNotJson.237 TotallyNotJson.239 TotallyNotJson.1040;
joinpoint TotallyNotJson.1035 TotallyNotJson.241:
let TotallyNotJson.1033 : U64 = 1i64;
let TotallyNotJson.1032 : U64 = CallByName Num.20 TotallyNotJson.238 TotallyNotJson.1033;
let TotallyNotJson.1031 : {List U8, U64} = Struct {TotallyNotJson.241, TotallyNotJson.1032};
ret TotallyNotJson.1031;
in
let TotallyNotJson.1039 : U64 = 1i64;
let TotallyNotJson.1036 : Int1 = CallByName Num.24 TotallyNotJson.238 TotallyNotJson.1039;
if TotallyNotJson.1036 then
let TotallyNotJson.1038 : I64 = 44i64;
let TotallyNotJson.1037 : U8 = CallByName Num.127 TotallyNotJson.1038;
let TotallyNotJson.1034 : List U8 = CallByName List.4 TotallyNotJson.240 TotallyNotJson.1037;
jump TotallyNotJson.1035 TotallyNotJson.1034;
else
jump TotallyNotJson.1035 TotallyNotJson.240;
procedure Test.59 (Test.60, Test.300, #Attr.12):
let Test.309 : Str = UnionAtIndex (Id 2) (Index 0) #Attr.12;
let Test.307 : I64 = 115i64;
let Test.308 : U64 = CallByName Str.36 Test.309;
let Test.305 : List U8 = CallByName Test.4 Test.60 Test.307 Test.308;
let Test.306 : List U8 = CallByName Str.12 Test.309;
let Test.303 : List U8 = CallByName List.8 Test.305 Test.306;
let Test.304 : U8 = 32i64;
let Test.302 : List U8 = CallByName List.4 Test.303 Test.304;
ret Test.302;
procedure TotallyNotJson.233 (TotallyNotJson.978, TotallyNotJson.239):
let TotallyNotJson.237 : List U8 = StructAtIndex 0 TotallyNotJson.978;
let TotallyNotJson.238 : U64 = StructAtIndex 1 TotallyNotJson.978;
let TotallyNotJson.997 : {} = Struct {};
let TotallyNotJson.240 : List U8 = CallByName Encode.24 TotallyNotJson.237 TotallyNotJson.239 TotallyNotJson.997;
joinpoint TotallyNotJson.992 TotallyNotJson.241:
let TotallyNotJson.990 : U64 = 1i64;
let TotallyNotJson.989 : U64 = CallByName Num.20 TotallyNotJson.238 TotallyNotJson.990;
let TotallyNotJson.988 : {List U8, U64} = Struct {TotallyNotJson.241, TotallyNotJson.989};
ret TotallyNotJson.988;
in
let TotallyNotJson.996 : U64 = 1i64;
let TotallyNotJson.993 : Int1 = CallByName Num.24 TotallyNotJson.238 TotallyNotJson.996;
if TotallyNotJson.993 then
let TotallyNotJson.995 : I64 = 44i64;
let TotallyNotJson.994 : U8 = CallByName Num.127 TotallyNotJson.995;
let TotallyNotJson.991 : List U8 = CallByName List.4 TotallyNotJson.240 TotallyNotJson.994;
jump TotallyNotJson.992 TotallyNotJson.991;
else
jump TotallyNotJson.992 TotallyNotJson.240;
procedure Test.59 (Test.60, Test.300, Test.58):
let Test.351 : I64 = 115i64;
let Test.352 : U64 = CallByName Str.36 Test.58;
let Test.349 : List U8 = CallByName Test.4 Test.60 Test.351 Test.352;
let Test.350 : List U8 = CallByName Str.12 Test.58;
let Test.347 : List U8 = CallByName List.8 Test.349 Test.350;
let Test.348 : U8 = 32i64;
let Test.346 : List U8 = CallByName List.4 Test.347 Test.348;
ret Test.346;
procedure TotallyNotJson.31 (TotallyNotJson.229, TotallyNotJson.230):
let TotallyNotJson.1016 : {Str, List [C {}, C {}]} = Struct {TotallyNotJson.229, TotallyNotJson.230};
let TotallyNotJson.1015 : {Str, List [C {}, C {}]} = CallByName Encode.23 TotallyNotJson.1016;
ret TotallyNotJson.1015;
procedure Test.63 (Test.64, Test.279, #Attr.12):
let Test.62 : {} = StructAtIndex 1 #Attr.12;
let Test.61 : List Str = StructAtIndex 0 #Attr.12;
let Test.331 : I64 = 108i64;
let Test.332 : U64 = CallByName List.6 Test.61;
let Test.65 : List U8 = CallByName Test.4 Test.64 Test.331 Test.332;
let Test.325 : List U8 = CallByName List.18 Test.61 Test.65 Test.62;
ret Test.325;
procedure TotallyNotJson.31 (TotallyNotJson.229, TotallyNotJson.230):
let TotallyNotJson.1059 : {Str, List []} = Struct {TotallyNotJson.229, TotallyNotJson.230};
let TotallyNotJson.1058 : {Str, List []} = CallByName Encode.23 TotallyNotJson.1059;
ret TotallyNotJson.1058;
procedure Test.63 (Test.64, Test.279, #Attr.12):
let Test.62 : {} = StructAtIndex 1 #Attr.12;
let Test.61 : List [C {}, C {}, C Str] = StructAtIndex 0 #Attr.12;
let Test.287 : I64 = 108i64;
let Test.288 : U64 = CallByName List.6 Test.61;
let Test.65 : List U8 = CallByName Test.4 Test.64 Test.287 Test.288;
let Test.281 : List U8 = CallByName List.18 Test.61 Test.65 Test.62;
ret Test.281;
procedure TotallyNotJson.8 ():
let TotallyNotJson.973 : {} = Struct {};
ret TotallyNotJson.973;
procedure Test.66 (Test.67, Test.68, Test.62):
let Test.285 : [C {}, C {}, C Str] = CallByName Test.78 Test.68;
let Test.286 : {} = Struct {};
let Test.284 : List U8 = CallByName Encode.24 Test.67 Test.285 Test.286;
ret Test.284;
procedure Test.66 (Test.67, Test.68, Test.62):
let Test.329 : Str = CallByName Test.78 Test.68;
let Test.330 : {} = Struct {};
let Test.328 : List U8 = CallByName Encode.24 Test.67 Test.329 Test.330;
ret Test.328;
procedure Test.78 (Test.79):
ret Test.79;
procedure Test.78 (Test.79):
ret Test.79;
procedure Test.0 ():
let Test.13 : {{}, {}} = CallByName Test.3;
let Test.14 : {} = CallByName TotallyNotJson.8;
let Test.12 : List U8 = CallByName Encode.26 Test.13 Test.14;
ret Test.12;
let Test.259 : {{}, {}} = CallByName Test.50;
let Test.260 : {} = CallByName Test.3;
let Test.258 : List U8 = CallByName Encode.26 Test.259 Test.260;
ret Test.258;

View File

@ -5,15 +5,13 @@
// we actually want to compare against the literal float bits
#![allow(clippy::float_cmp)]
#[macro_use]
extern crate indoc;
/// Used in the with_larger_debug_stack() function, for tests that otherwise
/// run out of stack space in debug builds (but don't in --release builds)
#[allow(dead_code)]
const EXPANDED_STACK_SIZE: usize = 8 * 1024 * 1024;
use bumpalo::Bump;
use indoc::{formatdoc, indoc};
use roc_collections::all::MutMap;
use roc_load::ExecutionMode;
use roc_load::FunctionKind;
@ -25,10 +23,59 @@ use roc_module::symbol::Symbol;
use roc_mono::ir::Proc;
use roc_mono::ir::ProcLayout;
use roc_mono::layout::STLayoutInterner;
use roc_test_utils::TAG_LEN_ENCODER_FMT;
use test_mono_macros::*;
const TARGET: roc_target::Target = roc_target::Target::LinuxX64;
/// err decoder is a trivial implementation of a decoder which only returns an error
/// useful when you need a decoder implementation, but want minimal code generation
pub const ERR_DECODER_FMT: &str = r#"
ErrDecoder := {} implements [
DecoderFormatting {
u8: decodeU8,
u16: decodeU16,
u32: decodeU32,
u64: decodeU64,
u128: decodeU128,
i8: decodeI8,
i16: decodeI16,
i32: decodeI32,
i64: decodeI64,
i128: decodeI128,
f32: decodeF32,
f64: decodeF64,
dec: decodeDec,
bool: decodeBool,
string: decodeString,
list: decodeList,
record: decodeRecord,
tuple: decodeTuple,
},
]
decodeU8 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeU16 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeU32 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeU64 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeU128 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeI8 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeI16 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeI32 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeI64 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeI128 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeF32 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeF64 = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeDec = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeBool = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeString = Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeList : Decoder elem ErrDecoder -> Decoder (List elem) ErrDecoder
decodeList = \_ -> Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeRecord : state, (state, Str -> [Keep (Decoder state ErrDecoder), Skip]), (state, ErrDecoder -> Result val DecodeError) -> Decoder val ErrDecoder
decodeRecord = \_, _, _ -> Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
decodeTuple : state, (state, U64 -> [Next (Decoder state ErrDecoder), TooLong]), (state -> Result val DecodeError) -> Decoder val ErrDecoder
decodeTuple = \_, _, _ -> Decode.custom \rest, @ErrDecoder {} -> { result: Err TooShort, rest }
"#;
/// Without this, some tests pass in `cargo test --release` but fail without
/// the --release flag because they run out of stack space. This increases
/// stack size for debug builds only, while leaving the stack space at the default
@ -1522,20 +1569,22 @@ fn list_sort_asc() {
#[mono_test]
#[ignore]
fn encode_custom_type() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
HelloWorld := {}
toEncoder = \@HelloWorld {} ->
{TAG_LEN_ENCODER_FMT}
HelloWorld := {{}}
toEncoder = \@HelloWorld {{}} ->
Encode.custom \bytes, fmt ->
bytes
|> Encode.appendWith (Encode.string "Hello, World!\n") fmt
main =
result = Str.fromUtf8 (Encode.toBytes (@HelloWorld {}) TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes (@HelloWorld {{}}) tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1545,14 +1594,16 @@ fn encode_custom_type() {
#[mono_test]
fn encode_derived_string() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
result = Str.fromUtf8 (Encode.toBytes "abc" TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes "abc" tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1563,14 +1614,16 @@ fn encode_derived_string() {
#[mono_test]
#[ignore = "TODO"]
fn encode_derived_record() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
result = Str.fromUtf8 (Encode.toBytes {a: "a"} TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes {{a: "a"}} tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1905,14 +1958,16 @@ fn instantiate_annotated_as_recursive_alias_multiple_polymorphic_expr() {
#[mono_test(large_stack = "true")]
fn encode_derived_record_one_field_string() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
result = Str.fromUtf8 (Encode.toBytes {a: "foo"} TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes {{a: "foo"}} tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1922,14 +1977,16 @@ fn encode_derived_record_one_field_string() {
#[mono_test(large_stack = "true")]
fn encode_derived_record_two_field_strings() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
result = Str.fromUtf8 (Encode.toBytes {a: "foo", b: "bar"} TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes {{a: "foo", b: "bar"}} tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1939,14 +1996,16 @@ fn encode_derived_record_two_field_strings() {
#[mono_test(large_stack = "true")]
fn encode_derived_nested_record_string() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
result = Str.fromUtf8 (Encode.toBytes {a: {b: "bar"}} TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes {{a: {{b: "bar"}}}} tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1956,16 +2015,18 @@ fn encode_derived_nested_record_string() {
#[mono_test]
fn encode_derived_tag_one_field_string() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
x : [A Str]
x = A "foo"
result = Str.fromUtf8 (Encode.toBytes x TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes x tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -1997,16 +2058,18 @@ fn polymorphic_expression_unification() {
#[mono_test]
fn encode_derived_tag_two_payloads_string() {
indoc!(
&formatdoc!(
r#"
app "test"
imports [Encode.{ toEncoder }, TotallyNotJson]
imports [Encode.{{ toEncoder }}]
provides [main] to "./platform"
{TAG_LEN_ENCODER_FMT}
main =
x : [A Str Str]
x = A "foo" "foo"
result = Str.fromUtf8 (Encode.toBytes x TotallyNotJson.json)
result = Str.fromUtf8 (Encode.toBytes x tagLenFmt)
when result is
Ok s -> s
_ -> "<bad>"
@ -2271,14 +2334,18 @@ fn issue_4705() {
#[mono_test(mode = "test", large_stack = "true")]
fn issue_4749() {
indoc!(
&formatdoc!(
r#"
interface Test exposes [] imports [TotallyNotJson]
interface Test exposes [] imports []
expect
input = [82, 111, 99]
got = Decode.fromBytes input TotallyNotJson.json
got == Ok "Roc"
got : [Y [Y1, Y2], Z [Z1, Z2]]_
got = Z Z1
t : [A [A1, A2]]_
t = A A1
got != t
"#
)
}
@ -2485,18 +2552,20 @@ fn function_specialization_information_in_lambda_set_thunk_independent_defs() {
#[mono_test(mode = "test", large_stack = "true")]
fn issue_4772_weakened_monomorphic_destructure() {
indoc!(
&formatdoc!(
r#"
interface Test exposes [] imports [TotallyNotJson]
interface Test exposes [] imports []
{ERR_DECODER_FMT}
getNumber =
{ result, rest } = Decode.fromBytesPartial (Str.toUtf8 "-1234") TotallyNotJson.json
{{ result, rest }} = Decode.fromBytesPartial (Str.toUtf8 "-1234") (@ErrDecoder {{}})
when result is
Ok val ->
when Str.toI64 val is
Ok number ->
Ok {val : number, input : rest}
Ok {{val : number, input : rest}}
Err InvalidNumStr ->
Err (ParsingFailure "not a number")
@ -2505,7 +2574,7 @@ fn issue_4772_weakened_monomorphic_destructure() {
expect
result = getNumber
result == Ok {val : -1234i64, input : []}
result == Ok {{val : -1234i64, input : []}}
"#
)
}
@ -2682,11 +2751,13 @@ fn unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unifica
// be, because they in fact represent to different specializations of needed encoders. In
// particular, the lambda set `[[] + [A]:toEncoder:1 + [B]:toEncoder:1]` must be preserved,
// rather than collapsing to `[[] + [A, B]:toEncoder:1]`.
indoc!(
&formatdoc!(
r#"
app "test" imports [TotallyNotJson] provides [main] to "./platform"
app "test" imports [] provides [main] to "./platform"
Q a b := { a: a, b: b } implements [Encoding {toEncoder: toEncoderQ}]
{TAG_LEN_ENCODER_FMT}
Q a b := {{ a: a, b: b }} implements [Encoding {{toEncoder: toEncoderQ}}]
toEncoderQ =
\@Q t -> Encode.custom \bytes, fmt ->
@ -2696,10 +2767,10 @@ fn unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unifica
Encode.appendWith bytes f fmt
accessor = @Q {a : A, b: B}
accessor = @Q {{a : A, b: B}}
main =
Encode.toBytes accessor TotallyNotJson.json
Encode.toBytes accessor tagLenFmt
"#
)
}
@ -2720,11 +2791,13 @@ fn unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_ty
// such, the lambda set `[[] + Str:toEncoder:1]` should be produced during compaction, rather
// than staying as the expanded `[[] + Str:toEncoder:1 + Str:toEncoder:1]` after the types of
// `t.a` and `t.b` are filled in.
indoc!(
&formatdoc!(
r#"
app "test" imports [TotallyNotJson] provides [main] to "./platform"
app "test" imports [] provides [main] to "./platform"
Q a b := { a: a, b: b } implements [Encoding {toEncoder: toEncoderQ}]
{TAG_LEN_ENCODER_FMT}
Q a b := {{ a: a, b: b }} implements [Encoding {{toEncoder: toEncoderQ}}]
toEncoderQ =
\@Q t -> Encode.custom \bytes, fmt ->
@ -2736,10 +2809,10 @@ fn unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_ty
accessor =
x = ""
@Q {a : x, b: x}
@Q {{a : x, b: x}}
main =
Encode.toBytes accessor TotallyNotJson.json
Encode.toBytes accessor tagLenFmt
"#
)
}