Merge pull request #8337 from roc-lang/add-join-map-effectful

added List.join_map effectful
This commit is contained in:
Anton-4 2025-10-27 16:36:10 +01:00 committed by GitHub
commit 440d092fec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 1376 additions and 1318 deletions

View file

@ -1111,6 +1111,20 @@ mod cli_tests {
let cli_dev_out = cli_dev.run();
cli_dev_out.assert_clean_success();
}
#[test]
#[cfg_attr(windows, ignore)]
fn effectful_join_map() {
build_platform_host();
let cli_dev = ExecCli::new(
roc_cli::CMD_DEV,
file_from_root("crates/cli/tests/test-projects/effectful", "join_map.roc"),
);
let cli_dev_out = cli_dev.run();
cli_dev_out.assert_clean_success();
}
}
// this is for testing the benchmarks (on small inputs), to perform proper benchmarks see crates/cli/benches/README.md

View file

@ -0,0 +1,21 @@
app [main!] { pf: platform "../test-platform-effects-zig/main.roc" }
import pf.Effect
main! : {} => {}
main! = \{} ->
flattened = List.join_map!([1, 2, 3], duplicate!)
expect flattened == Ok([1, 1, 2, 2, 3, 3])
with_zero = List.join_map!([0, 2], duplicate!)
expect with_zero == Ok([0, 0, 2, 2])
empty = List.join_map!([], duplicate!)
expect empty == Ok([])
{}
duplicate! : U64 => Result (List U64) _
duplicate! = \num ->
value = Effect.id_effectful!(num)
Ok([value, value])

View file

@ -38,6 +38,7 @@ module [
map3,
map4,
join_map,
join_map!,
product,
walk_with_index,
walk_until,
@ -1156,6 +1157,26 @@ join_map : List a, (a -> List b) -> List b
join_map = |list, mapper|
List.walk(list, [], |state, elem| List.concat(state, mapper(elem)))
## Like [List.join_map], except the transformation function can have effects.
##
## ```
## log_and_split! : List Str => Result (List Str) _
## log_and_split! = |paths|
## List.join_map!(
## paths,
## |path|
## Result.map_ok(Stdout.line!(path), |_| Str.split_on(path, "/")),
## )
## ```
join_map! : List a, (a => Result (List b) err) => Result (List b) err
join_map! = |list, mapper!|
List.walk_try!(
list,
[],
|state, elem|
Result.map_ok(mapper!(elem), |mapper_list| List.concat(state, mapper_list)),
)
## Returns the first element of the list satisfying a predicate function.
## If no satisfying element is found, an `Err NotFound` is returned.
find_first : List elem, (elem -> Bool) -> Result elem [NotFound]

View file

@ -864,6 +864,7 @@ fn is_static_method(module_name: &str, ident: &str) -> bool {
| "map_try"
| "walk_try"
| "join_map"
| "join_map!"
| "any"
| "take_first"
| "take_last"

View file

@ -1533,6 +1533,7 @@ define_builtins! {
95 LIST_WALK_TRY_FX: "walk_try!"
96 LIST_MAP_TRY_FX: "map_try!"
97 LIST_KEEP_IF_TRY_FX: "keep_if_try!"
98 LIST_JOIN_MAP_FX: "join_map!"
}
7 RESULT: "Result" => {
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias

View file

@ -2,81 +2,81 @@ procedure Bool.9 (#Attr.2, #Attr.3):
let Bool.21 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.21;
procedure List.119 (List.582, List.583, List.584):
let List.712 : U64 = 0i64;
let List.713 : U64 = CallByName List.6 List.582;
let List.711 : [C U64, C U64] = CallByName List.80 List.582 List.583 List.584 List.712 List.713;
ret List.711;
procedure List.120 (List.590, List.591, List.592):
let List.720 : U64 = 0i64;
let List.721 : U64 = CallByName List.6 List.590;
let List.719 : [C U64, C U64] = CallByName List.80 List.590 List.591 List.592 List.720 List.721;
ret List.719;
procedure List.26 (List.216, List.217, List.218):
let List.705 : [C U64, C U64] = CallByName List.119 List.216 List.217 List.218;
let List.708 : U8 = 1i64;
let List.709 : U8 = GetTagId List.705;
let List.710 : Int1 = lowlevel Eq List.708 List.709;
if List.710 then
let List.219 : U64 = UnionAtIndex (Id 1) (Index 0) List.705;
ret List.219;
else
let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705;
procedure List.26 (List.217, List.218, List.219):
let List.713 : [C U64, C U64] = CallByName List.120 List.217 List.218 List.219;
let List.716 : U8 = 1i64;
let List.717 : U8 = GetTagId List.713;
let List.718 : Int1 = lowlevel Eq List.716 List.717;
if List.718 then
let List.220 : U64 = UnionAtIndex (Id 1) (Index 0) List.713;
ret List.220;
else
let List.221 : U64 = UnionAtIndex (Id 0) (Index 0) List.713;
ret List.221;
procedure List.38 (List.413, List.414):
let List.704 : U64 = CallByName List.6 List.413;
let List.415 : U64 = CallByName Num.77 List.704 List.414;
let List.694 : List U8 = CallByName List.43 List.413 List.415;
ret List.694;
procedure List.38 (List.414, List.415):
let List.712 : U64 = CallByName List.6 List.414;
let List.416 : U64 = CallByName Num.77 List.712 List.415;
let List.702 : List U8 = CallByName List.43 List.414 List.416;
ret List.702;
procedure List.43 (List.411, List.412):
let List.702 : U64 = CallByName List.6 List.411;
let List.701 : U64 = CallByName Num.77 List.702 List.412;
let List.696 : {U64, U64} = Struct {List.412, List.701};
let List.695 : List U8 = CallByName List.49 List.411 List.696;
ret List.695;
procedure List.49 (List.489, List.490):
let List.698 : U64 = StructAtIndex 1 List.490;
let List.699 : U64 = StructAtIndex 0 List.490;
let List.697 : List U8 = CallByName List.72 List.489 List.698 List.699;
ret List.697;
procedure List.6 (#Attr.2):
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
procedure List.43 (List.412, List.413):
let List.710 : U64 = CallByName List.6 List.412;
let List.709 : U64 = CallByName Num.77 List.710 List.413;
let List.704 : {U64, U64} = Struct {List.413, List.709};
let List.703 : List U8 = CallByName List.49 List.412 List.704;
ret List.703;
procedure List.49 (List.497, List.498):
let List.706 : U64 = StructAtIndex 1 List.498;
let List.707 : U64 = StructAtIndex 0 List.498;
let List.705 : List U8 = CallByName List.72 List.497 List.706 List.707;
ret List.705;
procedure List.6 (#Attr.2):
let List.711 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.711;
procedure List.66 (#Attr.2, #Attr.3):
let List.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.726;
let List.734 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.734;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.700;
let List.708 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.708;
procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.714 List.585 List.586 List.587 List.588 List.589:
let List.716 : Int1 = CallByName Num.22 List.588 List.589;
if List.716 then
let List.725 : U8 = CallByName List.66 List.585 List.588;
let List.717 : [C U64, C U64] = CallByName Test.4 List.586 List.725;
let List.722 : U8 = 1i64;
let List.723 : U8 = GetTagId List.717;
let List.724 : Int1 = lowlevel Eq List.722 List.723;
if List.724 then
let List.590 : U64 = UnionAtIndex (Id 1) (Index 0) List.717;
let List.720 : U64 = 1i64;
let List.719 : U64 = CallByName Num.51 List.588 List.720;
jump List.714 List.585 List.590 List.587 List.719 List.589;
joinpoint List.722 List.593 List.594 List.595 List.596 List.597:
let List.724 : Int1 = CallByName Num.22 List.596 List.597;
if List.724 then
let List.733 : U8 = CallByName List.66 List.593 List.596;
let List.725 : [C U64, C U64] = CallByName Test.4 List.594 List.733;
let List.730 : U8 = 1i64;
let List.731 : U8 = GetTagId List.725;
let List.732 : Int1 = lowlevel Eq List.730 List.731;
if List.732 then
let List.598 : U64 = UnionAtIndex (Id 1) (Index 0) List.725;
let List.728 : U64 = 1i64;
let List.727 : U64 = CallByName Num.51 List.596 List.728;
jump List.722 List.593 List.598 List.595 List.727 List.597;
else
dec List.585;
let List.591 : U64 = UnionAtIndex (Id 0) (Index 0) List.717;
let List.721 : [C U64, C U64] = TagId(0) List.591;
ret List.721;
dec List.593;
let List.599 : U64 = UnionAtIndex (Id 0) (Index 0) List.725;
let List.729 : [C U64, C U64] = TagId(0) List.599;
ret List.729;
else
dec List.585;
let List.715 : [C U64, C U64] = TagId(1) List.586;
ret List.715;
dec List.593;
let List.723 : [C U64, C U64] = TagId(1) List.594;
ret List.723;
in
inc Bool.22;
jump List.714 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.722 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,51 +1,51 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.700 List.178 List.179 List.180 List.181 List.182:
let List.702 : Int1 = CallByName Num.22 List.181 List.182;
if List.702 then
let List.706 : [] = CallByName List.66 List.178 List.181;
let List.183 : List {} = CallByName List.296 List.179 List.706 List.180;
let List.705 : U64 = 1i64;
let List.704 : U64 = CallByName Num.51 List.181 List.705;
jump List.700 List.178 List.183 List.180 List.704 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.708 List.179 List.180 List.181 List.182 List.183:
let List.710 : Int1 = CallByName Num.22 List.182 List.183;
if List.710 then
let List.714 : [] = CallByName List.66 List.179 List.182;
let List.184 : List {} = CallByName List.297 List.180 List.714 List.181;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.182 List.713;
jump List.708 List.179 List.184 List.181 List.712 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.698 : U64 = 0i64;
let List.699 : U64 = CallByName List.6 List.175;
let List.697 : List {} = CallByName List.103 List.175 List.176 List.177 List.698 List.699;
ret List.697;
procedure List.18 (List.176, List.177, List.178):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.176;
let List.705 : List {} = CallByName List.104 List.176 List.177 List.178 List.706 List.707;
ret List.705;
procedure List.296 (List.297, List.298, List.294):
let List.711 : {} = CallByName Test.2 List.298;
let List.710 : List {} = CallByName List.71 List.297 List.711;
ret List.710;
procedure List.297 (List.298, List.299, List.295):
let List.719 : {} = CallByName Test.2 List.299;
let List.718 : List {} = CallByName List.71 List.298 List.719;
ret List.718;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.695 : List {} = CallByName List.68 List.295;
let List.694 : List {} = CallByName List.18 List.293 List.695 List.294;
ret List.694;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.703 : List {} = CallByName List.68 List.296;
let List.702 : List {} = CallByName List.18 List.294 List.703 List.295;
ret List.702;
procedure List.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.716;
procedure List.66 (#Attr.2, #Attr.3):
let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.715 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.68 (#Attr.2):
let List.713 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.713;
let List.721 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.721;
procedure List.71 (#Attr.2, #Attr.3):
let List.712 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.712;
let List.720 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.720;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,51 +1,51 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.700 List.178 List.179 List.180 List.181 List.182:
let List.702 : Int1 = CallByName Num.22 List.181 List.182;
if List.702 then
let List.706 : [] = CallByName List.66 List.178 List.181;
let List.183 : List [] = CallByName List.296 List.179 List.706 List.180;
let List.705 : U64 = 1i64;
let List.704 : U64 = CallByName Num.51 List.181 List.705;
jump List.700 List.178 List.183 List.180 List.704 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.708 List.179 List.180 List.181 List.182 List.183:
let List.710 : Int1 = CallByName Num.22 List.182 List.183;
if List.710 then
let List.714 : [] = CallByName List.66 List.179 List.182;
let List.184 : List [] = CallByName List.297 List.180 List.714 List.181;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.182 List.713;
jump List.708 List.179 List.184 List.181 List.712 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.698 : U64 = 0i64;
let List.699 : U64 = CallByName List.6 List.175;
let List.697 : List [] = CallByName List.103 List.175 List.176 List.177 List.698 List.699;
ret List.697;
procedure List.18 (List.176, List.177, List.178):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.176;
let List.705 : List [] = CallByName List.104 List.176 List.177 List.178 List.706 List.707;
ret List.705;
procedure List.296 (List.297, List.298, List.294):
let List.711 : [] = CallByName Test.2 List.298;
let List.710 : List [] = CallByName List.71 List.297 List.711;
ret List.710;
procedure List.297 (List.298, List.299, List.295):
let List.719 : [] = CallByName Test.2 List.299;
let List.718 : List [] = CallByName List.71 List.298 List.719;
ret List.718;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.695 : List [] = CallByName List.68 List.295;
let List.694 : List [] = CallByName List.18 List.293 List.695 List.294;
ret List.694;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.703 : List [] = CallByName List.68 List.296;
let List.702 : List [] = CallByName List.18 List.294 List.703 List.295;
ret List.702;
procedure List.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.716;
procedure List.66 (#Attr.2, #Attr.3):
let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.715 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.68 (#Attr.2):
let List.713 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.713;
let List.721 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.721;
procedure List.71 (#Attr.2, #Attr.3):
let List.712 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.712;
let List.720 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.720;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,32 +1,32 @@
procedure List.103 (Bool.34, Bool.35, Bool.36, Bool.37, Bool.38):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : [] = CallByName List.66 List.178 List.181;
let List.183 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (Bool.34, Bool.35, Bool.36, Bool.37, Bool.38):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : [] = CallByName List.66 List.179 List.182;
let List.184 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.34;
jump List.697 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38;
jump List.705 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : [<r>C {}, C *self {{}, []}] = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : [<r>C {}, C *self {{}, []}] = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,6 +1,6 @@
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
let List.702 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.702;
procedure Test.1 (Test.5):
let Test.2 : I64 = 41i64;

View file

@ -2,35 +2,35 @@ procedure Bool.2 ():
let Bool.21 : Int1 = true;
ret Bool.21;
procedure List.103 (Bool.29, Bool.30, Bool.31, Bool.32, Bool.33):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Int1 = CallByName List.66 List.178 List.181;
let List.183 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (Bool.29, Bool.30, Bool.31, Bool.32, Bool.33):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Int1 = CallByName List.66 List.179 List.182;
let List.184 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.29;
jump List.697 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33;
jump List.705 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -26,8 +26,8 @@ procedure Dict.52 ():
ret Dict.744;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
let List.702 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.702;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.289 : U8 = lowlevel NumSubWrap #Attr.2 #Attr.3;

View file

@ -2,25 +2,25 @@ procedure Bool.1 ():
let Bool.21 : Int1 = false;
ret Bool.21;
procedure List.2 (List.123, List.124):
let List.700 : U64 = CallByName List.6 List.123;
let List.696 : Int1 = CallByName Num.22 List.124 List.700;
if List.696 then
let List.698 : {} = CallByName List.66 List.123 List.124;
let List.697 : [C {}, C {}] = TagId(1) List.698;
ret List.697;
procedure List.2 (List.124, List.125):
let List.708 : U64 = CallByName List.6 List.124;
let List.704 : Int1 = CallByName Num.22 List.125 List.708;
if List.704 then
let List.706 : {} = CallByName List.66 List.124 List.125;
let List.705 : [C {}, C {}] = TagId(1) List.706;
ret List.705;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C {}] = TagId(0) List.695;
ret List.694;
let List.703 : {} = Struct {};
let List.702 : [C {}, C {}] = TagId(0) List.703;
ret List.702;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.66 (#Attr.2, #Attr.3):
let List.699 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
let List.707 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.139, List.140):
let List.697 : U64 = 1i64;
let List.695 : List U8 = CallByName List.70 List.139 List.697;
let List.694 : List U8 = CallByName List.71 List.695 List.140;
ret List.694;
procedure List.4 (List.140, List.141):
let List.705 : U64 = 1i64;
let List.703 : List U8 = CallByName List.70 List.140 List.705;
let List.702 : List U8 = CallByName List.71 List.703 List.141;
ret List.702;
procedure List.70 (#Attr.2, #Attr.3):
let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
let List.706 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.706;
procedure List.71 (#Attr.2, #Attr.3):
let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.704 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure Test.23 (Test.24, Test.35, Test.22):
let Test.37 : List U8 = CallByName List.4 Test.24 Test.22;

View file

@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.71 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
joinpoint List.731 List.179 List.180 List.181 List.182 List.183:
let List.733 : Int1 = CallByName Num.22 List.182 List.183;
if List.733 then
let List.737 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.737;
let List.184 : List U8 = CallByName Test.71 List.180 List.737;
let List.736 : U64 = 1i64;
let List.735 : U64 = CallByName Num.51 List.182 List.736;
jump List.731 List.179 List.184 List.181 List.735 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.35;
jump List.697 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
jump List.731 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
procedure List.103 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.723 List.178 List.179 List.180 List.181 List.182:
let List.725 : Int1 = CallByName Num.22 List.181 List.182;
if List.725 then
let List.729 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.729;
let List.183 : List U8 = CallByName Test.71 List.179 List.729;
let List.728 : U64 = 1i64;
let List.727 : U64 = CallByName Num.51 List.181 List.728;
jump List.723 List.178 List.183 List.180 List.727 List.182;
procedure List.104 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.71 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.40;
jump List.723 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
jump List.705 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.18 (List.175, List.176, List.177):
let List.721 : U64 = 0i64;
let List.722 : U64 = CallByName List.6 List.175;
let List.720 : List U8 = CallByName List.103 List.175 List.176 List.177 List.721 List.722;
ret List.720;
procedure List.18 (List.176, List.177, List.178):
let List.729 : U64 = 0i64;
let List.730 : U64 = CallByName List.6 List.176;
let List.728 : List U8 = CallByName List.104 List.176 List.177 List.178 List.729 List.730;
ret List.728;
procedure List.4 (List.139, List.140):
let List.742 : U64 = 1i64;
let List.741 : List U8 = CallByName List.70 List.139 List.742;
let List.740 : List U8 = CallByName List.71 List.741 List.140;
ret List.740;
procedure List.4 (List.140, List.141):
let List.750 : U64 = 1i64;
let List.749 : List U8 = CallByName List.70 List.140 List.750;
let List.748 : List U8 = CallByName List.71 List.749 List.141;
ret List.748;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.6 (#Attr.2):
let List.745 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.745;
let List.753 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.753;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.66 (#Attr.2, #Attr.3):
let List.730 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.730;
let List.738 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.738;
procedure List.70 (#Attr.2, #Attr.3):
let List.736 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.736;
let List.744 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.744;
procedure List.71 (#Attr.2, #Attr.3):
let List.734 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.734;
let List.742 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.742;
procedure List.8 (#Attr.2, #Attr.3):
let List.744 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.744;
let List.752 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.752;
procedure Num.127 (#Attr.2):
let Num.294 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.71 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.71 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.19;
jump List.697 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
jump List.705 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.4 (List.139, List.140):
let List.716 : U64 = 1i64;
let List.715 : List U8 = CallByName List.70 List.139 List.716;
let List.714 : List U8 = CallByName List.71 List.715 List.140;
ret List.714;
procedure List.4 (List.140, List.141):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.140 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.141;
ret List.722;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.71 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.71 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.23;
jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.705 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.4 (List.139, List.140):
let List.716 : U64 = 1i64;
let List.715 : List U8 = CallByName List.70 List.139 List.716;
let List.714 : List U8 = CallByName List.71 List.715 List.140;
ret List.714;
procedure List.4 (List.140, List.141):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.140 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.141;
ret List.722;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.4 (List.139, List.140):
let List.704 : U64 = 1i64;
let List.703 : List U8 = CallByName List.70 List.139 List.704;
let List.702 : List U8 = CallByName List.71 List.703 List.140;
ret List.702;
procedure List.4 (List.140, List.141):
let List.712 : U64 = 1i64;
let List.711 : List U8 = CallByName List.70 List.140 List.712;
let List.710 : List U8 = CallByName List.71 List.711 List.141;
ret List.710;
procedure List.70 (#Attr.2, #Attr.3):
let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
let List.706 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.706;
procedure List.71 (#Attr.2, #Attr.3):
let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.704 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.8 (#Attr.2, #Attr.3):
let List.706 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.706;
let List.714 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.714;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -40,58 +40,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Str = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.64 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Str = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.64 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.22;
jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
jump List.705 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
procedure List.13 (#Attr.2, #Attr.3):
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.728;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.4 (List.139, List.140):
let List.716 : U64 = 1i64;
let List.715 : List U8 = CallByName List.70 List.139 List.716;
let List.714 : List U8 = CallByName List.71 List.715 List.140;
ret List.714;
procedure List.4 (List.140, List.141):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.140 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.141;
ret List.722;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -43,58 +43,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Str = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.64 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Str = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.64 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.23;
jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.705 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.13 (#Attr.2, #Attr.3):
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.728;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.4 (List.139, List.140):
let List.716 : U64 = 1i64;
let List.715 : List U8 = CallByName List.70 List.139 List.716;
let List.714 : List U8 = CallByName List.71 List.715 List.140;
ret List.714;
procedure List.4 (List.140, List.141):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.140 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.141;
ret List.722;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -898,171 +898,171 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.101 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.745 List.155 List.156 List.157:
let List.753 : U64 = 0i64;
let List.747 : Int1 = CallByName Num.24 List.156 List.753;
if List.747 then
let List.752 : U64 = 1i64;
let List.749 : U64 = CallByName Num.75 List.156 List.752;
let List.750 : List {U32, U32} = CallByName List.71 List.157 List.155;
jump List.745 List.155 List.749 List.750;
procedure List.102 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.753 List.156 List.157 List.158:
let List.761 : U64 = 0i64;
let List.755 : Int1 = CallByName Num.24 List.157 List.761;
if List.755 then
let List.760 : U64 = 1i64;
let List.757 : U64 = CallByName Num.75 List.157 List.760;
let List.758 : List {U32, U32} = CallByName List.71 List.158 List.156;
jump List.753 List.156 List.757 List.758;
else
ret List.157;
ret List.158;
in
jump List.745 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
jump List.753 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure List.103 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, I64} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, I64} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.37;
jump List.697 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
jump List.705 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
procedure List.103 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46):
joinpoint List.760 List.178 List.179 List.180 List.181 List.182:
let List.762 : Int1 = CallByName Num.22 List.181 List.182;
if List.762 then
let List.766 : {Str, I64} = CallByName List.66 List.178 List.181;
inc List.766;
let List.183 : {Str, Int1} = CallByName Dict.188 List.179 List.766 List.180;
let List.765 : U64 = 1i64;
let List.764 : U64 = CallByName Num.51 List.181 List.765;
jump List.760 List.178 List.183 List.180 List.764 List.182;
procedure List.104 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46):
joinpoint List.768 List.179 List.180 List.181 List.182 List.183:
let List.770 : Int1 = CallByName Num.22 List.182 List.183;
if List.770 then
let List.774 : {Str, I64} = CallByName List.66 List.179 List.182;
inc List.774;
let List.184 : {Str, Int1} = CallByName Dict.188 List.180 List.774 List.181;
let List.773 : U64 = 1i64;
let List.772 : U64 = CallByName Num.51 List.182 List.773;
jump List.768 List.179 List.184 List.181 List.772 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.42;
jump List.760 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46;
jump List.768 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46;
procedure List.104 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51):
joinpoint List.736 List.187 List.188 List.189 List.190 List.191:
let List.738 : Int1 = CallByName Num.22 List.190 List.191;
if List.738 then
let List.742 : {Str, I64} = CallByName List.66 List.187 List.190;
inc List.742;
let List.192 : List {U32, U32} = CallByName Dict.407 List.188 List.742 List.190 List.189;
let List.741 : U64 = 1i64;
let List.740 : U64 = CallByName Num.51 List.190 List.741;
jump List.736 List.187 List.192 List.189 List.740 List.191;
procedure List.105 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51):
joinpoint List.744 List.188 List.189 List.190 List.191 List.192:
let List.746 : Int1 = CallByName Num.22 List.191 List.192;
if List.746 then
let List.750 : {Str, I64} = CallByName List.66 List.188 List.191;
inc List.750;
let List.193 : List {U32, U32} = CallByName Dict.407 List.189 List.750 List.191 List.190;
let List.749 : U64 = 1i64;
let List.748 : U64 = CallByName Num.51 List.191 List.749;
jump List.744 List.188 List.193 List.190 List.748 List.192;
else
dec List.187;
ret List.188;
dec List.188;
ret List.189;
in
inc #Derived_gen.47;
jump List.736 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51;
jump List.744 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51;
procedure List.11 (List.153, List.154):
let List.756 : List {U32, U32} = CallByName List.68 List.154;
let List.755 : List {U32, U32} = CallByName List.101 List.153 List.154 List.756;
ret List.755;
procedure List.11 (List.154, List.155):
let List.764 : List {U32, U32} = CallByName List.68 List.155;
let List.763 : List {U32, U32} = CallByName List.102 List.154 List.155 List.764;
ret List.763;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.18 (List.175, List.176, List.177):
let List.758 : U64 = 0i64;
let List.759 : U64 = CallByName List.6 List.175;
let List.757 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.758 List.759;
ret List.757;
procedure List.18 (List.176, List.177, List.178):
let List.766 : U64 = 0i64;
let List.767 : U64 = CallByName List.6 List.176;
let List.765 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.766 List.767;
ret List.765;
procedure List.3 (List.131, List.132, List.133):
let List.720 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.131 List.132 List.133;
let List.719 : List {U32, U32} = StructAtIndex 0 List.720;
ret List.719;
procedure List.3 (List.132, List.133, List.134):
let List.728 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.132 List.133 List.134;
let List.727 : List {U32, U32} = StructAtIndex 0 List.728;
ret List.727;
procedure List.3 (List.131, List.132, List.133):
let List.722 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.131 List.132 List.133;
let List.721 : List {Str, I64} = StructAtIndex 0 List.722;
let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.722;
procedure List.3 (List.132, List.133, List.134):
let List.730 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.132 List.133 List.134;
let List.729 : List {Str, I64} = StructAtIndex 0 List.730;
let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.730;
dec #Derived_gen.74;
ret List.721;
ret List.729;
procedure List.4 (List.139, List.140):
let List.731 : U64 = 1i64;
let List.729 : List {Str, I64} = CallByName List.70 List.139 List.731;
let List.728 : List {Str, I64} = CallByName List.71 List.729 List.140;
ret List.728;
procedure List.4 (List.140, List.141):
let List.739 : U64 = 1i64;
let List.737 : List {Str, I64} = CallByName List.70 List.140 List.739;
let List.736 : List {Str, I64} = CallByName List.71 List.737 List.141;
ret List.736;
procedure List.6 (#Attr.2):
let List.710 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.710;
let List.718 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.718;
procedure List.6 (#Attr.2):
let List.768 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.768;
let List.776 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.776;
procedure List.6 (#Attr.2):
let List.769 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.769;
let List.777 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.777;
procedure List.64 (List.128, List.129, List.130):
let List.718 : U64 = CallByName List.6 List.128;
let List.715 : Int1 = CallByName Num.22 List.129 List.718;
if List.715 then
let List.716 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.128 List.129 List.130;
ret List.716;
procedure List.64 (List.129, List.130, List.131):
let List.726 : U64 = CallByName List.6 List.129;
let List.723 : Int1 = CallByName Num.22 List.130 List.726;
if List.723 then
let List.724 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.129 List.130 List.131;
ret List.724;
else
let List.714 : {List {U32, U32}, {U32, U32}} = Struct {List.128, List.130};
ret List.714;
let List.722 : {List {U32, U32}, {U32, U32}} = Struct {List.129, List.131};
ret List.722;
procedure List.64 (List.128, List.129, List.130):
let List.727 : U64 = CallByName List.6 List.128;
let List.724 : Int1 = CallByName Num.22 List.129 List.727;
if List.724 then
let List.725 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.128 List.129 List.130;
ret List.725;
procedure List.64 (List.129, List.130, List.131):
let List.735 : U64 = CallByName List.6 List.129;
let List.732 : Int1 = CallByName Num.22 List.130 List.735;
if List.732 then
let List.733 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.129 List.130 List.131;
ret List.733;
else
let List.723 : {List {Str, I64}, {Str, I64}} = Struct {List.128, List.130};
ret List.723;
let List.731 : {List {Str, I64}, {Str, I64}} = Struct {List.129, List.131};
ret List.731;
procedure List.66 (#Attr.2, #Attr.3):
let List.767 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.767;
let List.775 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.775;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.717 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.717;
let List.725 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.725;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.726 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.726;
let List.734 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.734;
procedure List.68 (#Attr.2):
let List.754 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.754;
let List.762 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.762;
procedure List.70 (#Attr.2, #Attr.3):
let List.732 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.732;
let List.740 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.740;
procedure List.71 (#Attr.2, #Attr.3):
let List.730 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.730;
let List.738 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.738;
procedure List.71 (#Attr.2, #Attr.3):
let List.751 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.751;
let List.759 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.759;
procedure List.83 (List.184, List.185, List.186):
let List.734 : U64 = 0i64;
let List.735 : U64 = CallByName List.6 List.184;
let List.733 : List {U32, U32} = CallByName List.104 List.184 List.185 List.186 List.734 List.735;
ret List.733;
procedure List.83 (List.185, List.186, List.187):
let List.742 : U64 = 0i64;
let List.743 : U64 = CallByName List.6 List.185;
let List.741 : List {U32, U32} = CallByName List.105 List.185 List.186 List.187 List.742 List.743;
ret List.741;
procedure Num.131 (#Attr.2):
let Num.297 : U32 = lowlevel NumIntCast #Attr.2;

View file

@ -120,35 +120,35 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.103 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : I64 = CallByName List.66 List.178 List.181;
let List.183 : {Str, Int1} = CallByName Inspect.160 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : I64 = CallByName List.66 List.179 List.182;
let List.184 : {Str, Int1} = CallByName Inspect.160 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.10;
jump List.697 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
jump List.705 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -231,67 +231,67 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.103 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.33;
jump List.697 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
jump List.705 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
procedure List.103 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42):
joinpoint List.709 List.178 List.179 List.180 List.181 List.182:
let List.711 : Int1 = CallByName Num.22 List.181 List.182;
if List.711 then
let List.715 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.715;
let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.715;
let List.714 : U64 = 1i64;
let List.713 : U64 = CallByName Num.51 List.181 List.714;
jump List.709 List.178 List.183 List.180 List.713 List.182;
procedure List.104 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42):
joinpoint List.717 List.179 List.180 List.181 List.182 List.183:
let List.719 : Int1 = CallByName Num.22 List.182 List.183;
if List.719 then
let List.723 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.723;
let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.723;
let List.722 : U64 = 1i64;
let List.721 : U64 = CallByName Num.51 List.182 List.722;
jump List.717 List.179 List.184 List.181 List.721 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.38;
jump List.709 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
jump List.717 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.18 (List.175, List.176, List.177):
let List.707 : U64 = 0i64;
let List.708 : U64 = CallByName List.6 List.175;
let List.706 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.707 List.708;
ret List.706;
procedure List.18 (List.176, List.177, List.178):
let List.715 : U64 = 0i64;
let List.716 : U64 = CallByName List.6 List.176;
let List.714 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.715 List.716;
ret List.714;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.6 (#Attr.2):
let List.717 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.717;
let List.725 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.725;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.66 (#Attr.2, #Attr.3):
let List.716 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.716;
let List.724 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.724;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.296 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -150,36 +150,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.103 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {[C I64, C Decimal], Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {[C I64, C Decimal], Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.16;
jump List.697 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
jump List.705 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -156,36 +156,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.103 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.21;
jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.705 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -163,36 +163,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.103 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : {Str, Str} = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : {Str, Str} = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.25;
jump List.697 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29;
jump List.705 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -156,43 +156,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.1 (List.122):
let List.707 : U64 = CallByName List.6 List.122;
let List.708 : U64 = 0i64;
let List.706 : Int1 = CallByName Bool.9 List.707 List.708;
ret List.706;
procedure List.1 (List.123):
let List.715 : U64 = CallByName List.6 List.123;
let List.716 : U64 = 0i64;
let List.714 : Int1 = CallByName Bool.9 List.715 List.716;
ret List.714;
procedure List.103 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Str = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : Str = CallByName Inspect.207 List.179 List.703;
dec List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Str = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : Str = CallByName Inspect.207 List.180 List.711;
dec List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.21;
jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.705 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : Str = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : Str = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -159,43 +159,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.1 (List.122):
let List.707 : U64 = CallByName List.6 List.122;
let List.708 : U64 = 0i64;
let List.706 : Int1 = CallByName Bool.9 List.707 List.708;
ret List.706;
procedure List.1 (List.123):
let List.715 : U64 = CallByName List.6 List.123;
let List.716 : U64 = 0i64;
let List.714 : Int1 = CallByName Bool.9 List.715 List.716;
ret List.714;
procedure List.103 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Str = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : Str = CallByName Inspect.207 List.179 List.703;
dec List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Str = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : Str = CallByName Inspect.207 List.180 List.711;
dec List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.22;
jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
jump List.705 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : Str = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : Str = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.294 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -1,6 +1,6 @@
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
let List.702 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.702;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -6,40 +6,40 @@ procedure Bool.9 (#Attr.2, #Attr.3):
let Bool.22 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.22;
procedure List.2 (List.123, List.124):
let List.708 : U64 = CallByName List.6 List.123;
let List.704 : Int1 = CallByName Num.22 List.124 List.708;
if List.704 then
let List.706 : I64 = CallByName List.66 List.123 List.124;
let List.705 : [C {}, C I64] = TagId(1) List.706;
ret List.705;
procedure List.2 (List.124, List.125):
let List.716 : U64 = CallByName List.6 List.124;
let List.712 : Int1 = CallByName Num.22 List.125 List.716;
if List.712 then
let List.714 : I64 = CallByName List.66 List.124 List.125;
let List.713 : [C {}, C I64] = TagId(1) List.714;
ret List.713;
else
let List.703 : {} = Struct {};
let List.702 : [C {}, C I64] = TagId(0) List.703;
ret List.702;
let List.711 : {} = Struct {};
let List.710 : [C {}, C I64] = TagId(0) List.711;
ret List.710;
procedure List.6 (#Attr.2):
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
let List.717 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.717;
procedure List.66 (#Attr.2, #Attr.3):
let List.707 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.715 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.9 (List.404):
let List.701 : U64 = 0i64;
let List.694 : [C {}, C I64] = CallByName List.2 List.404 List.701;
let List.698 : U8 = 1i64;
let List.699 : U8 = GetTagId List.694;
let List.700 : Int1 = lowlevel Eq List.698 List.699;
if List.700 then
let List.405 : I64 = UnionAtIndex (Id 1) (Index 0) List.694;
let List.695 : [C Int1, C I64] = TagId(1) List.405;
ret List.695;
procedure List.9 (List.405):
let List.709 : U64 = 0i64;
let List.702 : [C {}, C I64] = CallByName List.2 List.405 List.709;
let List.706 : U8 = 1i64;
let List.707 : U8 = GetTagId List.702;
let List.708 : Int1 = lowlevel Eq List.706 List.707;
if List.708 then
let List.406 : I64 = UnionAtIndex (Id 1) (Index 0) List.702;
let List.703 : [C Int1, C I64] = TagId(1) List.406;
ret List.703;
else
let List.697 : Int1 = true;
let List.696 : [C Int1, C I64] = TagId(0) List.697;
ret List.696;
let List.705 : Int1 = true;
let List.704 : [C Int1, C I64] = TagId(0) List.705;
ret List.704;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -6,118 +6,118 @@ procedure Bool.2 ():
let Bool.22 : Int1 = true;
ret Bool.22;
procedure List.109 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35):
joinpoint List.732 List.303 List.304 List.305 List.306 List.307 List.308:
let List.734 : Int1 = CallByName Num.22 List.307 List.308;
if List.734 then
let List.740 : [<r>C I64, C List *self] = CallByName List.66 List.303 List.307;
inc List.740;
let List.741 : [<r>C I64, C List *self] = CallByName List.66 List.304 List.307;
inc List.741;
let List.309 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.740 List.741;
let List.736 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.305 List.309;
let List.738 : U64 = 1i64;
let List.737 : U64 = CallByName Num.51 List.307 List.738;
jump List.732 List.303 List.304 List.736 List.306 List.737 List.308;
procedure List.110 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35):
joinpoint List.740 List.304 List.305 List.306 List.307 List.308 List.309:
let List.742 : Int1 = CallByName Num.22 List.308 List.309;
if List.742 then
let List.748 : [<r>C I64, C List *self] = CallByName List.66 List.304 List.308;
inc List.748;
let List.749 : [<r>C I64, C List *self] = CallByName List.66 List.305 List.308;
inc List.749;
let List.310 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.748 List.749;
let List.744 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.306 List.310;
let List.746 : U64 = 1i64;
let List.745 : U64 = CallByName Num.51 List.308 List.746;
jump List.740 List.304 List.305 List.744 List.307 List.745 List.309;
else
dec List.304;
dec List.303;
ret List.305;
dec List.305;
ret List.306;
in
inc Bool.30;
inc Bool.31;
jump List.732 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35;
jump List.740 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35;
procedure List.119 (List.582, List.583, List.584):
let List.708 : U64 = 0i64;
let List.709 : U64 = CallByName List.6 List.582;
let List.707 : [C {}, C {}] = CallByName List.80 List.582 List.583 List.584 List.708 List.709;
ret List.707;
procedure List.120 (List.590, List.591, List.592):
let List.716 : U64 = 0i64;
let List.717 : U64 = CallByName List.6 List.590;
let List.715 : [C {}, C {}] = CallByName List.80 List.590 List.591 List.592 List.716 List.717;
ret List.715;
procedure List.23 (List.299, List.300, List.301):
let List.744 : U64 = CallByName List.6 List.299;
let List.745 : U64 = CallByName List.6 List.300;
let List.302 : U64 = CallByName Num.148 List.744 List.745;
let List.730 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.302;
let List.731 : U64 = 0i64;
let List.729 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.109 List.299 List.300 List.730 List.301 List.731 List.302;
ret List.729;
procedure List.23 (List.300, List.301, List.302):
let List.752 : U64 = CallByName List.6 List.300;
let List.753 : U64 = CallByName List.6 List.301;
let List.303 : U64 = CallByName Num.148 List.752 List.753;
let List.738 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.303;
let List.739 : U64 = 0i64;
let List.737 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.110 List.300 List.301 List.738 List.302 List.739 List.303;
ret List.737;
procedure List.251 (List.696, List.252, List.250):
let List.726 : Int1 = CallByName Test.1 List.252;
if List.726 then
let List.728 : {} = Struct {};
let List.727 : [C {}, C {}] = TagId(1) List.728;
ret List.727;
procedure List.252 (List.704, List.253, List.251):
let List.734 : Int1 = CallByName Test.1 List.253;
if List.734 then
let List.736 : {} = Struct {};
let List.735 : [C {}, C {}] = TagId(1) List.736;
ret List.735;
else
let List.725 : {} = Struct {};
let List.724 : [C {}, C {}] = TagId(0) List.725;
ret List.724;
let List.733 : {} = Struct {};
let List.732 : [C {}, C {}] = TagId(0) List.733;
ret List.732;
procedure List.56 (List.249, List.250):
let List.705 : {} = Struct {};
let List.697 : [C {}, C {}] = CallByName List.119 List.249 List.705 List.250;
let List.702 : U8 = 1i64;
let List.703 : U8 = GetTagId List.697;
let List.704 : Int1 = lowlevel Eq List.702 List.703;
if List.704 then
let List.698 : Int1 = CallByName Bool.2;
ret List.698;
procedure List.56 (List.250, List.251):
let List.713 : {} = Struct {};
let List.705 : [C {}, C {}] = CallByName List.120 List.250 List.713 List.251;
let List.710 : U8 = 1i64;
let List.711 : U8 = GetTagId List.705;
let List.712 : Int1 = lowlevel Eq List.710 List.711;
if List.712 then
let List.706 : Int1 = CallByName Bool.2;
ret List.706;
else
let List.699 : Int1 = CallByName Bool.1;
ret List.699;
let List.707 : Int1 = CallByName Bool.1;
ret List.707;
procedure List.6 (#Attr.2):
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.703;
procedure List.6 (#Attr.2):
let List.723 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.723;
let List.731 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.731;
procedure List.66 (#Attr.2, #Attr.3):
let List.722 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.722;
let List.730 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.730;
procedure List.66 (#Attr.2, #Attr.3):
let List.742 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.742;
let List.750 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.750;
procedure List.68 (#Attr.2):
let List.743 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.743;
let List.751 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.751;
procedure List.71 (#Attr.2, #Attr.3):
let List.739 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.739;
let List.747 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.747;
procedure List.80 (Bool.25, Bool.26, Bool.27, Bool.28, Bool.29):
joinpoint List.710 List.585 List.586 List.587 List.588 List.589:
let List.712 : Int1 = CallByName Num.22 List.588 List.589;
if List.712 then
let List.721 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.585 List.588;
inc List.721;
let List.713 : [C {}, C {}] = CallByName List.251 List.586 List.721 List.587;
let List.718 : U8 = 1i64;
let List.719 : U8 = GetTagId List.713;
let List.720 : Int1 = lowlevel Eq List.718 List.719;
if List.720 then
let List.590 : {} = UnionAtIndex (Id 1) (Index 0) List.713;
let List.716 : U64 = 1i64;
let List.715 : U64 = CallByName Num.51 List.588 List.716;
jump List.710 List.585 List.590 List.587 List.715 List.589;
joinpoint List.718 List.593 List.594 List.595 List.596 List.597:
let List.720 : Int1 = CallByName Num.22 List.596 List.597;
if List.720 then
let List.729 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.593 List.596;
inc List.729;
let List.721 : [C {}, C {}] = CallByName List.252 List.594 List.729 List.595;
let List.726 : U8 = 1i64;
let List.727 : U8 = GetTagId List.721;
let List.728 : Int1 = lowlevel Eq List.726 List.727;
if List.728 then
let List.598 : {} = UnionAtIndex (Id 1) (Index 0) List.721;
let List.724 : U64 = 1i64;
let List.723 : U64 = CallByName Num.51 List.596 List.724;
jump List.718 List.593 List.598 List.595 List.723 List.597;
else
dec List.585;
let List.591 : {} = UnionAtIndex (Id 0) (Index 0) List.713;
let List.717 : [C {}, C {}] = TagId(0) List.591;
ret List.717;
dec List.593;
let List.599 : {} = UnionAtIndex (Id 0) (Index 0) List.721;
let List.725 : [C {}, C {}] = TagId(0) List.599;
ret List.725;
else
dec List.585;
let List.711 : [C {}, C {}] = TagId(1) List.586;
ret List.711;
dec List.593;
let List.719 : [C {}, C {}] = TagId(1) List.594;
ret List.719;
in
inc Bool.25;
jump List.710 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29;
jump List.718 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29;
procedure Num.148 (Num.232, Num.233):
let Num.296 : Int1 = CallByName Num.22 Num.232 Num.233;

View file

@ -1,33 +1,33 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : [<rnu>C *self, <null>] = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.179 List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : [<rnu>C *self, <null>] = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.180 List.711;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.697 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.705 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.713;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.139, List.140):
let List.697 : U64 = 1i64;
let List.695 : List I64 = CallByName List.70 List.139 List.697;
let List.694 : List I64 = CallByName List.71 List.695 List.140;
ret List.694;
procedure List.4 (List.140, List.141):
let List.705 : U64 = 1i64;
let List.703 : List I64 = CallByName List.70 List.140 List.705;
let List.702 : List I64 = CallByName List.71 List.703 List.141;
ret List.702;
procedure List.70 (#Attr.2, #Attr.3):
let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
let List.706 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.706;
procedure List.71 (#Attr.2, #Attr.3):
let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.704 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure Test.0 ():
let Test.2 : List I64 = Array [1i64];

View file

@ -1,16 +1,16 @@
procedure List.4 (List.139, List.140):
let List.697 : U64 = 1i64;
let List.695 : List I64 = CallByName List.70 List.139 List.697;
let List.694 : List I64 = CallByName List.71 List.695 List.140;
ret List.694;
procedure List.4 (List.140, List.141):
let List.705 : U64 = 1i64;
let List.703 : List I64 = CallByName List.70 List.140 List.705;
let List.702 : List I64 = CallByName List.71 List.703 List.141;
ret List.702;
procedure List.70 (#Attr.2, #Attr.3):
let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
let List.706 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.706;
procedure List.71 (#Attr.2, #Attr.3):
let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.704 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure Test.1 (Test.2):
let Test.6 : I64 = 42i64;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.131, List.132, List.133):
let List.697 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133;
let List.696 : List I64 = StructAtIndex 0 List.697;
ret List.696;
procedure List.3 (List.132, List.133, List.134):
let List.705 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134;
let List.704 : List I64 = StructAtIndex 0 List.705;
ret List.704;
procedure List.6 (#Attr.2):
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.703;
procedure List.64 (List.128, List.129, List.130):
let List.702 : U64 = CallByName List.6 List.128;
let List.699 : Int1 = CallByName Num.22 List.129 List.702;
if List.699 then
let List.700 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130;
ret List.700;
procedure List.64 (List.129, List.130, List.131):
let List.710 : U64 = CallByName List.6 List.129;
let List.707 : Int1 = CallByName Num.22 List.130 List.710;
if List.707 then
let List.708 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131;
ret List.708;
else
let List.698 : {List I64, I64} = Struct {List.128, List.130};
ret List.698;
let List.706 : {List I64, I64} = Struct {List.129, List.131};
ret List.706;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.701 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.701;
let List.709 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.709;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.289 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,22 +1,22 @@
procedure List.2 (List.123, List.124):
let List.700 : U64 = CallByName List.6 List.123;
let List.696 : Int1 = CallByName Num.22 List.124 List.700;
if List.696 then
let List.698 : I64 = CallByName List.66 List.123 List.124;
let List.697 : [C {}, C I64] = TagId(1) List.698;
ret List.697;
procedure List.2 (List.124, List.125):
let List.708 : U64 = CallByName List.6 List.124;
let List.704 : Int1 = CallByName Num.22 List.125 List.708;
if List.704 then
let List.706 : I64 = CallByName List.66 List.124 List.125;
let List.705 : [C {}, C I64] = TagId(1) List.706;
ret List.705;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C I64] = TagId(0) List.695;
ret List.694;
let List.703 : {} = Struct {};
let List.702 : [C {}, C I64] = TagId(0) List.703;
ret List.702;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.66 (#Attr.2, #Attr.3):
let List.699 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
let List.707 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,10 +1,10 @@
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
let List.702 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.702;
procedure List.6 (#Attr.2):
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.703;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.289 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,66 +1,66 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.708 List.178 List.179 List.180 List.181 List.182:
let List.710 : Int1 = CallByName Num.22 List.181 List.182;
if List.710 then
let List.714 : Str = CallByName List.66 List.178 List.181;
inc List.714;
let List.183 : List Str = CallByName List.296 List.179 List.714 List.180;
dec List.714;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.181 List.713;
jump List.708 List.178 List.183 List.180 List.712 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.716 List.179 List.180 List.181 List.182 List.183:
let List.718 : Int1 = CallByName Num.22 List.182 List.183;
if List.718 then
let List.722 : Str = CallByName List.66 List.179 List.182;
inc List.722;
let List.184 : List Str = CallByName List.297 List.180 List.722 List.181;
dec List.722;
let List.721 : U64 = 1i64;
let List.720 : U64 = CallByName Num.51 List.182 List.721;
jump List.716 List.179 List.184 List.181 List.720 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.716 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.175;
let List.705 : List Str = CallByName List.103 List.175 List.176 List.177 List.706 List.707;
ret List.705;
procedure List.18 (List.176, List.177, List.178):
let List.714 : U64 = 0i64;
let List.715 : U64 = CallByName List.6 List.176;
let List.713 : List Str = CallByName List.104 List.176 List.177 List.178 List.714 List.715;
ret List.713;
procedure List.2 (List.123, List.124):
let List.700 : U64 = CallByName List.6 List.123;
let List.696 : Int1 = CallByName Num.22 List.124 List.700;
if List.696 then
let List.698 : Str = CallByName List.66 List.123 List.124;
inc List.698;
let List.697 : [C {}, C Str] = TagId(1) List.698;
ret List.697;
procedure List.2 (List.124, List.125):
let List.708 : U64 = CallByName List.6 List.124;
let List.704 : Int1 = CallByName Num.22 List.125 List.708;
if List.704 then
let List.706 : Str = CallByName List.66 List.124 List.125;
inc List.706;
let List.705 : [C {}, C Str] = TagId(1) List.706;
ret List.705;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C Str] = TagId(0) List.695;
ret List.694;
let List.703 : {} = Struct {};
let List.702 : [C {}, C Str] = TagId(0) List.703;
ret List.702;
procedure List.296 (List.297, List.298, List.294):
let List.717 : Str = CallByName Test.3 List.298;
let List.716 : List Str = CallByName List.71 List.297 List.717;
ret List.716;
procedure List.297 (List.298, List.299, List.295):
let List.725 : Str = CallByName Test.3 List.299;
let List.724 : List Str = CallByName List.71 List.298 List.725;
ret List.724;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.703 : List Str = CallByName List.68 List.295;
let List.702 : List Str = CallByName List.18 List.293 List.703 List.294;
ret List.702;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.711 : List Str = CallByName List.68 List.296;
let List.710 : List Str = CallByName List.18 List.294 List.711 List.295;
ret List.710;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.66 (#Attr.2, #Attr.3):
let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
let List.707 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.719 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.719;
let List.727 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.727;
procedure List.71 (#Attr.2, #Attr.3):
let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.718;
let List.726 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.726;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,65 +1,65 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.708 List.178 List.179 List.180 List.181 List.182:
let List.710 : Int1 = CallByName Num.22 List.181 List.182;
if List.710 then
let List.714 : Str = CallByName List.66 List.178 List.181;
inc List.714;
let List.183 : List Str = CallByName List.296 List.179 List.714 List.180;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.181 List.713;
jump List.708 List.178 List.183 List.180 List.712 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.716 List.179 List.180 List.181 List.182 List.183:
let List.718 : Int1 = CallByName Num.22 List.182 List.183;
if List.718 then
let List.722 : Str = CallByName List.66 List.179 List.182;
inc List.722;
let List.184 : List Str = CallByName List.297 List.180 List.722 List.181;
let List.721 : U64 = 1i64;
let List.720 : U64 = CallByName Num.51 List.182 List.721;
jump List.716 List.179 List.184 List.181 List.720 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.716 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.175;
let List.705 : List Str = CallByName List.103 List.175 List.176 List.177 List.706 List.707;
ret List.705;
procedure List.18 (List.176, List.177, List.178):
let List.714 : U64 = 0i64;
let List.715 : U64 = CallByName List.6 List.176;
let List.713 : List Str = CallByName List.104 List.176 List.177 List.178 List.714 List.715;
ret List.713;
procedure List.2 (List.123, List.124):
let List.700 : U64 = CallByName List.6 List.123;
let List.696 : Int1 = CallByName Num.22 List.124 List.700;
if List.696 then
let List.698 : Str = CallByName List.66 List.123 List.124;
inc List.698;
let List.697 : [C {}, C Str] = TagId(1) List.698;
ret List.697;
procedure List.2 (List.124, List.125):
let List.708 : U64 = CallByName List.6 List.124;
let List.704 : Int1 = CallByName Num.22 List.125 List.708;
if List.704 then
let List.706 : Str = CallByName List.66 List.124 List.125;
inc List.706;
let List.705 : [C {}, C Str] = TagId(1) List.706;
ret List.705;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C Str] = TagId(0) List.695;
ret List.694;
let List.703 : {} = Struct {};
let List.702 : [C {}, C Str] = TagId(0) List.703;
ret List.702;
procedure List.296 (List.297, List.298, List.294):
let List.717 : Str = CallByName Test.3 List.298;
let List.716 : List Str = CallByName List.71 List.297 List.717;
ret List.716;
procedure List.297 (List.298, List.299, List.295):
let List.725 : Str = CallByName Test.3 List.299;
let List.724 : List Str = CallByName List.71 List.298 List.725;
ret List.724;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.703 : List Str = CallByName List.68 List.295;
let List.702 : List Str = CallByName List.18 List.293 List.703 List.294;
ret List.702;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.711 : List Str = CallByName List.68 List.296;
let List.710 : List Str = CallByName List.18 List.294 List.711 List.295;
ret List.710;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.66 (#Attr.2, #Attr.3):
let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
let List.707 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.719 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.719;
let List.727 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.727;
procedure List.71 (#Attr.2, #Attr.3):
let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.718;
let List.726 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.726;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,66 +1,66 @@
procedure List.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.700 List.178 List.179 List.180 List.181 List.182:
let List.702 : Int1 = CallByName Num.22 List.181 List.182;
if List.702 then
let List.706 : U8 = CallByName List.66 List.178 List.181;
let List.183 : List U8 = CallByName List.296 List.179 List.706 List.180;
let List.705 : U64 = 1i64;
let List.704 : U64 = CallByName Num.51 List.181 List.705;
jump List.700 List.178 List.183 List.180 List.704 List.182;
procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.708 List.179 List.180 List.181 List.182 List.183:
let List.710 : Int1 = CallByName Num.22 List.182 List.183;
if List.710 then
let List.714 : U8 = CallByName List.66 List.179 List.182;
let List.184 : List U8 = CallByName List.297 List.180 List.714 List.181;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.182 List.713;
jump List.708 List.179 List.184 List.181 List.712 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.21;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.175, List.176, List.177):
let List.698 : U64 = 0i64;
let List.699 : U64 = CallByName List.6 List.175;
let List.697 : List U8 = CallByName List.103 List.175 List.176 List.177 List.698 List.699;
ret List.697;
procedure List.18 (List.176, List.177, List.178):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.176;
let List.705 : List U8 = CallByName List.104 List.176 List.177 List.178 List.706 List.707;
ret List.705;
procedure List.296 (List.297, List.298, List.294):
let List.713 : U8 = GetTagId List.294;
joinpoint List.714 List.711:
let List.710 : List U8 = CallByName List.71 List.297 List.711;
ret List.710;
procedure List.297 (List.298, List.299, List.295):
let List.721 : U8 = GetTagId List.295;
joinpoint List.722 List.719:
let List.718 : List U8 = CallByName List.71 List.298 List.719;
ret List.718;
in
switch List.713:
switch List.721:
case 0:
let List.715 : U8 = CallByName Test.4 List.298 List.294;
jump List.714 List.715;
let List.723 : U8 = CallByName Test.4 List.299 List.295;
jump List.722 List.723;
case 1:
let List.715 : U8 = CallByName Test.6 List.298 List.294;
jump List.714 List.715;
let List.723 : U8 = CallByName Test.6 List.299 List.295;
jump List.722 List.723;
default:
let List.715 : U8 = CallByName Test.8 List.298;
jump List.714 List.715;
let List.723 : U8 = CallByName Test.8 List.299;
jump List.722 List.723;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.695 : List U8 = CallByName List.68 List.295;
let List.694 : List U8 = CallByName List.18 List.293 List.695 List.294;
ret List.694;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.703 : List U8 = CallByName List.68 List.296;
let List.702 : List U8 = CallByName List.18 List.294 List.703 List.295;
ret List.702;
procedure List.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.66 (#Attr.2, #Attr.3):
let List.707 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.716 : List U8 = lowlevel ListWithCapacity #Attr.2;
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.716;
procedure List.66 (#Attr.2, #Attr.3):
let List.715 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.68 (#Attr.2):
let List.724 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.724;
procedure List.71 (#Attr.2, #Attr.3):
let List.712 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.712;
let List.720 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.720;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.131, List.132, List.133):
let List.695 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133;
let List.694 : List I64 = StructAtIndex 0 List.695;
ret List.694;
procedure List.3 (List.132, List.133, List.134):
let List.703 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134;
let List.702 : List I64 = StructAtIndex 0 List.703;
ret List.702;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.64 (List.128, List.129, List.130):
let List.700 : U64 = CallByName List.6 List.128;
let List.697 : Int1 = CallByName Num.22 List.129 List.700;
if List.697 then
let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130;
ret List.698;
procedure List.64 (List.129, List.130, List.131):
let List.708 : U64 = CallByName List.6 List.129;
let List.705 : Int1 = CallByName Num.22 List.130 List.708;
if List.705 then
let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131;
ret List.706;
else
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
let List.704 : {List I64, I64} = Struct {List.129, List.131};
ret List.704;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,11 +1,11 @@
procedure List.28 (#Attr.2, #Attr.3):
let List.696 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.696;
let List.704 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.704;
procedure List.59 (List.399):
let List.695 : {} = Struct {};
let List.694 : List I64 = CallByName List.28 List.399 List.695;
ret List.694;
procedure List.59 (List.400):
let List.703 : {} = Struct {};
let List.702 : List I64 = CallByName List.28 List.400 List.703;
ret List.702;
procedure Num.46 (#Attr.2, #Attr.3):
let Num.289 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;

View file

@ -1,41 +1,41 @@
procedure List.2 (List.123, List.124):
let List.716 : U64 = CallByName List.6 List.123;
let List.713 : Int1 = CallByName Num.22 List.124 List.716;
if List.713 then
let List.715 : I64 = CallByName List.66 List.123 List.124;
let List.714 : [C {}, C I64] = TagId(1) List.715;
ret List.714;
procedure List.2 (List.124, List.125):
let List.724 : U64 = CallByName List.6 List.124;
let List.721 : Int1 = CallByName Num.22 List.125 List.724;
if List.721 then
let List.723 : I64 = CallByName List.66 List.124 List.125;
let List.722 : [C {}, C I64] = TagId(1) List.723;
ret List.722;
else
let List.712 : {} = Struct {};
let List.711 : [C {}, C I64] = TagId(0) List.712;
ret List.711;
let List.720 : {} = Struct {};
let List.719 : [C {}, C I64] = TagId(0) List.720;
ret List.719;
procedure List.3 (List.131, List.132, List.133):
let List.703 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133;
let List.702 : List I64 = StructAtIndex 0 List.703;
ret List.702;
procedure List.3 (List.132, List.133, List.134):
let List.711 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134;
let List.710 : List I64 = StructAtIndex 0 List.711;
ret List.710;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.128, List.129, List.130):
let List.700 : U64 = CallByName List.6 List.128;
let List.697 : Int1 = CallByName Num.22 List.129 List.700;
if List.697 then
let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130;
ret List.698;
else
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
procedure List.66 (#Attr.2, #Attr.3):
let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.64 (List.129, List.130, List.131):
let List.708 : U64 = CallByName List.6 List.129;
let List.705 : Int1 = CallByName Num.22 List.130 List.708;
if List.705 then
let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131;
ret List.706;
else
let List.704 : {List I64, I64} = Struct {List.129, List.131};
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.717 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.717;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.131, List.132, List.133):
let List.703 : {List U64, U64} = CallByName List.64 List.131 List.132 List.133;
let List.702 : List U64 = StructAtIndex 0 List.703;
ret List.702;
procedure List.3 (List.132, List.133, List.134):
let List.711 : {List U64, U64} = CallByName List.64 List.132 List.133 List.134;
let List.710 : List U64 = StructAtIndex 0 List.711;
ret List.710;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.64 (List.128, List.129, List.130):
let List.700 : U64 = CallByName List.6 List.128;
let List.697 : Int1 = CallByName Num.22 List.129 List.700;
if List.697 then
let List.698 : {List U64, U64} = CallByName List.67 List.128 List.129 List.130;
ret List.698;
procedure List.64 (List.129, List.130, List.131):
let List.708 : U64 = CallByName List.6 List.129;
let List.705 : Int1 = CallByName Num.22 List.130 List.708;
if List.705 then
let List.706 : {List U64, U64} = CallByName List.67 List.129 List.130 List.131;
ret List.706;
else
let List.696 : {List U64, U64} = Struct {List.128, List.130};
ret List.696;
let List.704 : {List U64, U64} = Struct {List.129, List.131};
ret List.704;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.699 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
let List.707 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,52 +1,52 @@
procedure List.103 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.700 List.178 List.179 List.180 List.181 List.182:
let List.702 : Int1 = CallByName Num.22 List.181 List.182;
if List.702 then
let List.706 : [<rnnu>C List *self] = CallByName List.66 List.178 List.181;
inc List.706;
let List.183 : List [<rnnu>C List *self] = CallByName List.296 List.179 List.706 List.180;
let List.705 : U64 = 1i64;
let List.704 : U64 = CallByName Num.51 List.181 List.705;
jump List.700 List.178 List.183 List.180 List.704 List.182;
procedure List.104 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.708 List.179 List.180 List.181 List.182 List.183:
let List.710 : Int1 = CallByName Num.22 List.182 List.183;
if List.710 then
let List.714 : [<rnnu>C List *self] = CallByName List.66 List.179 List.182;
inc List.714;
let List.184 : List [<rnnu>C List *self] = CallByName List.297 List.180 List.714 List.181;
let List.713 : U64 = 1i64;
let List.712 : U64 = CallByName Num.51 List.182 List.713;
jump List.708 List.179 List.184 List.181 List.712 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc Bool.22;
jump List.700 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.708 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
procedure List.18 (List.175, List.176, List.177):
let List.698 : U64 = 0i64;
let List.699 : U64 = CallByName List.6 List.175;
let List.697 : List [<rnnu>C List *self] = CallByName List.103 List.175 List.176 List.177 List.698 List.699;
ret List.697;
procedure List.18 (List.176, List.177, List.178):
let List.706 : U64 = 0i64;
let List.707 : U64 = CallByName List.6 List.176;
let List.705 : List [<rnnu>C List *self] = CallByName List.104 List.176 List.177 List.178 List.706 List.707;
ret List.705;
procedure List.296 (List.297, List.298, List.294):
let List.711 : [<rnnu>C List *self] = CallByName Test.2 List.298;
let List.710 : List [<rnnu>C List *self] = CallByName List.71 List.297 List.711;
ret List.710;
procedure List.297 (List.298, List.299, List.295):
let List.719 : [<rnnu>C List *self] = CallByName Test.2 List.299;
let List.718 : List [<rnnu>C List *self] = CallByName List.71 List.298 List.719;
ret List.718;
procedure List.5 (List.293, List.294):
let List.295 : U64 = CallByName List.6 List.293;
let List.695 : List [<rnnu>C List *self] = CallByName List.68 List.295;
let List.694 : List [<rnnu>C List *self] = CallByName List.18 List.293 List.695 List.294;
ret List.694;
procedure List.5 (List.294, List.295):
let List.296 : U64 = CallByName List.6 List.294;
let List.703 : List [<rnnu>C List *self] = CallByName List.68 List.296;
let List.702 : List [<rnnu>C List *self] = CallByName List.18 List.294 List.703 List.295;
ret List.702;
procedure List.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.716;
procedure List.66 (#Attr.2, #Attr.3):
let List.707 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.715 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.68 (#Attr.2):
let List.713 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.713;
let List.721 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.721;
procedure List.71 (#Attr.2, #Attr.3):
let List.712 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.712;
let List.720 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.720;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,41 +1,41 @@
procedure List.2 (List.123, List.124):
let List.716 : U64 = CallByName List.6 List.123;
let List.713 : Int1 = CallByName Num.22 List.124 List.716;
if List.713 then
let List.715 : I64 = CallByName List.66 List.123 List.124;
let List.714 : [C {}, C I64] = TagId(1) List.715;
ret List.714;
procedure List.2 (List.124, List.125):
let List.724 : U64 = CallByName List.6 List.124;
let List.721 : Int1 = CallByName Num.22 List.125 List.724;
if List.721 then
let List.723 : I64 = CallByName List.66 List.124 List.125;
let List.722 : [C {}, C I64] = TagId(1) List.723;
ret List.722;
else
let List.712 : {} = Struct {};
let List.711 : [C {}, C I64] = TagId(0) List.712;
ret List.711;
let List.720 : {} = Struct {};
let List.719 : [C {}, C I64] = TagId(0) List.720;
ret List.719;
procedure List.3 (List.131, List.132, List.133):
let List.703 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133;
let List.702 : List I64 = StructAtIndex 0 List.703;
ret List.702;
procedure List.3 (List.132, List.133, List.134):
let List.711 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134;
let List.710 : List I64 = StructAtIndex 0 List.711;
ret List.710;
procedure List.6 (#Attr.2):
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.128, List.129, List.130):
let List.700 : U64 = CallByName List.6 List.128;
let List.697 : Int1 = CallByName Num.22 List.129 List.700;
if List.697 then
let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130;
ret List.698;
else
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
procedure List.66 (#Attr.2, #Attr.3):
let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.64 (List.129, List.130, List.131):
let List.708 : U64 = CallByName List.6 List.129;
let List.705 : Int1 = CallByName Num.22 List.130 List.708;
if List.705 then
let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131;
ret List.706;
else
let List.704 : {List I64, I64} = Struct {List.129, List.131};
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.717 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.717;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.707;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -29,58 +29,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : Str = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.66 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : Str = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.66 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.9;
jump List.697 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13;
jump List.705 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13;
procedure List.13 (#Attr.2, #Attr.3):
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.728;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.4 (List.139, List.140):
let List.716 : U64 = 1i64;
let List.715 : List U8 = CallByName List.70 List.139 List.716;
let List.714 : List U8 = CallByName List.71 List.715 List.140;
ret List.714;
procedure List.4 (List.140, List.141):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.140 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.141;
ret List.722;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.290 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -87,93 +87,93 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.103 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
joinpoint List.724 List.178 List.179 List.180 List.181 List.182:
let List.726 : Int1 = CallByName Num.22 List.181 List.182;
if List.726 then
let List.730 : Str = CallByName List.66 List.178 List.181;
inc List.730;
let List.183 : List U8 = CallByName Test.66 List.179 List.730 List.180;
let List.729 : U64 = 1i64;
let List.728 : U64 = CallByName Num.51 List.181 List.729;
jump List.724 List.178 List.183 List.180 List.728 List.182;
procedure List.104 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
joinpoint List.705 List.179 List.180 List.181 List.182 List.183:
let List.707 : Int1 = CallByName Num.22 List.182 List.183;
if List.707 then
let List.711 : [C {}, C {}, C Str] = CallByName List.66 List.179 List.182;
inc List.711;
let List.184 : List U8 = CallByName Test.66 List.180 List.711 List.181;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.182 List.710;
jump List.705 List.179 List.184 List.181 List.709 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.44;
jump List.724 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
jump List.705 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
procedure List.103 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.697 List.178 List.179 List.180 List.181 List.182:
let List.699 : Int1 = CallByName Num.22 List.181 List.182;
if List.699 then
let List.703 : [C {}, C {}, C Str] = CallByName List.66 List.178 List.181;
inc List.703;
let List.183 : List U8 = CallByName Test.66 List.179 List.703 List.180;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.181 List.702;
jump List.697 List.178 List.183 List.180 List.701 List.182;
procedure List.104 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.732 List.179 List.180 List.181 List.182 List.183:
let List.734 : Int1 = CallByName Num.22 List.182 List.183;
if List.734 then
let List.738 : Str = CallByName List.66 List.179 List.182;
inc List.738;
let List.184 : List U8 = CallByName Test.66 List.180 List.738 List.181;
let List.737 : U64 = 1i64;
let List.736 : U64 = CallByName Num.51 List.182 List.737;
jump List.732 List.179 List.184 List.181 List.736 List.183;
else
dec List.178;
ret List.179;
dec List.179;
ret List.180;
in
inc #Derived_gen.49;
jump List.697 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
jump List.732 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
procedure List.13 (#Attr.2, #Attr.3):
let List.720 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
let List.728 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.728;
procedure List.13 (#Attr.2, #Attr.3):
let List.748 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.748;
let List.756 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.756;
procedure List.18 (List.175, List.176, List.177):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.175;
let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696;
ret List.694;
procedure List.18 (List.176, List.177, List.178):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.176;
let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704;
ret List.702;
procedure List.18 (List.175, List.176, List.177):
let List.722 : U64 = 0i64;
let List.723 : U64 = CallByName List.6 List.175;
let List.721 : List U8 = CallByName List.103 List.175 List.176 List.177 List.722 List.723;
ret List.721;
procedure List.18 (List.176, List.177, List.178):
let List.730 : U64 = 0i64;
let List.731 : U64 = CallByName List.6 List.176;
let List.729 : List U8 = CallByName List.104 List.176 List.177 List.178 List.730 List.731;
ret List.729;
procedure List.4 (List.139, List.140):
let List.743 : U64 = 1i64;
let List.742 : List U8 = CallByName List.70 List.139 List.743;
let List.741 : List U8 = CallByName List.71 List.742 List.140;
ret List.741;
procedure List.4 (List.140, List.141):
let List.751 : U64 = 1i64;
let List.750 : List U8 = CallByName List.70 List.140 List.751;
let List.749 : List U8 = CallByName List.71 List.750 List.141;
ret List.749;
procedure List.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.6 (#Attr.2):
let List.746 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.746;
let List.754 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.754;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
let List.712 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.66 (#Attr.2, #Attr.3):
let List.731 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.731;
let List.739 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.739;
procedure List.70 (#Attr.2, #Attr.3):
let List.737 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.737;
let List.745 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.745;
procedure List.71 (#Attr.2, #Attr.3):
let List.735 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.735;
let List.743 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.743;
procedure List.8 (#Attr.2, #Attr.3):
let List.745 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.745;
let List.753 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.753;
procedure Num.127 (#Attr.2):
let Num.294 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -2,81 +2,81 @@ procedure Bool.9 (#Attr.2, #Attr.3):
let Bool.21 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.21;
procedure List.119 (List.582, List.583, List.584):
let List.712 : U64 = 0i64;
let List.713 : U64 = CallByName List.6 List.582;
let List.711 : [C U64, C U64] = CallByName List.80 List.582 List.583 List.584 List.712 List.713;
ret List.711;
procedure List.120 (List.590, List.591, List.592):
let List.720 : U64 = 0i64;
let List.721 : U64 = CallByName List.6 List.590;
let List.719 : [C U64, C U64] = CallByName List.80 List.590 List.591 List.592 List.720 List.721;
ret List.719;
procedure List.26 (List.216, List.217, List.218):
let List.705 : [C U64, C U64] = CallByName List.119 List.216 List.217 List.218;
let List.708 : U8 = 1i64;
let List.709 : U8 = GetTagId List.705;
let List.710 : Int1 = lowlevel Eq List.708 List.709;
if List.710 then
let List.219 : U64 = UnionAtIndex (Id 1) (Index 0) List.705;
ret List.219;
else
let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705;
procedure List.26 (List.217, List.218, List.219):
let List.713 : [C U64, C U64] = CallByName List.120 List.217 List.218 List.219;
let List.716 : U8 = 1i64;
let List.717 : U8 = GetTagId List.713;
let List.718 : Int1 = lowlevel Eq List.716 List.717;
if List.718 then
let List.220 : U64 = UnionAtIndex (Id 1) (Index 0) List.713;
ret List.220;
else
let List.221 : U64 = UnionAtIndex (Id 0) (Index 0) List.713;
ret List.221;
procedure List.38 (List.413, List.414):
let List.704 : U64 = CallByName List.6 List.413;
let List.415 : U64 = CallByName Num.77 List.704 List.414;
let List.694 : List U8 = CallByName List.43 List.413 List.415;
ret List.694;
procedure List.38 (List.414, List.415):
let List.712 : U64 = CallByName List.6 List.414;
let List.416 : U64 = CallByName Num.77 List.712 List.415;
let List.702 : List U8 = CallByName List.43 List.414 List.416;
ret List.702;
procedure List.43 (List.411, List.412):
let List.702 : U64 = CallByName List.6 List.411;
let List.701 : U64 = CallByName Num.77 List.702 List.412;
let List.696 : {U64, U64} = Struct {List.412, List.701};
let List.695 : List U8 = CallByName List.49 List.411 List.696;
ret List.695;
procedure List.49 (List.489, List.490):
let List.698 : U64 = StructAtIndex 1 List.490;
let List.699 : U64 = StructAtIndex 0 List.490;
let List.697 : List U8 = CallByName List.72 List.489 List.698 List.699;
ret List.697;
procedure List.6 (#Attr.2):
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
procedure List.43 (List.412, List.413):
let List.710 : U64 = CallByName List.6 List.412;
let List.709 : U64 = CallByName Num.77 List.710 List.413;
let List.704 : {U64, U64} = Struct {List.413, List.709};
let List.703 : List U8 = CallByName List.49 List.412 List.704;
ret List.703;
procedure List.49 (List.497, List.498):
let List.706 : U64 = StructAtIndex 1 List.498;
let List.707 : U64 = StructAtIndex 0 List.498;
let List.705 : List U8 = CallByName List.72 List.497 List.706 List.707;
ret List.705;
procedure List.6 (#Attr.2):
let List.711 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.711;
procedure List.66 (#Attr.2, #Attr.3):
let List.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.726;
let List.734 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.734;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.700;
let List.708 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.708;
procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.714 List.585 List.586 List.587 List.588 List.589:
let List.716 : Int1 = CallByName Num.22 List.588 List.589;
if List.716 then
let List.725 : U8 = CallByName List.66 List.585 List.588;
let List.717 : [C U64, C U64] = CallByName Test.3 List.586 List.725;
let List.722 : U8 = 1i64;
let List.723 : U8 = GetTagId List.717;
let List.724 : Int1 = lowlevel Eq List.722 List.723;
if List.724 then
let List.590 : U64 = UnionAtIndex (Id 1) (Index 0) List.717;
let List.720 : U64 = 1i64;
let List.719 : U64 = CallByName Num.51 List.588 List.720;
jump List.714 List.585 List.590 List.587 List.719 List.589;
joinpoint List.722 List.593 List.594 List.595 List.596 List.597:
let List.724 : Int1 = CallByName Num.22 List.596 List.597;
if List.724 then
let List.733 : U8 = CallByName List.66 List.593 List.596;
let List.725 : [C U64, C U64] = CallByName Test.3 List.594 List.733;
let List.730 : U8 = 1i64;
let List.731 : U8 = GetTagId List.725;
let List.732 : Int1 = lowlevel Eq List.730 List.731;
if List.732 then
let List.598 : U64 = UnionAtIndex (Id 1) (Index 0) List.725;
let List.728 : U64 = 1i64;
let List.727 : U64 = CallByName Num.51 List.596 List.728;
jump List.722 List.593 List.598 List.595 List.727 List.597;
else
dec List.585;
let List.591 : U64 = UnionAtIndex (Id 0) (Index 0) List.717;
let List.721 : [C U64, C U64] = TagId(0) List.591;
ret List.721;
dec List.593;
let List.599 : U64 = UnionAtIndex (Id 0) (Index 0) List.725;
let List.729 : [C U64, C U64] = TagId(0) List.599;
ret List.729;
else
dec List.585;
let List.715 : [C U64, C U64] = TagId(1) List.586;
ret List.715;
dec List.593;
let List.723 : [C U64, C U64] = TagId(1) List.594;
ret List.723;
in
inc Bool.22;
jump List.714 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.722 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;