added List.keep_if_try! (#7804)

* added keep_if_try!

* cleanup types

* cleanup var name
This commit is contained in:
Anton-4 2025-05-21 21:12:24 +02:00 committed by GitHub
parent e1f4ac1a96
commit c93e27ca9a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
48 changed files with 1479 additions and 1382 deletions

View file

@ -1050,6 +1050,23 @@ mod cli_tests {
let cli_dev_out = cli_dev.run();
cli_dev_out.assert_clean_success();
}
#[test]
#[cfg_attr(windows, ignore)]
fn effectful_keep_if_try() {
build_platform_host();
let cli_dev = ExecCli::new(
roc_cli::CMD_DEV,
file_from_root(
"crates/cli/tests/test-projects/effectful",
"keep_if_try.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,56 @@
app [main!] { pf: platform "../test-platform-effects-zig/main.roc" }
import pf.Effect
main! : {} => {}
main! = \{} ->
when run!({}) is
Ok({}) ->
Effect.put_line!("Success!")
Err(err) ->
crash "Error: ${Inspect.to_str(err)}"
run! : {} => Result {} [StrErr(Str), NotZeroOrOne]
run! = \{} ->
sanity_check_bool = is_zero!(0)?
err_on_false(sanity_check_bool, "sanity check")?
two_zeros = List.keep_if_try!([1, 0, 0], is_zero!)?
err_on_false((two_zeros == [0, 0]), "test 1")?
one_zero = List.keep_if_try!([0, 1], is_zero!)?
err_on_false((one_zero == [0]), "test 2")?
one_zero_again = List.keep_if_try!([1, 0], is_zero!)?
err_on_false((one_zero_again == [0]), "test 3")?
three_zeros = List.keep_if_try!([0, 0, 0], is_zero!)?
err_on_false((three_zeros == [0, 0, 0]), "test 4")?
just_one = List.keep_if_try!([1], is_zero!)?
err_on_false((just_one == []), "test 5")?
one_zero_input = List.keep_if_try!([0], is_zero!)?
err_on_false((one_zero_input == [0]), "test 6")?
empty_list = List.keep_if_try!([], is_zero!)?
err_on_false((empty_list == []), "test 7")?
Ok({})
is_zero! : U64 => Result Bool [NotZeroOrOne]
is_zero! = \num ->
_ = Effect.id_effectful!(num)
if num == 0 then
Ok(Bool.true)
else if num == 1 then
Ok(Bool.false)
else
Err(NotZeroOrOne)
err_on_false : Bool, Str -> Result {} [StrErr(Str)]
err_on_false = |bool, test_name|
if bool then
Ok({})
else
Err(StrErr("Test failed: ${Inspect.to_str(test_name)}"))

View file

@ -21,6 +21,7 @@ module [
reverse,
join,
keep_if,
keep_if_try!,
contains,
sum,
walk,
@ -679,6 +680,28 @@ keep_if_help = |list, predicate, kept, index, length|
else
List.take_first(list, kept)
## Run an effectful function that returns a [Result] on each element of a list, and return all the
## elements for which the function returned `Ok(Bool.true)`.
## ```roc
## dirs_only = List.keep_if_try!(path_list, Path.is_dir!)?
## ```
##
keep_if_try! : List a, (a => Result Bool err) => Result (List a) err
keep_if_try! = |list, predicate!|
length = List.len(list)
keep_if_try_help!(list, predicate!, 0, 0, length)
keep_if_try_help! : List a, (a => Result Bool err), U64, U64, U64 => Result (List a) err
keep_if_try_help! = |list, predicate!, kept, index, length|
if index < length then
if predicate!(List.get_unsafe(list, index))? then
keep_if_try_help!(List.swap(list, kept, index), predicate!, Num.add_wrap(kept, 1), Num.add_wrap(index, 1), length)
else
keep_if_try_help!(list, predicate!, kept, Num.add_wrap(index, 1), length)
else
Ok(List.take_first(list, kept))
## Run the given function on each element of a list, and return all the
## elements for which the function returned `Bool.false`.
## ```roc

View file

@ -1532,6 +1532,7 @@ define_builtins! {
94 LIST_SPLIT_ON_LIST: "split_on_list"
95 LIST_WALK_TRY_FX: "walk_try!"
96 LIST_MAP_TRY_FX: "map_try!"
97 LIST_KEEP_IF_TRY_FX: "keep_if_try!"
}
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.117 (List.571, List.572, List.573):
let List.701 : U64 = 0i64;
let List.702 : U64 = CallByName List.6 List.571;
let List.700 : [C U64, C U64] = CallByName List.80 List.571 List.572 List.573 List.701 List.702;
ret List.700;
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.26 (List.214, List.215, List.216):
let List.694 : [C U64, C U64] = CallByName List.117 List.214 List.215 List.216;
let List.697 : U8 = 1i64;
let List.698 : U8 = GetTagId List.694;
let List.699 : Int1 = lowlevel Eq List.697 List.698;
if List.699 then
let List.217 : U64 = UnionAtIndex (Id 1) (Index 0) List.694;
ret List.217;
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.218 : U64 = UnionAtIndex (Id 0) (Index 0) List.694;
ret List.218;
let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705;
ret List.220;
procedure List.38 (List.402, List.403):
let List.693 : U64 = CallByName List.6 List.402;
let List.404 : U64 = CallByName Num.77 List.693 List.403;
let List.683 : List U8 = CallByName List.43 List.402 List.404;
ret List.683;
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.43 (List.400, List.401):
let List.691 : U64 = CallByName List.6 List.400;
let List.690 : U64 = CallByName Num.77 List.691 List.401;
let List.685 : {U64, U64} = Struct {List.401, List.690};
let List.684 : List U8 = CallByName List.49 List.400 List.685;
ret List.684;
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.478, List.479):
let List.687 : U64 = StructAtIndex 1 List.479;
let List.688 : U64 = StructAtIndex 0 List.479;
let List.686 : List U8 = CallByName List.72 List.478 List.687 List.688;
ret List.686;
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.692 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.692;
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.703;
procedure List.66 (#Attr.2, #Attr.3):
let List.715 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
let List.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.726;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.689 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.689;
let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.700;
procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.703 List.574 List.575 List.576 List.577 List.578:
let List.705 : Int1 = CallByName Num.22 List.577 List.578;
if List.705 then
let List.714 : U8 = CallByName List.66 List.574 List.577;
let List.706 : [C U64, C U64] = CallByName Test.4 List.575 List.714;
let List.711 : U8 = 1i64;
let List.712 : U8 = GetTagId List.706;
let List.713 : Int1 = lowlevel Eq List.711 List.712;
if List.713 then
let List.579 : U64 = UnionAtIndex (Id 1) (Index 0) List.706;
let List.709 : U64 = 1i64;
let List.708 : U64 = CallByName Num.51 List.577 List.709;
jump List.703 List.574 List.579 List.576 List.708 List.578;
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;
else
dec List.574;
let List.580 : U64 = UnionAtIndex (Id 0) (Index 0) List.706;
let List.710 : [C U64, C U64] = TagId(0) List.580;
ret List.710;
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;
else
dec List.574;
let List.704 : [C U64, C U64] = TagId(1) List.575;
ret List.704;
dec List.585;
let List.715 : [C U64, C U64] = TagId(1) List.586;
ret List.715;
in
inc Bool.22;
jump List.703 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.714 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.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.689 List.176 List.177 List.178 List.179 List.180:
let List.691 : Int1 = CallByName Num.22 List.179 List.180;
if List.691 then
let List.695 : [] = CallByName List.66 List.176 List.179;
let List.181 : List {} = CallByName List.285 List.177 List.695 List.178;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.179 List.694;
jump List.689 List.176 List.181 List.178 List.693 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.689 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.173, List.174, List.175):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.173;
let List.686 : List {} = CallByName List.102 List.173 List.174 List.175 List.687 List.688;
ret List.686;
procedure List.285 (List.286, List.287, List.283):
let List.700 : {} = CallByName Test.2 List.287;
let List.699 : List {} = CallByName List.71 List.286 List.700;
ret List.699;
procedure List.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.684 : List {} = CallByName List.68 List.284;
let List.683 : List {} = CallByName List.18 List.282 List.684 List.283;
ret List.683;
procedure List.6 (#Attr.2):
let List.697 : U64 = lowlevel ListLenU64 #Attr.2;
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.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.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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.66 (#Attr.2, #Attr.3):
let List.696 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.702 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.702;
let List.713 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.713;
procedure List.71 (#Attr.2, #Attr.3):
let List.701 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.701;
let List.712 : List {} = lowlevel ListAppendUnsafe #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,51 +1,51 @@
procedure List.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.689 List.176 List.177 List.178 List.179 List.180:
let List.691 : Int1 = CallByName Num.22 List.179 List.180;
if List.691 then
let List.695 : [] = CallByName List.66 List.176 List.179;
let List.181 : List [] = CallByName List.285 List.177 List.695 List.178;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.179 List.694;
jump List.689 List.176 List.181 List.178 List.693 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.689 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.173, List.174, List.175):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.173;
let List.686 : List [] = CallByName List.102 List.173 List.174 List.175 List.687 List.688;
ret List.686;
procedure List.285 (List.286, List.287, List.283):
let List.700 : [] = CallByName Test.2 List.287;
let List.699 : List [] = CallByName List.71 List.286 List.700;
ret List.699;
procedure List.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.684 : List [] = CallByName List.68 List.284;
let List.683 : List [] = CallByName List.18 List.282 List.684 List.283;
ret List.683;
procedure List.6 (#Attr.2):
let List.697 : U64 = lowlevel ListLenU64 #Attr.2;
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.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.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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.66 (#Attr.2, #Attr.3):
let List.696 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.702 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.702;
let List.713 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.713;
procedure List.71 (#Attr.2, #Attr.3):
let List.701 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.701;
let List.712 : List [] = lowlevel ListAppendUnsafe #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,32 +1,32 @@
procedure List.102 (Bool.34, Bool.35, Bool.36, Bool.37, Bool.38):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : [] = CallByName List.66 List.176 List.179;
let List.181 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.34;
jump List.686 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38;
jump List.697 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : [<r>C {}, C *self {{}, []}] = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.683 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.683;
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
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.102 (Bool.29, Bool.30, Bool.31, Bool.32, Bool.33):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Int1 = CallByName List.66 List.176 List.179;
let List.181 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.29;
jump List.686 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33;
jump List.697 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.683 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.683;
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
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.121, List.122):
let List.689 : U64 = CallByName List.6 List.121;
let List.685 : Int1 = CallByName Num.22 List.122 List.689;
if List.685 then
let List.687 : {} = CallByName List.66 List.121 List.122;
let List.686 : [C {}, C {}] = TagId(1) List.687;
ret List.686;
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;
else
let List.684 : {} = Struct {};
let List.683 : [C {}, C {}] = TagId(0) List.684;
ret List.683;
let List.695 : {} = Struct {};
let List.694 : [C {}, C {}] = TagId(0) List.695;
ret List.694;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
let List.699 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
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.137, List.138):
let List.686 : U64 = 1i64;
let List.684 : List U8 = CallByName List.70 List.137 List.686;
let List.683 : List U8 = CallByName List.71 List.684 List.138;
ret List.683;
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.70 (#Attr.2, #Attr.3):
let List.687 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.687;
let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
procedure List.71 (#Attr.2, #Attr.3):
let List.685 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.685;
let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
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.102 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
joinpoint List.712 List.176 List.177 List.178 List.179 List.180:
let List.714 : Int1 = CallByName Num.22 List.179 List.180;
if List.714 then
let List.718 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.718;
let List.181 : List U8 = CallByName Test.71 List.177 List.718;
let List.717 : U64 = 1i64;
let List.716 : U64 = CallByName Num.51 List.179 List.717;
jump List.712 List.176 List.181 List.178 List.716 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.35;
jump List.712 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
jump List.697 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
procedure List.102 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.71 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.40;
jump List.686 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
jump List.723 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.173, List.174, List.175):
let List.710 : U64 = 0i64;
let List.711 : U64 = CallByName List.6 List.173;
let List.709 : List U8 = CallByName List.102 List.173 List.174 List.175 List.710 List.711;
ret List.709;
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.4 (List.137, List.138):
let List.731 : U64 = 1i64;
let List.730 : List U8 = CallByName List.70 List.137 List.731;
let List.729 : List U8 = CallByName List.71 List.730 List.138;
ret List.729;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.6 (#Attr.2):
let List.734 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.734;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure List.66 (#Attr.2, #Attr.3):
let List.719 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.6 (#Attr.2):
let List.745 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.745;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.730 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.730;
procedure List.70 (#Attr.2, #Attr.3):
let List.725 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.725;
let List.736 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.736;
procedure List.71 (#Attr.2, #Attr.3):
let List.723 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.723;
let List.734 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.734;
procedure List.8 (#Attr.2, #Attr.3):
let List.733 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.733;
let List.744 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.744;
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.102 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.71 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.19;
jump List.686 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
jump List.697 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.4 (List.137, List.138):
let List.705 : U64 = 1i64;
let List.704 : List U8 = CallByName List.70 List.137 List.705;
let List.703 : List U8 = CallByName List.71 List.704 List.138;
ret List.703;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.70 (#Attr.2, #Attr.3):
let List.699 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.699;
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
procedure List.71 (#Attr.2, #Attr.3):
let List.697 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
procedure List.8 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.707;
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
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.102 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.71 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.23;
jump List.686 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.4 (List.137, List.138):
let List.705 : U64 = 1i64;
let List.704 : List U8 = CallByName List.70 List.137 List.705;
let List.703 : List U8 = CallByName List.71 List.704 List.138;
ret List.703;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.70 (#Attr.2, #Attr.3):
let List.699 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.699;
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
procedure List.71 (#Attr.2, #Attr.3):
let List.697 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
procedure List.8 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.707;
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
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.137, List.138):
let List.693 : U64 = 1i64;
let List.692 : List U8 = CallByName List.70 List.137 List.693;
let List.691 : List U8 = CallByName List.71 List.692 List.138;
ret List.691;
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.70 (#Attr.2, #Attr.3):
let List.687 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.687;
let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
procedure List.71 (#Attr.2, #Attr.3):
let List.685 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.685;
let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
procedure List.8 (#Attr.2, #Attr.3):
let List.695 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.695;
let List.706 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.706;
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.102 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Str = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.64 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.22;
jump List.686 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
procedure List.13 (#Attr.2, #Attr.3):
let List.709 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.709;
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.4 (List.137, List.138):
let List.705 : U64 = 1i64;
let List.704 : List U8 = CallByName List.70 List.137 List.705;
let List.703 : List U8 = CallByName List.71 List.704 List.138;
ret List.703;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.70 (#Attr.2, #Attr.3):
let List.699 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.699;
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
procedure List.71 (#Attr.2, #Attr.3):
let List.697 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
procedure List.8 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.707;
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
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.102 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Str = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.64 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.23;
jump List.686 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.13 (#Attr.2, #Attr.3):
let List.709 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.709;
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.4 (List.137, List.138):
let List.705 : U64 = 1i64;
let List.704 : List U8 = CallByName List.70 List.137 List.705;
let List.703 : List U8 = CallByName List.71 List.704 List.138;
ret List.703;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.70 (#Attr.2, #Attr.3):
let List.699 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.699;
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
procedure List.71 (#Attr.2, #Attr.3):
let List.697 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
procedure List.8 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.707;
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
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.100 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.734 List.153 List.154 List.155:
let List.742 : U64 = 0i64;
let List.736 : Int1 = CallByName Num.24 List.154 List.742;
if List.736 then
let List.741 : U64 = 1i64;
let List.738 : U64 = CallByName Num.75 List.154 List.741;
let List.739 : List {U32, U32} = CallByName List.71 List.155 List.153;
jump List.734 List.153 List.738 List.739;
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;
else
ret List.155;
ret List.157;
in
jump List.734 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
jump List.745 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure List.102 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
joinpoint List.749 List.176 List.177 List.178 List.179 List.180:
let List.751 : Int1 = CallByName Num.22 List.179 List.180;
if List.751 then
let List.755 : {Str, I64} = CallByName List.66 List.176 List.179;
inc List.755;
let List.181 : {Str, Int1} = CallByName Dict.188 List.177 List.755 List.178;
let List.754 : U64 = 1i64;
let List.753 : U64 = CallByName Num.51 List.179 List.754;
jump List.749 List.176 List.181 List.178 List.753 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.37;
jump List.749 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
jump List.697 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
procedure List.102 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, I64} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.42;
jump List.686 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46;
jump List.760 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46;
procedure List.103 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51):
joinpoint List.725 List.185 List.186 List.187 List.188 List.189:
let List.727 : Int1 = CallByName Num.22 List.188 List.189;
if List.727 then
let List.731 : {Str, I64} = CallByName List.66 List.185 List.188;
inc List.731;
let List.190 : List {U32, U32} = CallByName Dict.407 List.186 List.731 List.188 List.187;
let List.730 : U64 = 1i64;
let List.729 : U64 = CallByName Num.51 List.188 List.730;
jump List.725 List.185 List.190 List.187 List.729 List.189;
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;
else
dec List.185;
ret List.186;
dec List.187;
ret List.188;
in
inc #Derived_gen.47;
jump List.725 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51;
jump List.736 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51;
procedure List.11 (List.151, List.152):
let List.745 : List {U32, U32} = CallByName List.68 List.152;
let List.744 : List {U32, U32} = CallByName List.100 List.151 List.152 List.745;
ret List.744;
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.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.173, List.174, List.175):
let List.747 : U64 = 0i64;
let List.748 : U64 = CallByName List.6 List.173;
let List.746 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.747 List.748;
ret List.746;
procedure List.3 (List.129, List.130, List.131):
let List.709 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.129 List.130 List.131;
let List.708 : List {U32, U32} = StructAtIndex 0 List.709;
ret List.708;
procedure List.3 (List.129, List.130, List.131):
let List.711 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.129 List.130 List.131;
let List.710 : List {Str, I64} = StructAtIndex 0 List.711;
let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.711;
dec #Derived_gen.74;
ret List.710;
procedure List.4 (List.137, List.138):
let List.720 : U64 = 1i64;
let List.718 : List {Str, I64} = CallByName List.70 List.137 List.720;
let List.717 : List {Str, I64} = CallByName List.71 List.718 List.138;
ret List.717;
procedure List.6 (#Attr.2):
let List.699 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.699;
procedure List.6 (#Attr.2):
let List.757 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.758 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.758;
procedure List.64 (List.126, List.127, List.128):
let List.707 : U64 = CallByName List.6 List.126;
let List.704 : Int1 = CallByName Num.22 List.127 List.707;
if List.704 then
let List.705 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.126 List.127 List.128;
ret List.705;
else
let List.703 : {List {U32, U32}, {U32, U32}} = Struct {List.126, List.128};
ret List.703;
procedure List.64 (List.126, List.127, List.128):
let List.716 : U64 = CallByName List.6 List.126;
let List.713 : Int1 = CallByName Num.22 List.127 List.716;
if List.713 then
let List.714 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.126 List.127 List.128;
ret List.714;
else
let List.712 : {List {Str, I64}, {Str, I64}} = Struct {List.126, List.128};
ret List.712;
procedure List.66 (#Attr.2, #Attr.3):
let List.756 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.756;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.706 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.706;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.715 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.715;
procedure List.68 (#Attr.2):
let List.743 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.743;
procedure List.70 (#Attr.2, #Attr.3):
let List.721 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.721;
procedure List.71 (#Attr.2, #Attr.3):
let List.719 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
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.71 (#Attr.2, #Attr.3):
let List.740 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.740;
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;
dec #Derived_gen.74;
ret List.721;
procedure List.83 (List.182, List.183, List.184):
let List.723 : U64 = 0i64;
let List.724 : U64 = CallByName List.6 List.182;
let List.722 : List {U32, U32} = CallByName List.103 List.182 List.183 List.184 List.723 List.724;
ret List.722;
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.6 (#Attr.2):
let List.710 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.710;
procedure List.6 (#Attr.2):
let List.768 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.768;
procedure List.6 (#Attr.2):
let List.769 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.769;
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;
else
let List.714 : {List {U32, U32}, {U32, U32}} = Struct {List.128, List.130};
ret List.714;
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;
else
let List.723 : {List {Str, I64}, {Str, I64}} = Struct {List.128, List.130};
ret List.723;
procedure List.66 (#Attr.2, #Attr.3):
let List.767 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.767;
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;
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;
procedure List.68 (#Attr.2):
let List.754 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.754;
procedure List.70 (#Attr.2, #Attr.3):
let List.732 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.732;
procedure List.71 (#Attr.2, #Attr.3):
let List.730 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.730;
procedure List.71 (#Attr.2, #Attr.3):
let List.751 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.751;
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 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.102 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : I64 = CallByName List.66 List.176 List.179;
let List.181 : {Str, Int1} = CallByName Inspect.160 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.10;
jump List.686 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
jump List.697 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.102 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : {Str, Int1} = CallByName Inspect.229 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.33;
jump List.686 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
jump List.697 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
procedure List.102 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42):
joinpoint List.698 List.176 List.177 List.178 List.179 List.180:
let List.700 : Int1 = CallByName Num.22 List.179 List.180;
if List.700 then
let List.704 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.704;
let List.181 : {Str, Int1} = CallByName Inspect.229 List.177 List.704;
let List.703 : U64 = 1i64;
let List.702 : U64 = CallByName Num.51 List.179 List.703;
jump List.698 List.176 List.181 List.178 List.702 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.38;
jump List.698 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
jump List.709 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.18 (List.173, List.174, List.175):
let List.696 : U64 = 0i64;
let List.697 : U64 = CallByName List.6 List.173;
let List.695 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.696 List.697;
ret List.695;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.706 : U64 = lowlevel ListLenU64 #Attr.2;
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.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure List.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.6 (#Attr.2):
let List.717 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.717;
procedure List.66 (#Attr.2, #Attr.3):
let List.705 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.705;
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.716 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.716;
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.102 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {[C I64, C Decimal], Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : {Str, Int1} = CallByName Inspect.229 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.16;
jump List.686 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
jump List.697 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.102 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : {Str, Int1} = CallByName Inspect.229 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.21;
jump List.686 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.102 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : {Str, Str} = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : {Str, Int1} = CallByName Inspect.229 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.25;
jump List.686 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29;
jump List.697 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : {Str, Int1} = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.120):
let List.696 : U64 = CallByName List.6 List.120;
let List.697 : U64 = 0i64;
let List.695 : Int1 = CallByName Bool.9 List.696 List.697;
ret List.695;
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.102 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Str = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : Str = CallByName Inspect.207 List.177 List.692;
dec List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.21;
jump List.686 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : Str = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.120):
let List.696 : U64 = CallByName List.6 List.120;
let List.697 : U64 = 0i64;
let List.695 : Int1 = CallByName Bool.9 List.696 List.697;
ret List.695;
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.102 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Str = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : Str = CallByName Inspect.207 List.177 List.692;
dec List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.22;
jump List.686 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : Str = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.683 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.683;
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
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.121, List.122):
let List.697 : U64 = CallByName List.6 List.121;
let List.693 : Int1 = CallByName Num.22 List.122 List.697;
if List.693 then
let List.695 : I64 = CallByName List.66 List.121 List.122;
let List.694 : [C {}, C I64] = TagId(1) List.695;
ret List.694;
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;
else
let List.692 : {} = Struct {};
let List.691 : [C {}, C I64] = TagId(0) List.692;
ret List.691;
let List.703 : {} = Struct {};
let List.702 : [C {}, C I64] = TagId(0) List.703;
ret List.702;
procedure List.6 (#Attr.2):
let List.698 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.698;
let List.709 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.709;
procedure List.66 (#Attr.2, #Attr.3):
let List.696 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.707 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.9 (List.393):
let List.690 : U64 = 0i64;
let List.683 : [C {}, C I64] = CallByName List.2 List.393 List.690;
let List.687 : U8 = 1i64;
let List.688 : U8 = GetTagId List.683;
let List.689 : Int1 = lowlevel Eq List.687 List.688;
if List.689 then
let List.394 : I64 = UnionAtIndex (Id 1) (Index 0) List.683;
let List.684 : [C Int1, C I64] = TagId(1) List.394;
ret List.684;
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;
else
let List.686 : Int1 = true;
let List.685 : [C Int1, C I64] = TagId(0) List.686;
ret List.685;
let List.697 : Int1 = true;
let List.696 : [C Int1, C I64] = TagId(0) List.697;
ret List.696;
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.107 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35):
joinpoint List.721 List.292 List.293 List.294 List.295 List.296 List.297:
let List.723 : Int1 = CallByName Num.22 List.296 List.297;
if List.723 then
let List.729 : [<r>C I64, C List *self] = CallByName List.66 List.292 List.296;
inc List.729;
let List.730 : [<r>C I64, C List *self] = CallByName List.66 List.293 List.296;
inc List.730;
let List.298 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.729 List.730;
let List.725 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.294 List.298;
let List.727 : U64 = 1i64;
let List.726 : U64 = CallByName Num.51 List.296 List.727;
jump List.721 List.292 List.293 List.725 List.295 List.726 List.297;
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;
else
dec List.292;
dec List.293;
ret List.294;
dec List.304;
dec List.303;
ret List.305;
in
inc Bool.30;
inc Bool.31;
jump List.721 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35;
jump List.732 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35;
procedure List.117 (List.571, List.572, List.573):
let List.697 : U64 = 0i64;
let List.698 : U64 = CallByName List.6 List.571;
let List.696 : [C {}, C {}] = CallByName List.80 List.571 List.572 List.573 List.697 List.698;
ret List.696;
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.23 (List.288, List.289, List.290):
let List.733 : U64 = CallByName List.6 List.288;
let List.734 : U64 = CallByName List.6 List.289;
let List.291 : U64 = CallByName Num.148 List.733 List.734;
let List.719 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.291;
let List.720 : U64 = 0i64;
let List.718 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.107 List.288 List.289 List.719 List.290 List.720 List.291;
ret List.718;
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.249 (List.685, List.250, List.248):
let List.715 : Int1 = CallByName Test.1 List.250;
if List.715 then
let List.717 : {} = Struct {};
let List.716 : [C {}, C {}] = TagId(1) List.717;
ret List.716;
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;
else
let List.714 : {} = Struct {};
let List.713 : [C {}, C {}] = TagId(0) List.714;
ret List.713;
let List.725 : {} = Struct {};
let List.724 : [C {}, C {}] = TagId(0) List.725;
ret List.724;
procedure List.56 (List.247, List.248):
let List.694 : {} = Struct {};
let List.686 : [C {}, C {}] = CallByName List.117 List.247 List.694 List.248;
let List.691 : U8 = 1i64;
let List.692 : U8 = GetTagId List.686;
let List.693 : Int1 = lowlevel Eq List.691 List.692;
if List.693 then
let List.687 : Int1 = CallByName Bool.2;
ret List.687;
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;
else
let List.688 : Int1 = CallByName Bool.1;
ret List.688;
let List.699 : Int1 = CallByName Bool.1;
ret List.699;
procedure List.6 (#Attr.2):
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.684;
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
procedure List.6 (#Attr.2):
let List.712 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.712;
let List.723 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.723;
procedure List.66 (#Attr.2, #Attr.3):
let List.711 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.711;
let List.722 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.722;
procedure List.66 (#Attr.2, #Attr.3):
let List.731 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.731;
let List.742 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.742;
procedure List.68 (#Attr.2):
let List.732 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.732;
let List.743 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.743;
procedure List.71 (#Attr.2, #Attr.3):
let List.728 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.728;
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;
procedure List.80 (Bool.25, Bool.26, Bool.27, Bool.28, Bool.29):
joinpoint List.699 List.574 List.575 List.576 List.577 List.578:
let List.701 : Int1 = CallByName Num.22 List.577 List.578;
if List.701 then
let List.710 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.574 List.577;
inc List.710;
let List.702 : [C {}, C {}] = CallByName List.249 List.575 List.710 List.576;
let List.707 : U8 = 1i64;
let List.708 : U8 = GetTagId List.702;
let List.709 : Int1 = lowlevel Eq List.707 List.708;
if List.709 then
let List.579 : {} = UnionAtIndex (Id 1) (Index 0) List.702;
let List.705 : U64 = 1i64;
let List.704 : U64 = CallByName Num.51 List.577 List.705;
jump List.699 List.574 List.579 List.576 List.704 List.578;
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;
else
dec List.574;
let List.580 : {} = UnionAtIndex (Id 0) (Index 0) List.702;
let List.706 : [C {}, C {}] = TagId(0) List.580;
ret List.706;
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;
else
dec List.574;
let List.700 : [C {}, C {}] = TagId(1) List.575;
ret List.700;
dec List.585;
let List.711 : [C {}, C {}] = TagId(1) List.586;
ret List.711;
in
inc Bool.25;
jump List.699 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29;
jump List.710 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.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : [<rnu>C *self, <null>] = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.177 List.692;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.686 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.697 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
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.6 (#Attr.2):
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.705;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
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.137, List.138):
let List.686 : U64 = 1i64;
let List.684 : List I64 = CallByName List.70 List.137 List.686;
let List.683 : List I64 = CallByName List.71 List.684 List.138;
ret List.683;
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.70 (#Attr.2, #Attr.3):
let List.687 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.687;
let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
procedure List.71 (#Attr.2, #Attr.3):
let List.685 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.685;
let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
procedure Test.0 ():
let Test.2 : List I64 = Array [1i64];

View file

@ -1,16 +1,16 @@
procedure List.4 (List.137, List.138):
let List.686 : U64 = 1i64;
let List.684 : List I64 = CallByName List.70 List.137 List.686;
let List.683 : List I64 = CallByName List.71 List.684 List.138;
ret List.683;
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.70 (#Attr.2, #Attr.3):
let List.687 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.687;
let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.698;
procedure List.71 (#Attr.2, #Attr.3):
let List.685 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.685;
let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.696;
procedure Test.1 (Test.2):
let Test.6 : I64 = 42i64;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.129, List.130, List.131):
let List.686 : {List I64, I64} = CallByName List.64 List.129 List.130 List.131;
let List.685 : List I64 = StructAtIndex 0 List.686;
ret List.685;
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.6 (#Attr.2):
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.684;
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
procedure List.64 (List.126, List.127, List.128):
let List.691 : U64 = CallByName List.6 List.126;
let List.688 : Int1 = CallByName Num.22 List.127 List.691;
if List.688 then
let List.689 : {List I64, I64} = CallByName List.67 List.126 List.127 List.128;
ret List.689;
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;
else
let List.687 : {List I64, I64} = Struct {List.126, List.128};
ret List.687;
let List.698 : {List I64, I64} = Struct {List.128, List.130};
ret List.698;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.690 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.690;
let List.701 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.701;
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.121, List.122):
let List.689 : U64 = CallByName List.6 List.121;
let List.685 : Int1 = CallByName Num.22 List.122 List.689;
if List.685 then
let List.687 : I64 = CallByName List.66 List.121 List.122;
let List.686 : [C {}, C I64] = TagId(1) List.687;
ret List.686;
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;
else
let List.684 : {} = Struct {};
let List.683 : [C {}, C I64] = TagId(0) List.684;
ret List.683;
let List.695 : {} = Struct {};
let List.694 : [C {}, C I64] = TagId(0) List.695;
ret List.694;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
let List.699 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
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.683 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.683;
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
procedure List.6 (#Attr.2):
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.684;
let List.695 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.695;
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.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.697 List.176 List.177 List.178 List.179 List.180:
let List.699 : Int1 = CallByName Num.22 List.179 List.180;
if List.699 then
let List.703 : Str = CallByName List.66 List.176 List.179;
inc List.703;
let List.181 : List Str = CallByName List.285 List.177 List.703 List.178;
dec List.703;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.179 List.702;
jump List.697 List.176 List.181 List.178 List.701 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.697 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.173, List.174, List.175):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.173;
let List.694 : List Str = CallByName List.102 List.173 List.174 List.175 List.695 List.696;
ret List.694;
procedure List.2 (List.121, List.122):
let List.689 : U64 = CallByName List.6 List.121;
let List.685 : Int1 = CallByName Num.22 List.122 List.689;
if List.685 then
let List.687 : Str = CallByName List.66 List.121 List.122;
inc List.687;
let List.686 : [C {}, C Str] = TagId(1) List.687;
ret List.686;
else
let List.684 : {} = Struct {};
let List.683 : [C {}, C Str] = TagId(0) List.684;
ret List.683;
procedure List.285 (List.286, List.287, List.283):
let List.706 : Str = CallByName Test.3 List.287;
let List.705 : List Str = CallByName List.71 List.286 List.706;
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.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.692 : List Str = CallByName List.68 List.284;
let List.691 : List Str = CallByName List.18 List.282 List.692 List.283;
ret List.691;
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;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C Str] = TagId(0) List.695;
ret List.694;
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.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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
procedure List.68 (#Attr.2):
let List.708 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.708;
let List.719 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.719;
procedure List.71 (#Attr.2, #Attr.3):
let List.707 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.718;
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.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.697 List.176 List.177 List.178 List.179 List.180:
let List.699 : Int1 = CallByName Num.22 List.179 List.180;
if List.699 then
let List.703 : Str = CallByName List.66 List.176 List.179;
inc List.703;
let List.181 : List Str = CallByName List.285 List.177 List.703 List.178;
let List.702 : U64 = 1i64;
let List.701 : U64 = CallByName Num.51 List.179 List.702;
jump List.697 List.176 List.181 List.178 List.701 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.697 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.173, List.174, List.175):
let List.695 : U64 = 0i64;
let List.696 : U64 = CallByName List.6 List.173;
let List.694 : List Str = CallByName List.102 List.173 List.174 List.175 List.695 List.696;
ret List.694;
procedure List.2 (List.121, List.122):
let List.689 : U64 = CallByName List.6 List.121;
let List.685 : Int1 = CallByName Num.22 List.122 List.689;
if List.685 then
let List.687 : Str = CallByName List.66 List.121 List.122;
inc List.687;
let List.686 : [C {}, C Str] = TagId(1) List.687;
ret List.686;
else
let List.684 : {} = Struct {};
let List.683 : [C {}, C Str] = TagId(0) List.684;
ret List.683;
procedure List.285 (List.286, List.287, List.283):
let List.706 : Str = CallByName Test.3 List.287;
let List.705 : List Str = CallByName List.71 List.286 List.706;
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.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.692 : List Str = CallByName List.68 List.284;
let List.691 : List Str = CallByName List.18 List.282 List.692 List.283;
ret List.691;
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;
else
let List.695 : {} = Struct {};
let List.694 : [C {}, C Str] = TagId(0) List.695;
ret List.694;
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.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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.699;
procedure List.68 (#Attr.2):
let List.708 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.708;
let List.719 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.719;
procedure List.71 (#Attr.2, #Attr.3):
let List.707 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.707;
let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.718;
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.102 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25):
joinpoint List.689 List.176 List.177 List.178 List.179 List.180:
let List.691 : Int1 = CallByName Num.22 List.179 List.180;
if List.691 then
let List.695 : U8 = CallByName List.66 List.176 List.179;
let List.181 : List U8 = CallByName List.285 List.177 List.695 List.178;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.179 List.694;
jump List.689 List.176 List.181 List.178 List.693 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.21;
jump List.689 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25;
procedure List.18 (List.173, List.174, List.175):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.173;
let List.686 : List U8 = CallByName List.102 List.173 List.174 List.175 List.687 List.688;
ret List.686;
procedure List.285 (List.286, List.287, List.283):
let List.702 : U8 = GetTagId List.283;
joinpoint List.703 List.700:
let List.699 : List U8 = CallByName List.71 List.286 List.700;
ret List.699;
in
switch List.702:
case 0:
let List.704 : U8 = CallByName Test.4 List.287 List.283;
jump List.703 List.704;
case 1:
let List.704 : U8 = CallByName Test.6 List.287 List.283;
jump List.703 List.704;
default:
let List.704 : U8 = CallByName Test.8 List.287;
jump List.703 List.704;
procedure List.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.684 : List U8 = CallByName List.68 List.284;
let List.683 : List U8 = CallByName List.18 List.282 List.684 List.283;
ret List.683;
procedure List.6 (#Attr.2):
let List.697 : U64 = lowlevel ListLenU64 #Attr.2;
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.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;
in
switch List.713:
case 0:
let List.715 : U8 = CallByName Test.4 List.298 List.294;
jump List.714 List.715;
case 1:
let List.715 : U8 = CallByName Test.6 List.298 List.294;
jump List.714 List.715;
default:
let List.715 : U8 = CallByName Test.8 List.298;
jump List.714 List.715;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.66 (#Attr.2, #Attr.3):
let List.696 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.707 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.705 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.705;
let List.716 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.716;
procedure List.71 (#Attr.2, #Attr.3):
let List.701 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.701;
let List.712 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.712;
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.129, List.130, List.131):
let List.684 : {List I64, I64} = CallByName List.64 List.129 List.130 List.131;
let List.683 : List I64 = StructAtIndex 0 List.684;
ret List.683;
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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.126, List.127, List.128):
let List.689 : U64 = CallByName List.6 List.126;
let List.686 : Int1 = CallByName Num.22 List.127 List.689;
if List.686 then
let List.687 : {List I64, I64} = CallByName List.67 List.126 List.127 List.128;
ret List.687;
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.685 : {List I64, I64} = Struct {List.126, List.128};
ret List.685;
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.688 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.688;
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
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.685 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.685;
let List.696 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.696;
procedure List.59 (List.388):
let List.684 : {} = Struct {};
let List.683 : List I64 = CallByName List.28 List.388 List.684;
ret List.683;
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 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.121, List.122):
let List.705 : U64 = CallByName List.6 List.121;
let List.702 : Int1 = CallByName Num.22 List.122 List.705;
if List.702 then
let List.704 : I64 = CallByName List.66 List.121 List.122;
let List.703 : [C {}, C I64] = TagId(1) List.704;
ret List.703;
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;
else
let List.701 : {} = Struct {};
let List.700 : [C {}, C I64] = TagId(0) List.701;
ret List.700;
let List.712 : {} = Struct {};
let List.711 : [C {}, C I64] = TagId(0) List.712;
ret List.711;
procedure List.3 (List.129, List.130, List.131):
let List.692 : {List I64, I64} = CallByName List.64 List.129 List.130 List.131;
let List.691 : List I64 = StructAtIndex 0 List.692;
ret List.691;
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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.126, List.127, List.128):
let List.689 : U64 = CallByName List.6 List.126;
let List.686 : Int1 = CallByName Num.22 List.127 List.689;
if List.686 then
let List.687 : {List I64, I64} = CallByName List.67 List.126 List.127 List.128;
ret List.687;
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.685 : {List I64, I64} = Struct {List.126, List.128};
ret List.685;
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
procedure List.66 (#Attr.2, #Attr.3):
let List.698 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.698;
let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.709;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.688 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.688;
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
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.129, List.130, List.131):
let List.692 : {List U64, U64} = CallByName List.64 List.129 List.130 List.131;
let List.691 : List U64 = StructAtIndex 0 List.692;
ret List.691;
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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.126, List.127, List.128):
let List.689 : U64 = CallByName List.6 List.126;
let List.686 : Int1 = CallByName Num.22 List.127 List.689;
if List.686 then
let List.687 : {List U64, U64} = CallByName List.67 List.126 List.127 List.128;
ret List.687;
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;
else
let List.685 : {List U64, U64} = Struct {List.126, List.128};
ret List.685;
let List.696 : {List U64, U64} = Struct {List.128, List.130};
ret List.696;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.688 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.688;
let List.699 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
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.102 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.689 List.176 List.177 List.178 List.179 List.180:
let List.691 : Int1 = CallByName Num.22 List.179 List.180;
if List.691 then
let List.695 : [<rnnu>C List *self] = CallByName List.66 List.176 List.179;
inc List.695;
let List.181 : List [<rnnu>C List *self] = CallByName List.285 List.177 List.695 List.178;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.179 List.694;
jump List.689 List.176 List.181 List.178 List.693 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc Bool.22;
jump List.689 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.700 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
procedure List.18 (List.173, List.174, List.175):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.173;
let List.686 : List [<rnnu>C List *self] = CallByName List.102 List.173 List.174 List.175 List.687 List.688;
ret List.686;
procedure List.285 (List.286, List.287, List.283):
let List.700 : [<rnnu>C List *self] = CallByName Test.2 List.287;
let List.699 : List [<rnnu>C List *self] = CallByName List.71 List.286 List.700;
ret List.699;
procedure List.5 (List.282, List.283):
let List.284 : U64 = CallByName List.6 List.282;
let List.684 : List [<rnnu>C List *self] = CallByName List.68 List.284;
let List.683 : List [<rnnu>C List *self] = CallByName List.18 List.282 List.684 List.283;
ret List.683;
procedure List.6 (#Attr.2):
let List.697 : U64 = lowlevel ListLenU64 #Attr.2;
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.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.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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.66 (#Attr.2, #Attr.3):
let List.696 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.696;
let List.707 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.68 (#Attr.2):
let List.702 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.702;
let List.713 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.713;
procedure List.71 (#Attr.2, #Attr.3):
let List.701 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.701;
let List.712 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #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,41 +1,41 @@
procedure List.2 (List.121, List.122):
let List.705 : U64 = CallByName List.6 List.121;
let List.702 : Int1 = CallByName Num.22 List.122 List.705;
if List.702 then
let List.704 : I64 = CallByName List.66 List.121 List.122;
let List.703 : [C {}, C I64] = TagId(1) List.704;
ret List.703;
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;
else
let List.701 : {} = Struct {};
let List.700 : [C {}, C I64] = TagId(0) List.701;
ret List.700;
let List.712 : {} = Struct {};
let List.711 : [C {}, C I64] = TagId(0) List.712;
ret List.711;
procedure List.3 (List.129, List.130, List.131):
let List.692 : {List I64, I64} = CallByName List.64 List.129 List.130 List.131;
let List.691 : List I64 = StructAtIndex 0 List.692;
ret List.691;
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.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.701;
procedure List.64 (List.126, List.127, List.128):
let List.689 : U64 = CallByName List.6 List.126;
let List.686 : Int1 = CallByName Num.22 List.127 List.689;
if List.686 then
let List.687 : {List I64, I64} = CallByName List.67 List.126 List.127 List.128;
ret List.687;
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.685 : {List I64, I64} = Struct {List.126, List.128};
ret List.685;
let List.696 : {List I64, I64} = Struct {List.128, List.130};
ret List.696;
procedure List.66 (#Attr.2, #Attr.3):
let List.698 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.698;
let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.709;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.688 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.688;
let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.699;
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.102 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : Str = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.66 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.9;
jump List.686 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13;
jump List.697 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13;
procedure List.13 (#Attr.2, #Attr.3):
let List.709 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.709;
let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
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.4 (List.137, List.138):
let List.705 : U64 = 1i64;
let List.704 : List U8 = CallByName List.70 List.137 List.705;
let List.703 : List U8 = CallByName List.71 List.704 List.138;
ret List.703;
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.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.70 (#Attr.2, #Attr.3):
let List.699 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.699;
let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.710;
procedure List.71 (#Attr.2, #Attr.3):
let List.697 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.708;
procedure List.8 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.707;
let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.718;
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.102 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
joinpoint List.713 List.176 List.177 List.178 List.179 List.180:
let List.715 : Int1 = CallByName Num.22 List.179 List.180;
if List.715 then
let List.719 : Str = CallByName List.66 List.176 List.179;
inc List.719;
let List.181 : List U8 = CallByName Test.66 List.177 List.719 List.178;
let List.718 : U64 = 1i64;
let List.717 : U64 = CallByName Num.51 List.179 List.718;
jump List.713 List.176 List.181 List.178 List.717 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.44;
jump List.713 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
jump List.724 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
procedure List.102 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.686 List.176 List.177 List.178 List.179 List.180:
let List.688 : Int1 = CallByName Num.22 List.179 List.180;
if List.688 then
let List.692 : [C {}, C {}, C Str] = CallByName List.66 List.176 List.179;
inc List.692;
let List.181 : List U8 = CallByName Test.66 List.177 List.692 List.178;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.179 List.691;
jump List.686 List.176 List.181 List.178 List.690 List.180;
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;
else
dec List.176;
ret List.177;
dec List.178;
ret List.179;
in
inc #Derived_gen.49;
jump List.686 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
jump List.697 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
procedure List.13 (#Attr.2, #Attr.3):
let List.709 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.709;
procedure List.13 (#Attr.2, #Attr.3):
let List.737 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.737;
procedure List.18 (List.173, List.174, List.175):
let List.684 : U64 = 0i64;
let List.685 : U64 = CallByName List.6 List.173;
let List.683 : List U8 = CallByName List.102 List.173 List.174 List.175 List.684 List.685;
ret List.683;
procedure List.18 (List.173, List.174, List.175):
let List.711 : U64 = 0i64;
let List.712 : U64 = CallByName List.6 List.173;
let List.710 : List U8 = CallByName List.102 List.173 List.174 List.175 List.711 List.712;
ret List.710;
procedure List.4 (List.137, List.138):
let List.732 : U64 = 1i64;
let List.731 : List U8 = CallByName List.70 List.137 List.732;
let List.730 : List U8 = CallByName List.71 List.731 List.138;
ret List.730;
procedure List.6 (#Attr.2):
let List.708 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.708;
procedure List.6 (#Attr.2):
let List.735 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.735;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure List.66 (#Attr.2, #Attr.3):
let List.720 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
let List.720 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.720;
procedure List.13 (#Attr.2, #Attr.3):
let List.748 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.748;
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.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.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.6 (#Attr.2):
let List.719 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.719;
procedure List.6 (#Attr.2):
let List.746 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.746;
procedure List.66 (#Attr.2, #Attr.3):
let List.704 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.731 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.731;
procedure List.70 (#Attr.2, #Attr.3):
let List.726 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.726;
let List.737 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.737;
procedure List.71 (#Attr.2, #Attr.3):
let List.724 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.724;
let List.735 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.735;
procedure List.8 (#Attr.2, #Attr.3):
let List.734 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.734;
let List.745 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.745;
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.117 (List.571, List.572, List.573):
let List.701 : U64 = 0i64;
let List.702 : U64 = CallByName List.6 List.571;
let List.700 : [C U64, C U64] = CallByName List.80 List.571 List.572 List.573 List.701 List.702;
ret List.700;
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.26 (List.214, List.215, List.216):
let List.694 : [C U64, C U64] = CallByName List.117 List.214 List.215 List.216;
let List.697 : U8 = 1i64;
let List.698 : U8 = GetTagId List.694;
let List.699 : Int1 = lowlevel Eq List.697 List.698;
if List.699 then
let List.217 : U64 = UnionAtIndex (Id 1) (Index 0) List.694;
ret List.217;
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.218 : U64 = UnionAtIndex (Id 0) (Index 0) List.694;
ret List.218;
let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705;
ret List.220;
procedure List.38 (List.402, List.403):
let List.693 : U64 = CallByName List.6 List.402;
let List.404 : U64 = CallByName Num.77 List.693 List.403;
let List.683 : List U8 = CallByName List.43 List.402 List.404;
ret List.683;
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.43 (List.400, List.401):
let List.691 : U64 = CallByName List.6 List.400;
let List.690 : U64 = CallByName Num.77 List.691 List.401;
let List.685 : {U64, U64} = Struct {List.401, List.690};
let List.684 : List U8 = CallByName List.49 List.400 List.685;
ret List.684;
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.478, List.479):
let List.687 : U64 = StructAtIndex 1 List.479;
let List.688 : U64 = StructAtIndex 0 List.479;
let List.686 : List U8 = CallByName List.72 List.478 List.687 List.688;
ret List.686;
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.692 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.692;
let List.703 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.703;
procedure List.66 (#Attr.2, #Attr.3):
let List.715 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.715;
let List.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.726;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.689 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.689;
let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.700;
procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26):
joinpoint List.703 List.574 List.575 List.576 List.577 List.578:
let List.705 : Int1 = CallByName Num.22 List.577 List.578;
if List.705 then
let List.714 : U8 = CallByName List.66 List.574 List.577;
let List.706 : [C U64, C U64] = CallByName Test.3 List.575 List.714;
let List.711 : U8 = 1i64;
let List.712 : U8 = GetTagId List.706;
let List.713 : Int1 = lowlevel Eq List.711 List.712;
if List.713 then
let List.579 : U64 = UnionAtIndex (Id 1) (Index 0) List.706;
let List.709 : U64 = 1i64;
let List.708 : U64 = CallByName Num.51 List.577 List.709;
jump List.703 List.574 List.579 List.576 List.708 List.578;
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;
else
dec List.574;
let List.580 : U64 = UnionAtIndex (Id 0) (Index 0) List.706;
let List.710 : [C U64, C U64] = TagId(0) List.580;
ret List.710;
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;
else
dec List.574;
let List.704 : [C U64, C U64] = TagId(1) List.575;
ret List.704;
dec List.585;
let List.715 : [C U64, C U64] = TagId(1) List.586;
ret List.715;
in
inc Bool.22;
jump List.703 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26;
jump List.714 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;