Merge remote-tracking branch 'origin/main' into str-unicode

This commit is contained in:
Richard Feldman 2024-01-21 12:29:34 -05:00
commit 2970fc4384
No known key found for this signature in database
GPG key ID: F1F21AA5B1D9E43B
78 changed files with 2747 additions and 2467 deletions

View file

@ -1333,7 +1333,7 @@ mod cli_run {
&[],
indoc!(
r#"
TYPE MISMATCH tests/known_bad/TypeError.roc
TYPE MISMATCH in tests/known_bad/TypeError.roc
Something is off with the body of the main definition:
@ -1362,6 +1362,29 @@ mod cli_run {
);
}
#[test]
fn known_type_error_with_long_path() {
check_compile_error(
&known_bad_file("UnusedImportButWithALongFileNameForTesting.roc"),
&[],
indoc!(
r#"
UNUSED IMPORT in ...nown_bad/UnusedImportButWithALongFileNameForTesting.roc
Nothing from Symbol is used in this module.
3 imports [Symbol.{ Ident }]
^^^^^^^^^^^^^^^^
Since Symbol isn't used, you don't need to import it.
0 errors and 1 warning found in <ignored for test> ms."#
),
);
}
#[test]
fn exposed_not_defined() {
check_compile_error(
@ -1369,7 +1392,7 @@ mod cli_run {
&[],
indoc!(
r#"
MISSING DEFINITION tests/known_bad/ExposedNotDefined.roc
MISSING DEFINITION in tests/known_bad/ExposedNotDefined.roc
bar is listed as exposed, but it isn't defined in this module.
@ -1390,7 +1413,7 @@ mod cli_run {
&[],
indoc!(
r#"
UNUSED IMPORT tests/known_bad/UnusedImport.roc
UNUSED IMPORT in tests/known_bad/UnusedImport.roc
Nothing from Symbol is used in this module.
@ -1413,7 +1436,7 @@ mod cli_run {
&[],
indoc!(
r#"
UNKNOWN GENERATES FUNCTION tests/known_bad/UnknownGeneratesWith.roc
UNKNOWN GENERATES FUNCTION in tests/known_bad/UnknownGeneratesWith.roc
I don't know how to generate the foobar function.

View file

@ -0,0 +1,7 @@
interface UnusedImportButWithALongFileNameForTesting
exposes [plainText, emText]
imports [Symbol.{ Ident }]
plainText = \str -> PlainText str
emText = \str -> EmText str

View file

@ -1173,6 +1173,16 @@ fn lowlevel_spec<'a>(
_ => unreachable!(),
}
}
ListClone => {
let list = env.symbols[&arguments[0]];
let bag = builder.add_get_tuple_field(block, list, LIST_BAG_INDEX)?;
let cell = builder.add_get_tuple_field(block, list, LIST_CELL_INDEX)?;
let _unit = builder.add_update(block, update_mode_var, cell)?;
with_new_heap_cell(builder, block, bag)
}
ListSwap => {
let list = env.symbols[&arguments[0]];

View file

@ -962,6 +962,14 @@ pub fn listIsUnique(
return list.isEmpty() or list.isUnique();
}
pub fn listClone(
list: RocList,
alignment: u32,
element_width: usize,
) callconv(.C) RocList {
return list.makeUnique(alignment, element_width);
}
pub fn listCapacity(
list: RocList,
) callconv(.C) usize {

View file

@ -75,6 +75,7 @@ comptime {
exportListFn(list.listReplaceInPlace, "replace_in_place");
exportListFn(list.listSwap, "swap");
exportListFn(list.listIsUnique, "is_unique");
exportListFn(list.listClone, "clone");
exportListFn(list.listCapacity, "capacity");
exportListFn(list.listAllocationPtr, "allocation_ptr");
exportListFn(list.listReleaseExcessCapacity, "release_excess_capacity");

View file

@ -435,7 +435,8 @@ repeatHelp = \value, count, accum ->
## ```
reverse : List a -> List a
reverse = \list ->
reverseHelp list 0 (Num.subSaturated (List.len list) 1)
end = List.len list |> Num.subSaturated 1
reverseHelp (List.clone list) 0 end
reverseHelp = \list, left, right ->
if left < right then
@ -443,6 +444,9 @@ reverseHelp = \list, left, right ->
else
list
# Ensures that the list in unique (will re-use if already unique)
clone : List a -> List a
## Join the given lists together into one list.
## ```
## expect List.join [[1], [2, 3], [], [4, 5]] == [1, 2, 3, 4, 5]

View file

@ -380,6 +380,7 @@ pub const LIST_CONCAT: &str = "roc_builtins.list.concat";
pub const LIST_REPLACE: &str = "roc_builtins.list.replace";
pub const LIST_REPLACE_IN_PLACE: &str = "roc_builtins.list.replace_in_place";
pub const LIST_IS_UNIQUE: &str = "roc_builtins.list.is_unique";
pub const LIST_CLONE: &str = "roc_builtins.list.clone";
pub const LIST_PREPEND: &str = "roc_builtins.list.prepend";
pub const LIST_APPEND_UNSAFE: &str = "roc_builtins.list.append_unsafe";
pub const LIST_RESERVE: &str = "roc_builtins.list.reserve";

View file

@ -136,6 +136,7 @@ map_symbol_to_lowlevel_and_arity! {
ListWithCapacity; LIST_WITH_CAPACITY; 1,
ListReserve; LIST_RESERVE; 2,
ListIsUnique; LIST_IS_UNIQUE; 1,
ListClone; LIST_CLONE; 1,
ListAppendUnsafe; LIST_APPEND_UNSAFE; 2,
ListPrepend; LIST_PREPEND; 2,
ListGetUnsafe; LIST_GET_UNSAFE; 2,

View file

@ -1242,6 +1242,16 @@ impl Assembler<AArch64GeneralReg, AArch64FloatReg> for AArch64Assembler {
fabs_freg_freg(buf, FloatWidth::F64, dst, src);
}
#[inline(always)]
fn abs_freg32_freg32(
buf: &mut Vec<'_, u8>,
_relocs: &mut Vec<'_, Relocation>,
dst: AArch64FloatReg,
src: AArch64FloatReg,
) {
fabs_freg_freg(buf, FloatWidth::F32, dst, src);
}
#[inline(always)]
fn add_reg64_reg64_imm32(
buf: &mut Vec<'_, u8>,

View file

@ -164,6 +164,12 @@ pub trait Assembler<GeneralReg: RegTrait, FloatReg: RegTrait>: Sized + Copy {
dst: FloatReg,
src: FloatReg,
);
fn abs_freg32_freg32(
buf: &mut Vec<'_, u8>,
relocs: &mut Vec<'_, Relocation>,
dst: FloatReg,
src: FloatReg,
);
fn add_reg64_reg64_imm32(buf: &mut Vec<'_, u8>, dst: GeneralReg, src1: GeneralReg, imm32: i32);
fn add_reg64_reg64_reg64(
@ -1316,6 +1322,11 @@ impl<
let src_reg = self.storage_manager.load_to_float_reg(&mut self.buf, src);
ASM::abs_freg64_freg64(&mut self.buf, &mut self.relocs, dst_reg, src_reg);
}
LayoutRepr::Builtin(Builtin::Float(FloatWidth::F32)) => {
let dst_reg = self.storage_manager.claim_float_reg(&mut self.buf, dst);
let src_reg = self.storage_manager.load_to_float_reg(&mut self.buf, src);
ASM::abs_freg32_freg32(&mut self.buf, &mut self.relocs, dst_reg, src_reg);
}
x => todo!("NumAbs: layout, {:?}", x),
}
}
@ -2798,6 +2809,55 @@ impl<
self.storage_manager.list_len(&mut self.buf, dst, list);
}
fn build_list_clone(
&mut self,
dst: Symbol,
input_list: Symbol,
elem_layout: InLayout<'a>,
ret_layout: InLayout<'a>,
) {
// List alignment argument (u32).
self.load_layout_alignment(ret_layout, Symbol::DEV_TMP);
// Load element_width argument (usize).
self.load_layout_stack_size(elem_layout, Symbol::DEV_TMP2);
// Setup the return location.
let base_offset =
self.storage_manager
.claim_stack_area_layout(self.layout_interner, dst, ret_layout);
let lowlevel_args = [
input_list,
// alignment
Symbol::DEV_TMP,
// element_width
Symbol::DEV_TMP2,
];
let lowlevel_arg_layouts = [ret_layout, Layout::U32, Layout::U64];
self.build_fn_call(
&Symbol::DEV_TMP3,
bitcode::LIST_CLONE.to_string(),
&lowlevel_args,
&lowlevel_arg_layouts,
&ret_layout,
);
self.free_symbol(&Symbol::DEV_TMP);
self.free_symbol(&Symbol::DEV_TMP2);
// Copy from list to the output record.
self.storage_manager.copy_symbol_to_stack_offset(
self.layout_interner,
&mut self.buf,
base_offset,
&Symbol::DEV_TMP3,
&ret_layout,
);
self.free_symbol(&Symbol::DEV_TMP3);
}
fn build_list_with_capacity(
&mut self,
dst: &Symbol,

View file

@ -1955,6 +1955,24 @@ impl Assembler<X86_64GeneralReg, X86_64FloatReg> for X86_64Assembler {
andpd_freg64_freg64(buf, dst, src);
}
#[inline(always)]
fn abs_freg32_freg32(
buf: &mut Vec<'_, u8>,
relocs: &mut Vec<'_, Relocation>,
dst: X86_64FloatReg,
src: X86_64FloatReg,
) {
movss_freg32_rip_offset32(buf, dst, 0);
// TODO: make sure this constant only loads once instead of every call to abs
relocs.push(Relocation::LocalData {
offset: buf.len() as u64 - 4,
data: 0x7fffffffu64.to_le_bytes().to_vec(),
});
andps_freg32_freg32(buf, dst, src);
}
#[inline(always)]
fn add_reg64_reg64_imm32(
buf: &mut Vec<'_, u8>,
@ -3179,6 +3197,25 @@ fn andpd_freg64_freg64(buf: &mut Vec<'_, u8>, dst: X86_64FloatReg, src: X86_64Fl
}
}
#[inline(always)]
fn andps_freg32_freg32(buf: &mut Vec<'_, u8>, dst: X86_64FloatReg, src: X86_64FloatReg) {
let dst_high = dst as u8 > 7;
let dst_mod = dst as u8 % 8;
let src_high = src as u8 > 7;
let src_mod = src as u8 % 8;
if dst_high || src_high {
buf.extend([
0x40 | ((dst_high as u8) << 2) | (src_high as u8),
0x0F,
0x54,
0xC0 | (dst_mod << 3) | (src_mod),
])
} else {
buf.extend([0x0F, 0x54, 0xC0 | (dst_mod << 3) | (src_mod)])
}
}
/// r/m64 AND imm8 (sign-extended).
#[inline(always)]
fn and_reg64_imm8(buf: &mut Vec<'_, u8>, dst: X86_64GeneralReg, imm: i8) {
@ -4483,6 +4520,16 @@ mod tests {
);
}
#[test]
fn test_andps_freg32_freg32() {
disassembler_test!(
andps_freg32_freg32,
|reg1, reg2| format!("andps {reg1}, {reg2}"),
ALL_FLOAT_REGS,
ALL_FLOAT_REGS
);
}
#[test]
fn test_and_reg64_reg64() {
disassembler_test!(

View file

@ -1518,6 +1518,15 @@ trait Backend<'a> {
let elem_layout = list_element_layout!(self.interner(), *ret_layout);
self.build_list_with_capacity(sym, args[0], arg_layouts[0], elem_layout, ret_layout)
}
LowLevel::ListClone => {
debug_assert_eq!(
1,
args.len(),
"ListClone: expected to have exactly one argument"
);
let elem_layout = list_element_layout!(self.interner(), *ret_layout);
self.build_list_clone(*sym, args[0], elem_layout, *ret_layout)
}
LowLevel::ListReserve => {
debug_assert_eq!(
2,
@ -2369,6 +2378,14 @@ trait Backend<'a> {
fn build_indirect_inc(&mut self, layout: InLayout<'a>) -> Symbol;
fn build_indirect_dec(&mut self, layout: InLayout<'a>) -> Symbol;
fn build_list_clone(
&mut self,
dst: Symbol,
input_list: Symbol,
elem_layout: InLayout<'a>,
ret_layout: InLayout<'a>,
);
/// build_list_with_capacity creates and returns a list with the given capacity.
fn build_list_with_capacity(
&mut self,

View file

@ -34,8 +34,8 @@ use crate::llvm::{
BuilderExt, FuncBorrowSpec, RocReturn,
},
build_list::{
list_append_unsafe, list_concat, list_drop_at, list_get_unsafe, list_len, list_map,
list_map2, list_map3, list_map4, list_prepend, list_release_excess_capacity,
layout_width, list_append_unsafe, list_concat, list_drop_at, list_get_unsafe, list_len,
list_map, list_map2, list_map3, list_map4, list_prepend, list_release_excess_capacity,
list_replace_unsafe, list_reserve, list_sort_with, list_sublist, list_swap,
list_symbol_to_c_abi, list_with_capacity, pass_update_mode,
},
@ -818,6 +818,31 @@ pub(crate) fn run_low_level<'a, 'ctx>(
bitcode::LIST_IS_UNIQUE,
)
}
ListClone => {
// List.clone : List a -> List a
arguments_with_layouts!((list, list_layout));
let element_layout = list_element_layout!(layout_interner, list_layout);
match update_mode {
UpdateMode::Immutable => {
//
call_list_bitcode_fn(
env,
&[list.into_struct_value()],
&[
env.alignment_intvalue(layout_interner, element_layout),
layout_width(env, layout_interner, element_layout),
],
BitcodeReturns::List,
bitcode::LIST_CLONE,
)
}
UpdateMode::InPlace => {
// we statically know the list is unique
list
}
}
}
NumToStr => {
// Num.toStr : Num a -> Str
arguments_with_layouts!((num, num_layout));

View file

@ -11,7 +11,7 @@ use roc_mono::layout::{InLayout, LayoutInterner, LayoutRepr, STLayoutInterner};
use crate::llvm::build::{load_roc_value, use_roc_value};
use super::{
build::{BuilderExt, Env},
build::{store_roc_value, BuilderExt, Env},
convert::basic_type_from_layout,
scope::Scope,
};
@ -50,19 +50,16 @@ impl<'ctx> RocStruct<'ctx> {
scope: &Scope<'a, 'ctx>,
sorted_fields: &[Symbol],
) -> Self {
let BuildStruct {
struct_type,
struct_val,
} = build_struct_helper(env, layout_interner, scope, sorted_fields);
let passed_by_ref = layout_repr.is_passed_by_reference(layout_interner);
if passed_by_ref {
let alloca = env.builder.new_build_alloca(struct_type, "struct_alloca");
env.builder.new_build_store(alloca, struct_val);
RocStruct::ByReference(alloca)
let struct_alloca =
build_struct_alloca_helper(env, layout_interner, scope, sorted_fields);
RocStruct::ByReference(struct_alloca)
} else {
RocStruct::ByValue(struct_val)
let struct_value =
build_struct_value_helper(env, layout_interner, scope, sorted_fields);
RocStruct::ByValue(struct_value)
}
}
@ -178,17 +175,12 @@ fn get_field_from_value<'ctx>(
.unwrap()
}
struct BuildStruct<'ctx> {
struct_type: StructType<'ctx>,
struct_val: StructValue<'ctx>,
}
fn build_struct_helper<'a, 'ctx>(
fn build_struct_value_helper<'a, 'ctx>(
env: &Env<'a, 'ctx, '_>,
layout_interner: &STLayoutInterner<'a>,
scope: &Scope<'a, 'ctx>,
sorted_fields: &[Symbol],
) -> BuildStruct<'ctx> {
) -> StructValue<'ctx> {
let ctx = env.context;
// Determine types
@ -227,12 +219,49 @@ fn build_struct_helper<'a, 'ctx>(
// Create the struct_type
let struct_type = ctx.struct_type(field_types.into_bump_slice(), false);
let struct_val = struct_from_fields(env, struct_type, field_vals.into_iter().enumerate());
struct_from_fields(env, struct_type, field_vals.into_iter().enumerate())
}
BuildStruct {
struct_type,
struct_val,
fn build_struct_alloca_helper<'a, 'ctx>(
env: &Env<'a, 'ctx, '_>,
layout_interner: &STLayoutInterner<'a>,
scope: &Scope<'a, 'ctx>,
sorted_fields: &[Symbol],
) -> PointerValue<'ctx> {
let ctx = env.context;
// Determine types
let num_fields = sorted_fields.len();
let mut field_types = AVec::with_capacity_in(num_fields, env.arena);
let mut field_expr_repr = AVec::with_capacity_in(num_fields, env.arena);
for symbol in sorted_fields.iter() {
// Zero-sized fields have no runtime representation.
// The layout of the struct expects them to be dropped!
let (field_expr, field_layout) = scope.load_symbol_and_layout(symbol);
if !layout_interner
.get_repr(field_layout)
.is_dropped_because_empty()
{
let field_repr = layout_interner.get_repr(field_layout);
let field_type = basic_type_from_layout(env, layout_interner, field_repr);
field_types.push(field_type);
field_expr_repr.push((field_expr, field_repr));
}
}
// Create the struct_type
let struct_type = ctx.struct_type(field_types.into_bump_slice(), false);
let alloca = env.builder.new_build_alloca(struct_type, "struct_alloca");
for (i, (field_expr, field_repr)) in field_expr_repr.into_iter().enumerate() {
let dst =
env.builder
.new_build_struct_gep(struct_type, alloca, i as u32, "struct_field_gep");
store_roc_value(env, layout_interner, field_repr, dst, field_expr);
}
alloca
}
pub fn struct_from_fields<'a, 'ctx, 'env, I>(

View file

@ -287,6 +287,28 @@ impl<'a> LowLevelCall<'a> {
ListIsUnique => self.load_args_and_call_zig(backend, bitcode::LIST_IS_UNIQUE),
ListClone => {
let input_list: Symbol = self.arguments[0];
let elem_layout = unwrap_list_elem_layout(self.ret_layout_raw);
let elem_layout = backend.layout_interner.get_repr(elem_layout);
let (elem_width, elem_align) =
elem_layout.stack_size_and_alignment(backend.layout_interner);
// Zig arguments Wasm types
// (return pointer) i32
// input_list: &RocList i32
// alignment: u32 i32
// element_width: usize i32
backend
.storage
.load_symbols(&mut backend.code_builder, &[self.ret_symbol, input_list]);
backend.code_builder.i32_const(elem_align as i32);
backend.code_builder.i32_const(elem_width as i32);
backend.call_host_fn_after_loading_args(bitcode::LIST_CLONE);
}
ListMap | ListMap2 | ListMap3 | ListMap4 | ListSortWith => {
internal_error!("HigherOrder lowlevels should not be handled here")
}

File diff suppressed because it is too large Load diff

View file

@ -641,7 +641,7 @@ fn parse_problem() {
report,
indoc!(
"
UNFINISHED LIST tmp/parse_problem/Main
UNFINISHED LIST in tmp/parse_problem/Main
I am partway through started parsing a list, but I got stuck here:
@ -847,7 +847,7 @@ fn opaque_wrapped_unwrapped_outside_defining_module() {
err,
indoc!(
r"
OPAQUE TYPE DECLARED OUTSIDE SCOPE ...rapped_outside_defining_module/Main
OPAQUE TYPE DECLARED OUTSIDE SCOPE in ...apped_outside_defining_module/Main
The unwrapped opaque type Age referenced here:
@ -861,7 +861,7 @@ fn opaque_wrapped_unwrapped_outside_defining_module() {
Note: Opaque types can only be wrapped and unwrapped in the module they are defined in!
OPAQUE TYPE DECLARED OUTSIDE SCOPE ...rapped_outside_defining_module/Main
OPAQUE TYPE DECLARED OUTSIDE SCOPE in ...apped_outside_defining_module/Main
The unwrapped opaque type Age referenced here:
@ -875,7 +875,7 @@ fn opaque_wrapped_unwrapped_outside_defining_module() {
Note: Opaque types can only be wrapped and unwrapped in the module they are defined in!
UNUSED IMPORT tmp/opaque_wrapped_unwrapped_outside_defining_module/Main
UNUSED IMPORT in tmp/opaque_wrapped_unwrapped_outside_defining_module/Main
Nothing from Age is used in this module.
@ -930,7 +930,7 @@ fn issue_2863_module_type_does_not_exist() {
report,
indoc!(
"
UNRECOGNIZED NAME tmp/issue_2863_module_type_does_not_exist/Main
UNRECOGNIZED NAME in tmp/issue_2863_module_type_does_not_exist/Main
Nothing is named `DoesNotExist` in this scope.
@ -1006,7 +1006,7 @@ fn module_doesnt_match_file_path() {
err,
indoc!(
r"
WEIRD MODULE NAME tmp/module_doesnt_match_file_path/Age
WEIRD MODULE NAME in tmp/module_doesnt_match_file_path/Age
This module name does not correspond with the file path it is defined
in:
@ -1039,7 +1039,7 @@ fn module_cyclic_import_itself() {
err,
indoc!(
r"
IMPORT CYCLE tmp/module_cyclic_import_itself/Age
IMPORT CYCLE in tmp/module_cyclic_import_itself/Age
I can't compile Age because it depends on itself through the following
chain of module imports:
@ -1085,7 +1085,7 @@ fn module_cyclic_import_transitive() {
err,
indoc!(
r"
IMPORT CYCLE tmp/module_cyclic_import_transitive/Age.roc
IMPORT CYCLE in tmp/module_cyclic_import_transitive/Age.roc
I can't compile Age because it depends on itself through the following
chain of module imports:
@ -1133,7 +1133,7 @@ fn nested_module_has_incorrect_name() {
err,
indoc!(
r"
INCORRECT MODULE NAME tmp/nested_module_has_incorrect_name/Dep/Foo.roc
INCORRECT MODULE NAME in tmp/nested_module_has_incorrect_name/Dep/Foo.roc
This module has a different name than I expected:

View file

@ -44,8 +44,9 @@ pub enum LowLevel {
ListSublist,
ListDropAt,
ListSwap,
ListIsUnique,
ListGetCapacity,
ListIsUnique,
ListClone,
NumAdd,
NumAddWrap,
NumAddChecked,
@ -279,6 +280,7 @@ map_symbol_to_lowlevel! {
ListReserve <= LIST_RESERVE;
ListReleaseExcessCapacity <= LIST_RELEASE_EXCESS_CAPACITY;
ListIsUnique <= LIST_IS_UNIQUE;
ListClone <= LIST_CLONE;
ListAppendUnsafe <= LIST_APPEND_UNSAFE;
ListPrepend <= LIST_PREPEND;
ListGetUnsafe <= LIST_GET_UNSAFE, DICT_LIST_GET_UNSAFE;

View file

@ -1430,6 +1430,7 @@ define_builtins! {
84 LIST_APPEND_IF_OK: "appendIfOk"
85 LIST_PREPEND_IF_OK: "prependIfOk"
86 LIST_WALK_WITH_INDEX_UNTIL: "walkWithIndexUntil"
87 LIST_CLONE: "clone"
}
7 RESULT: "Result" => {
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias

View file

@ -1607,6 +1607,7 @@ fn low_level_no_rc(lowlevel: &LowLevel) -> RC {
Hash => RC::NoRc,
ListIsUnique => RC::Rc,
ListClone => RC::Rc,
BoxExpr | UnboxExpr => {
unreachable!("These lowlevel operations are turned into mono Expr's")

View file

@ -1361,6 +1361,7 @@ fn lowlevel_borrow_signature(arena: &Bump, op: LowLevel) -> &[Ownership] {
Hash => arena.alloc_slice_copy(&[borrowed, irrelevant]),
ListIsUnique => arena.alloc_slice_copy(&[borrowed]),
ListClone => arena.alloc_slice_copy(&[owned]),
BoxExpr | UnboxExpr => {
unreachable!("These lowlevel operations are turned into mono Expr's")

View file

@ -531,11 +531,18 @@ fn f64_abs() {
assert_evals_to!("Num.abs -4.7f64", 4.7, f64);
assert_evals_to!("Num.abs 5.8f64", 5.8, f64);
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm"))]
{
assert_evals_to!("Num.abs Num.maxF64", f64::MAX, f64);
assert_evals_to!("Num.abs Num.minF64", f64::MAX, f64);
}
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn f32_abs() {
assert_evals_to!("Num.abs -4.7f32", 4.7, f32);
assert_evals_to!("Num.abs 5.8f32", 5.8, f32);
assert_evals_to!("Num.abs Num.maxF32", f32::MAX, f32);
assert_evals_to!("Num.abs Num.minF32", f32::MAX, f32);
}
#[test]

View file

@ -2,80 +2,80 @@ procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure List.101 (List.484, List.485, List.486):
let List.587 : U64 = 0i64;
let List.588 : U64 = CallByName List.6 List.484;
let List.586 : [C U64, C U64] = CallByName List.80 List.484 List.485 List.486 List.587 List.588;
ret List.586;
procedure List.102 (List.486, List.487, List.488):
let List.589 : U64 = 0i64;
let List.590 : U64 = CallByName List.6 List.486;
let List.588 : [C U64, C U64] = CallByName List.80 List.486 List.487 List.488 List.589 List.590;
ret List.588;
procedure List.26 (List.197, List.198, List.199):
let List.580 : [C U64, C U64] = CallByName List.101 List.197 List.198 List.199;
let List.583 : U8 = 1i64;
let List.584 : U8 = GetTagId List.580;
let List.585 : Int1 = lowlevel Eq List.583 List.584;
if List.585 then
let List.200 : U64 = UnionAtIndex (Id 1) (Index 0) List.580;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.582 : [C U64, C U64] = CallByName List.102 List.199 List.200 List.201;
let List.585 : U8 = 1i64;
let List.586 : U8 = GetTagId List.582;
let List.587 : Int1 = lowlevel Eq List.585 List.586;
if List.587 then
let List.202 : U64 = UnionAtIndex (Id 1) (Index 0) List.582;
ret List.202;
else
let List.201 : U64 = UnionAtIndex (Id 0) (Index 0) List.580;
ret List.201;
let List.203 : U64 = UnionAtIndex (Id 0) (Index 0) List.582;
ret List.203;
procedure List.38 (List.340, List.341):
procedure List.38 (List.342, List.343):
let List.581 : U64 = CallByName List.6 List.342;
let List.344 : U64 = CallByName Num.77 List.581 List.343;
let List.571 : List U8 = CallByName List.43 List.342 List.344;
ret List.571;
procedure List.43 (List.340, List.341):
let List.579 : U64 = CallByName List.6 List.340;
let List.342 : U64 = CallByName Num.77 List.579 List.341;
let List.569 : List U8 = CallByName List.43 List.340 List.342;
ret List.569;
procedure List.43 (List.338, List.339):
let List.577 : U64 = CallByName List.6 List.338;
let List.576 : U64 = CallByName Num.77 List.577 List.339;
let List.571 : {U64, U64} = Struct {List.339, List.576};
let List.570 : List U8 = CallByName List.49 List.338 List.571;
ret List.570;
procedure List.49 (List.416, List.417):
let List.573 : U64 = StructAtIndex 1 List.417;
let List.574 : U64 = StructAtIndex 0 List.417;
let List.572 : List U8 = CallByName List.72 List.416 List.573 List.574;
let List.578 : U64 = CallByName Num.77 List.579 List.341;
let List.573 : {U64, U64} = Struct {List.341, List.578};
let List.572 : List U8 = CallByName List.49 List.340 List.573;
ret List.572;
procedure List.49 (List.418, List.419):
let List.575 : U64 = StructAtIndex 1 List.419;
let List.576 : U64 = StructAtIndex 0 List.419;
let List.574 : List U8 = CallByName List.72 List.418 List.575 List.576;
ret List.574;
procedure List.6 (#Attr.2):
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
procedure List.66 (#Attr.2, #Attr.3):
let List.601 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.601;
let List.603 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.603;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.575 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.575;
let List.577 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.577;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.589 List.487 List.488 List.489 List.490 List.491:
let List.591 : Int1 = CallByName Num.22 List.490 List.491;
if List.591 then
let List.600 : U8 = CallByName List.66 List.487 List.490;
let List.592 : [C U64, C U64] = CallByName Test.4 List.488 List.600;
let List.597 : U8 = 1i64;
let List.598 : U8 = GetTagId List.592;
let List.599 : Int1 = lowlevel Eq List.597 List.598;
if List.599 then
let List.492 : U64 = UnionAtIndex (Id 1) (Index 0) List.592;
let List.595 : U64 = 1i64;
let List.594 : U64 = CallByName Num.51 List.490 List.595;
jump List.589 List.487 List.492 List.489 List.594 List.491;
joinpoint List.591 List.489 List.490 List.491 List.492 List.493:
let List.593 : Int1 = CallByName Num.22 List.492 List.493;
if List.593 then
let List.602 : U8 = CallByName List.66 List.489 List.492;
let List.594 : [C U64, C U64] = CallByName Test.4 List.490 List.602;
let List.599 : U8 = 1i64;
let List.600 : U8 = GetTagId List.594;
let List.601 : Int1 = lowlevel Eq List.599 List.600;
if List.601 then
let List.494 : U64 = UnionAtIndex (Id 1) (Index 0) List.594;
let List.597 : U64 = 1i64;
let List.596 : U64 = CallByName Num.51 List.492 List.597;
jump List.591 List.489 List.494 List.491 List.596 List.493;
else
dec List.487;
let List.493 : U64 = UnionAtIndex (Id 0) (Index 0) List.592;
let List.596 : [C U64, C U64] = TagId(0) List.493;
ret List.596;
dec List.489;
let List.495 : U64 = UnionAtIndex (Id 0) (Index 0) List.594;
let List.598 : [C U64, C U64] = TagId(0) List.495;
ret List.598;
else
dec List.487;
let List.590 : [C U64, C U64] = TagId(1) List.488;
ret List.590;
dec List.489;
let List.592 : [C U64, C U64] = TagId(1) List.490;
ret List.592;
in
jump List.589 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.591 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.294 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,7 +1,7 @@
procedure List.5 (#Attr.2, #Attr.3):
let List.569 : List {} = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
let List.571 : List {} = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
decref #Attr.2;
ret List.569;
ret List.571;
procedure Test.2 (Test.3):
let Test.7 : {} = Struct {};

View file

@ -1,7 +1,7 @@
procedure List.5 (#Attr.2, #Attr.3):
let List.569 : List [] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
let List.571 : List [] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
decref #Attr.2;
ret List.569;
ret List.571;
procedure Test.2 (Test.3):
let Test.7 : {} = Struct {};

View file

@ -1,31 +1,31 @@
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : [<r>C {}, C *self {{}, []}] = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : [<r>C {}, C *self {{}, []}] = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : [] = CallByName List.66 List.159 List.162;
let List.164 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.160 List.578 List.161;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : [] = CallByName List.66 List.161 List.164;
let List.166 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.162 List.580 List.163;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.574 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -2,49 +2,49 @@ procedure Bool.1 ():
let Bool.24 : Int1 = false;
ret Bool.24;
procedure List.2 (List.105, List.106):
let List.583 : U64 = CallByName List.6 List.105;
let List.579 : Int1 = CallByName Num.22 List.106 List.583;
if List.579 then
let List.581 : Str = CallByName List.66 List.105 List.106;
inc List.581;
dec List.105;
let List.580 : [C {}, C Str] = TagId(1) List.581;
ret List.580;
procedure List.2 (List.106, List.107):
let List.585 : U64 = CallByName List.6 List.106;
let List.581 : Int1 = CallByName Num.22 List.107 List.585;
if List.581 then
let List.583 : Str = CallByName List.66 List.106 List.107;
inc List.583;
dec List.106;
let List.582 : [C {}, C Str] = TagId(1) List.583;
ret List.582;
else
dec List.105;
let List.578 : {} = Struct {};
let List.577 : [C {}, C Str] = TagId(0) List.578;
ret List.577;
dec List.106;
let List.580 : {} = Struct {};
let List.579 : [C {}, C Str] = TagId(0) List.580;
ret List.579;
procedure List.5 (#Attr.2, #Attr.3):
let List.585 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.10 #Attr.3;
let List.587 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.10 #Attr.3;
decref #Attr.2;
ret List.585;
ret List.587;
procedure List.6 (#Attr.2):
let List.584 : U64 = lowlevel ListLen #Attr.2;
ret List.584;
let List.586 : U64 = lowlevel ListLen #Attr.2;
ret List.586;
procedure List.66 (#Attr.2, #Attr.3):
let List.582 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.582;
let List.584 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.9 (List.331):
let List.576 : U64 = 0i64;
let List.569 : [C {}, C Str] = CallByName List.2 List.331 List.576;
let List.573 : U8 = 1i64;
let List.574 : U8 = GetTagId List.569;
let List.575 : Int1 = lowlevel Eq List.573 List.574;
if List.575 then
let List.332 : Str = UnionAtIndex (Id 1) (Index 0) List.569;
let List.570 : [C {}, C Str] = TagId(1) List.332;
ret List.570;
procedure List.9 (List.333):
let List.578 : U64 = 0i64;
let List.571 : [C {}, C Str] = CallByName List.2 List.333 List.578;
let List.575 : U8 = 1i64;
let List.576 : U8 = GetTagId List.571;
let List.577 : Int1 = lowlevel Eq List.575 List.576;
if List.577 then
let List.334 : Str = UnionAtIndex (Id 1) (Index 0) List.571;
let List.572 : [C {}, C Str] = TagId(1) List.334;
ret List.572;
else
dec List.569;
let List.572 : {} = Struct {};
let List.571 : [C {}, C Str] = TagId(0) List.572;
ret List.571;
dec List.571;
let List.574 : {} = Struct {};
let List.573 : [C {}, C Str] = TagId(0) List.574;
ret List.573;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

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

View file

@ -2,34 +2,34 @@ procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : Int1 = CallByName List.66 List.159 List.162;
let List.164 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.160 List.578 List.161;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : Int1 = CallByName List.66 List.161 List.164;
let List.166 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.162 List.580 List.163;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
jump List.574 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -26,8 +26,8 @@ procedure Dict.45 ():
ret Dict.738;
procedure List.6 (#Attr.2):
let List.569 : U64 = lowlevel ListLen #Attr.2;
ret List.569;
let List.571 : U64 = lowlevel ListLen #Attr.2;
ret List.571;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.291 : U8 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -2,27 +2,27 @@ procedure Bool.1 ():
let Bool.23 : Int1 = false;
ret Bool.23;
procedure List.2 (List.105, List.106):
let List.575 : U64 = CallByName List.6 List.105;
let List.571 : Int1 = CallByName Num.22 List.106 List.575;
if List.571 then
let List.573 : {} = CallByName List.66 List.105 List.106;
dec List.105;
let List.572 : [C {}, C {}] = TagId(1) List.573;
ret List.572;
procedure List.2 (List.106, List.107):
let List.577 : U64 = CallByName List.6 List.106;
let List.573 : Int1 = CallByName Num.22 List.107 List.577;
if List.573 then
let List.575 : {} = CallByName List.66 List.106 List.107;
dec List.106;
let List.574 : [C {}, C {}] = TagId(1) List.575;
ret List.574;
else
dec List.105;
let List.570 : {} = Struct {};
let List.569 : [C {}, C {}] = TagId(0) List.570;
ret List.569;
dec List.106;
let List.572 : {} = Struct {};
let List.571 : [C {}, C {}] = TagId(0) List.572;
ret List.571;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.66 (#Attr.2, #Attr.3):
let List.574 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.574;
let List.576 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.121, List.122):
let List.572 : U64 = 1i64;
let List.570 : List U8 = CallByName List.70 List.121 List.572;
let List.569 : List U8 = CallByName List.71 List.570 List.122;
ret List.569;
procedure List.4 (List.122, List.123):
let List.574 : U64 = 1i64;
let List.572 : List U8 = CallByName List.70 List.122 List.574;
let List.571 : List U8 = CallByName List.71 List.572 List.123;
ret List.571;
procedure List.70 (#Attr.2, #Attr.3):
let List.573 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.573;
let List.575 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.575;
procedure List.71 (#Attr.2, #Attr.3):
let List.571 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.571;
let List.573 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.573;
procedure Test.23 (Test.24, Test.35, Test.22):
let Test.37 : List U8 = CallByName List.4 Test.24 Test.22;

View file

@ -65,189 +65,189 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.681 : U64 = 0i64;
let List.682 : U64 = CallByName List.6 List.484;
let List.680 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.681 List.682;
ret List.680;
procedure List.102 (List.486, List.487, List.488):
let List.683 : U64 = 0i64;
let List.684 : U64 = CallByName List.6 List.486;
let List.682 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.683 List.684;
ret List.682;
procedure List.18 (List.156, List.157, List.158):
let List.591 : U64 = 0i64;
let List.592 : U64 = CallByName List.6 List.156;
let List.590 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.591 List.592;
ret List.590;
procedure List.18 (List.158, List.159, List.160):
let List.593 : U64 = 0i64;
let List.594 : U64 = CallByName List.6 List.158;
let List.592 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.593 List.594;
ret List.592;
procedure List.18 (List.156, List.157, List.158):
let List.625 : U64 = 0i64;
let List.626 : U64 = CallByName List.6 List.156;
let List.624 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.625 List.626;
ret List.624;
procedure List.18 (List.158, List.159, List.160):
let List.627 : U64 = 0i64;
let List.628 : U64 = CallByName List.6 List.158;
let List.626 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.627 List.628;
ret List.626;
procedure List.18 (List.156, List.157, List.158):
let List.637 : U64 = 0i64;
let List.638 : U64 = CallByName List.6 List.156;
let List.636 : List U8 = CallByName List.89 List.156 List.157 List.158 List.637 List.638;
ret List.636;
procedure List.18 (List.158, List.159, List.160):
let List.639 : U64 = 0i64;
let List.640 : U64 = CallByName List.6 List.158;
let List.638 : List U8 = CallByName List.90 List.158 List.159 List.160 List.639 List.640;
ret List.638;
procedure List.26 (List.197, List.198, List.199):
let List.674 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.677 : U8 = 1i64;
let List.678 : U8 = GetTagId List.674;
let List.679 : Int1 = lowlevel Eq List.677 List.678;
if List.679 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.674;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.676 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.679 : U8 = 1i64;
let List.680 : U8 = GetTagId List.676;
let List.681 : Int1 = lowlevel Eq List.679 List.680;
if List.681 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.676;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.674;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.676;
ret List.203;
procedure List.4 (List.121, List.122):
let List.623 : U64 = 1i64;
let List.622 : List U8 = CallByName List.70 List.121 List.623;
let List.621 : List U8 = CallByName List.71 List.622 List.122;
ret List.621;
procedure List.4 (List.122, List.123):
let List.625 : U64 = 1i64;
let List.624 : List U8 = CallByName List.70 List.122 List.625;
let List.623 : List U8 = CallByName List.71 List.624 List.123;
ret List.623;
procedure List.49 (List.416, List.417):
let List.665 : U64 = StructAtIndex 1 List.417;
let List.666 : U64 = StructAtIndex 0 List.417;
let List.664 : List U8 = CallByName List.72 List.416 List.665 List.666;
procedure List.49 (List.418, List.419):
let List.667 : U64 = StructAtIndex 1 List.419;
let List.668 : U64 = StructAtIndex 0 List.419;
let List.666 : List U8 = CallByName List.72 List.418 List.667 List.668;
ret List.666;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.674 List.436:
let List.672 : U64 = 0i64;
let List.671 : {U64, U64} = Struct {List.436, List.672};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.671;
let List.670 : U64 = CallByName Num.75 List.435 List.436;
let List.665 : {U64, U64} = Struct {List.670, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.665;
let List.664 : {List U8, List U8} = Struct {List.437, List.438};
ret List.664;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.672 List.434:
let List.670 : U64 = 0i64;
let List.669 : {U64, U64} = Struct {List.434, List.670};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.669;
let List.668 : U64 = CallByName Num.75 List.433 List.434;
let List.663 : {U64, U64} = Struct {List.668, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.663;
let List.662 : {List U8, List U8} = Struct {List.435, List.436};
ret List.662;
in
let List.673 : Int1 = CallByName Num.24 List.433 List.432;
if List.673 then
jump List.672 List.432;
let List.675 : Int1 = CallByName Num.24 List.435 List.434;
if List.675 then
jump List.674 List.434;
else
jump List.672 List.433;
jump List.674 List.435;
procedure List.6 (#Attr.2):
let List.603 : U64 = lowlevel ListLen #Attr.2;
ret List.603;
procedure List.6 (#Attr.2):
let List.657 : U64 = lowlevel ListLen #Attr.2;
ret List.657;
let List.605 : U64 = lowlevel ListLen #Attr.2;
ret List.605;
procedure List.6 (#Attr.2):
let List.659 : U64 = lowlevel ListLen #Attr.2;
ret List.659;
procedure List.66 (#Attr.2, #Attr.3):
let List.600 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.600;
procedure List.66 (#Attr.2, #Attr.3):
let List.634 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.634;
procedure List.66 (#Attr.2, #Attr.3):
let List.646 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.646;
procedure List.68 (#Attr.2):
let List.661 : List U8 = lowlevel ListWithCapacity #Attr.2;
procedure List.6 (#Attr.2):
let List.661 : U64 = lowlevel ListLen #Attr.2;
ret List.661;
procedure List.66 (#Attr.2, #Attr.3):
let List.602 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.602;
procedure List.66 (#Attr.2, #Attr.3):
let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.636;
procedure List.66 (#Attr.2, #Attr.3):
let List.648 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.648;
procedure List.68 (#Attr.2):
let List.663 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.663;
procedure List.70 (#Attr.2, #Attr.3):
let List.608 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.608;
let List.610 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.610;
procedure List.71 (#Attr.2, #Attr.3):
let List.606 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.606;
let List.608 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.608;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.667 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.667;
let List.669 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.669;
procedure List.8 (#Attr.2, #Attr.3):
let List.656 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.656;
let List.658 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.658;
procedure List.80 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49):
joinpoint List.683 List.487 List.488 List.489 List.490 List.491:
let List.685 : Int1 = CallByName Num.22 List.490 List.491;
if List.685 then
let List.694 : U8 = CallByName List.66 List.487 List.490;
let List.686 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.694;
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.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.686;
let List.689 : U64 = 1i64;
let List.688 : U64 = CallByName Num.51 List.490 List.689;
jump List.683 List.487 List.492 List.489 List.688 List.491;
procedure List.80 (#Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_gen.54):
joinpoint List.685 List.489 List.490 List.491 List.492 List.493:
let List.687 : Int1 = CallByName Num.22 List.492 List.493;
if List.687 then
let List.696 : U8 = CallByName List.66 List.489 List.492;
let List.688 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.696;
let List.693 : U8 = 1i64;
let List.694 : U8 = GetTagId List.688;
let List.695 : Int1 = lowlevel Eq List.693 List.694;
if List.695 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.688;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.492 List.691;
jump List.685 List.489 List.494 List.491 List.690 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.686;
let List.690 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.690;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.688;
let List.692 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.692;
else
dec List.487;
let List.684 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.684;
dec List.489;
let List.686 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.686;
in
jump List.683 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49;
jump List.685 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54;
procedure List.89 (#Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.639 List.159 List.160 List.161 List.162 List.163:
let List.641 : Int1 = CallByName Num.22 List.162 List.163;
if List.641 then
let List.645 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.645;
let List.644 : U64 = 1i64;
let List.643 : U64 = CallByName Num.51 List.162 List.644;
jump List.639 List.159 List.164 List.161 List.643 List.163;
procedure List.90 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.641 List.161 List.162 List.163 List.164 List.165:
let List.643 : Int1 = CallByName Num.22 List.164 List.165;
if List.643 then
let List.647 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.647;
let List.646 : U64 = 1i64;
let List.645 : U64 = CallByName Num.51 List.164 List.646;
jump List.641 List.161 List.166 List.163 List.645 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.639 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
jump List.641 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.89 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.627 List.159 List.160 List.161 List.162 List.163:
let List.629 : Int1 = CallByName Num.22 List.162 List.163;
if List.629 then
let List.633 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.633;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.203 List.160 List.633;
let List.632 : U64 = 1i64;
let List.631 : U64 = CallByName Num.51 List.162 List.632;
jump List.627 List.159 List.164 List.161 List.631 List.163;
procedure List.90 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.595 List.161 List.162 List.163 List.164 List.165:
let List.597 : Int1 = CallByName Num.22 List.164 List.165;
if List.597 then
let List.601 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.601;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.203 List.162 List.601;
let List.600 : U64 = 1i64;
let List.599 : U64 = CallByName Num.51 List.164 List.600;
jump List.595 List.161 List.166 List.163 List.599 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.627 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
jump List.595 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
procedure List.89 (#Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_gen.54):
joinpoint List.593 List.159 List.160 List.161 List.162 List.163:
let List.595 : Int1 = CallByName Num.22 List.162 List.163;
if List.595 then
let List.599 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.599;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.203 List.160 List.599;
let List.598 : U64 = 1i64;
let List.597 : U64 = CallByName Num.51 List.162 List.598;
jump List.593 List.159 List.164 List.161 List.597 List.163;
procedure List.90 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49):
joinpoint List.629 List.161 List.162 List.163 List.164 List.165:
let List.631 : Int1 = CallByName Num.22 List.164 List.165;
if List.631 then
let List.635 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.635;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.203 List.162 List.635;
let List.634 : U64 = 1i64;
let List.633 : U64 = CallByName Num.51 List.164 List.634;
jump List.629 List.161 List.166 List.163 List.633 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.593 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54;
jump List.629 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49;
procedure Num.127 (#Attr.2):
let Num.306 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -38,159 +38,159 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.647 : U64 = 0i64;
let List.648 : U64 = CallByName List.6 List.484;
let List.646 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.647 List.648;
ret List.646;
procedure List.102 (List.486, List.487, List.488):
let List.649 : U64 = 0i64;
let List.650 : U64 = CallByName List.6 List.486;
let List.648 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.649 List.650;
ret List.648;
procedure List.18 (List.156, List.157, List.158):
let List.591 : U64 = 0i64;
let List.592 : U64 = CallByName List.6 List.156;
let List.590 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.591 List.592;
ret List.590;
procedure List.18 (List.158, List.159, List.160):
let List.593 : U64 = 0i64;
let List.594 : U64 = CallByName List.6 List.158;
let List.592 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.593 List.594;
ret List.592;
procedure List.18 (List.156, List.157, List.158):
let List.603 : U64 = 0i64;
let List.604 : U64 = CallByName List.6 List.156;
let List.602 : List U8 = CallByName List.89 List.156 List.157 List.158 List.603 List.604;
ret List.602;
procedure List.18 (List.158, List.159, List.160):
let List.605 : U64 = 0i64;
let List.606 : U64 = CallByName List.6 List.158;
let List.604 : List U8 = CallByName List.90 List.158 List.159 List.160 List.605 List.606;
ret List.604;
procedure List.26 (List.197, List.198, List.199):
let List.640 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.643 : U8 = 1i64;
let List.644 : U8 = GetTagId List.640;
let List.645 : Int1 = lowlevel Eq List.643 List.644;
if List.645 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.640;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.642 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.645 : U8 = 1i64;
let List.646 : U8 = GetTagId List.642;
let List.647 : Int1 = lowlevel Eq List.645 List.646;
if List.647 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.642;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.640;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.642;
ret List.203;
procedure List.4 (List.121, List.122):
let List.589 : U64 = 1i64;
let List.588 : List U8 = CallByName List.70 List.121 List.589;
let List.587 : List U8 = CallByName List.71 List.588 List.122;
ret List.587;
procedure List.4 (List.122, List.123):
let List.591 : U64 = 1i64;
let List.590 : List U8 = CallByName List.70 List.122 List.591;
let List.589 : List U8 = CallByName List.71 List.590 List.123;
ret List.589;
procedure List.49 (List.416, List.417):
let List.631 : U64 = StructAtIndex 1 List.417;
let List.632 : U64 = StructAtIndex 0 List.417;
let List.630 : List U8 = CallByName List.72 List.416 List.631 List.632;
procedure List.49 (List.418, List.419):
let List.633 : U64 = StructAtIndex 1 List.419;
let List.634 : U64 = StructAtIndex 0 List.419;
let List.632 : List U8 = CallByName List.72 List.418 List.633 List.634;
ret List.632;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.640 List.436:
let List.638 : U64 = 0i64;
let List.637 : {U64, U64} = Struct {List.436, List.638};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.637;
let List.636 : U64 = CallByName Num.75 List.435 List.436;
let List.631 : {U64, U64} = Struct {List.636, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.631;
let List.630 : {List U8, List U8} = Struct {List.437, List.438};
ret List.630;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.638 List.434:
let List.636 : U64 = 0i64;
let List.635 : {U64, U64} = Struct {List.434, List.636};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.635;
let List.634 : U64 = CallByName Num.75 List.433 List.434;
let List.629 : {U64, U64} = Struct {List.634, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.629;
let List.628 : {List U8, List U8} = Struct {List.435, List.436};
ret List.628;
in
let List.639 : Int1 = CallByName Num.24 List.433 List.432;
if List.639 then
jump List.638 List.432;
let List.641 : Int1 = CallByName Num.24 List.435 List.434;
if List.641 then
jump List.640 List.434;
else
jump List.638 List.433;
procedure List.6 (#Attr.2):
let List.623 : U64 = lowlevel ListLen #Attr.2;
ret List.623;
jump List.640 List.435;
procedure List.6 (#Attr.2):
let List.625 : U64 = lowlevel ListLen #Attr.2;
ret List.625;
procedure List.66 (#Attr.2, #Attr.3):
let List.600 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.600;
procedure List.66 (#Attr.2, #Attr.3):
let List.612 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.612;
procedure List.68 (#Attr.2):
let List.627 : List U8 = lowlevel ListWithCapacity #Attr.2;
procedure List.6 (#Attr.2):
let List.627 : U64 = lowlevel ListLen #Attr.2;
ret List.627;
procedure List.66 (#Attr.2, #Attr.3):
let List.602 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.602;
procedure List.66 (#Attr.2, #Attr.3):
let List.614 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.614;
procedure List.68 (#Attr.2):
let List.629 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.629;
procedure List.70 (#Attr.2, #Attr.3):
let List.574 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.574;
let List.576 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.576;
procedure List.71 (#Attr.2, #Attr.3):
let List.572 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.572;
let List.574 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.574;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.633 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.633;
let List.635 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.635;
procedure List.8 (#Attr.2, #Attr.3):
let List.622 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.622;
let List.624 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.624;
procedure List.80 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint List.649 List.487 List.488 List.489 List.490 List.491:
let List.651 : Int1 = CallByName Num.22 List.490 List.491;
if List.651 then
let List.660 : U8 = CallByName List.66 List.487 List.490;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.660;
let List.657 : U8 = 1i64;
let List.658 : U8 = GetTagId List.652;
let List.659 : Int1 = lowlevel Eq List.657 List.658;
if List.659 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.652;
let List.655 : U64 = 1i64;
let List.654 : U64 = CallByName Num.51 List.490 List.655;
jump List.649 List.487 List.492 List.489 List.654 List.491;
procedure List.80 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.651 List.489 List.490 List.491 List.492 List.493:
let List.653 : Int1 = CallByName Num.22 List.492 List.493;
if List.653 then
let List.662 : U8 = CallByName List.66 List.489 List.492;
let List.654 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.662;
let List.659 : U8 = 1i64;
let List.660 : U8 = GetTagId List.654;
let List.661 : Int1 = lowlevel Eq List.659 List.660;
if List.661 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.654;
let List.657 : U64 = 1i64;
let List.656 : U64 = CallByName Num.51 List.492 List.657;
jump List.651 List.489 List.494 List.491 List.656 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.652;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.656;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.654;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.658;
else
dec List.487;
let List.650 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.650;
dec List.489;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.652;
in
jump List.649 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
jump List.651 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure List.89 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.593 List.159 List.160 List.161 List.162 List.163:
let List.595 : Int1 = CallByName Num.22 List.162 List.163;
if List.595 then
let List.599 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.599;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.203 List.160 List.599;
let List.598 : U64 = 1i64;
let List.597 : U64 = CallByName Num.51 List.162 List.598;
jump List.593 List.159 List.164 List.161 List.597 List.163;
procedure List.90 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.607 List.161 List.162 List.163 List.164 List.165:
let List.609 : Int1 = CallByName Num.22 List.164 List.165;
if List.609 then
let List.613 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.613;
let List.612 : U64 = 1i64;
let List.611 : U64 = CallByName Num.51 List.164 List.612;
jump List.607 List.161 List.166 List.163 List.611 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.593 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.607 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.89 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
joinpoint List.605 List.159 List.160 List.161 List.162 List.163:
let List.607 : Int1 = CallByName Num.22 List.162 List.163;
if List.607 then
let List.611 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.611;
let List.610 : U64 = 1i64;
let List.609 : U64 = CallByName Num.51 List.162 List.610;
jump List.605 List.159 List.164 List.161 List.609 List.163;
procedure List.90 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.595 List.161 List.162 List.163 List.164 List.165:
let List.597 : Int1 = CallByName Num.22 List.164 List.165;
if List.597 then
let List.601 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.601;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.203 List.162 List.601;
let List.600 : U64 = 1i64;
let List.599 : U64 = CallByName Num.51 List.164 List.600;
jump List.595 List.161 List.166 List.163 List.599 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.605 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
jump List.595 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure Num.127 (#Attr.2):
let Num.296 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -45,159 +45,159 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.647 : U64 = 0i64;
let List.648 : U64 = CallByName List.6 List.484;
let List.646 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.647 List.648;
ret List.646;
procedure List.102 (List.486, List.487, List.488):
let List.649 : U64 = 0i64;
let List.650 : U64 = CallByName List.6 List.486;
let List.648 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.649 List.650;
ret List.648;
procedure List.18 (List.156, List.157, List.158):
let List.591 : U64 = 0i64;
let List.592 : U64 = CallByName List.6 List.156;
let List.590 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.591 List.592;
ret List.590;
procedure List.18 (List.158, List.159, List.160):
let List.593 : U64 = 0i64;
let List.594 : U64 = CallByName List.6 List.158;
let List.592 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.593 List.594;
ret List.592;
procedure List.18 (List.156, List.157, List.158):
let List.603 : U64 = 0i64;
let List.604 : U64 = CallByName List.6 List.156;
let List.602 : List U8 = CallByName List.89 List.156 List.157 List.158 List.603 List.604;
ret List.602;
procedure List.18 (List.158, List.159, List.160):
let List.605 : U64 = 0i64;
let List.606 : U64 = CallByName List.6 List.158;
let List.604 : List U8 = CallByName List.90 List.158 List.159 List.160 List.605 List.606;
ret List.604;
procedure List.26 (List.197, List.198, List.199):
let List.640 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.643 : U8 = 1i64;
let List.644 : U8 = GetTagId List.640;
let List.645 : Int1 = lowlevel Eq List.643 List.644;
if List.645 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.640;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.642 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.645 : U8 = 1i64;
let List.646 : U8 = GetTagId List.642;
let List.647 : Int1 = lowlevel Eq List.645 List.646;
if List.647 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.642;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.640;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.642;
ret List.203;
procedure List.4 (List.121, List.122):
let List.589 : U64 = 1i64;
let List.588 : List U8 = CallByName List.70 List.121 List.589;
let List.587 : List U8 = CallByName List.71 List.588 List.122;
ret List.587;
procedure List.4 (List.122, List.123):
let List.591 : U64 = 1i64;
let List.590 : List U8 = CallByName List.70 List.122 List.591;
let List.589 : List U8 = CallByName List.71 List.590 List.123;
ret List.589;
procedure List.49 (List.416, List.417):
let List.631 : U64 = StructAtIndex 1 List.417;
let List.632 : U64 = StructAtIndex 0 List.417;
let List.630 : List U8 = CallByName List.72 List.416 List.631 List.632;
procedure List.49 (List.418, List.419):
let List.633 : U64 = StructAtIndex 1 List.419;
let List.634 : U64 = StructAtIndex 0 List.419;
let List.632 : List U8 = CallByName List.72 List.418 List.633 List.634;
ret List.632;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.640 List.436:
let List.638 : U64 = 0i64;
let List.637 : {U64, U64} = Struct {List.436, List.638};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.637;
let List.636 : U64 = CallByName Num.75 List.435 List.436;
let List.631 : {U64, U64} = Struct {List.636, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.631;
let List.630 : {List U8, List U8} = Struct {List.437, List.438};
ret List.630;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.638 List.434:
let List.636 : U64 = 0i64;
let List.635 : {U64, U64} = Struct {List.434, List.636};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.635;
let List.634 : U64 = CallByName Num.75 List.433 List.434;
let List.629 : {U64, U64} = Struct {List.634, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.629;
let List.628 : {List U8, List U8} = Struct {List.435, List.436};
ret List.628;
in
let List.639 : Int1 = CallByName Num.24 List.433 List.432;
if List.639 then
jump List.638 List.432;
let List.641 : Int1 = CallByName Num.24 List.435 List.434;
if List.641 then
jump List.640 List.434;
else
jump List.638 List.433;
procedure List.6 (#Attr.2):
let List.623 : U64 = lowlevel ListLen #Attr.2;
ret List.623;
jump List.640 List.435;
procedure List.6 (#Attr.2):
let List.625 : U64 = lowlevel ListLen #Attr.2;
ret List.625;
procedure List.66 (#Attr.2, #Attr.3):
let List.600 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.600;
procedure List.66 (#Attr.2, #Attr.3):
let List.612 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.612;
procedure List.68 (#Attr.2):
let List.627 : List U8 = lowlevel ListWithCapacity #Attr.2;
procedure List.6 (#Attr.2):
let List.627 : U64 = lowlevel ListLen #Attr.2;
ret List.627;
procedure List.66 (#Attr.2, #Attr.3):
let List.602 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.602;
procedure List.66 (#Attr.2, #Attr.3):
let List.614 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.614;
procedure List.68 (#Attr.2):
let List.629 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.629;
procedure List.70 (#Attr.2, #Attr.3):
let List.574 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.574;
let List.576 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.576;
procedure List.71 (#Attr.2, #Attr.3):
let List.572 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.572;
let List.574 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.574;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.633 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.633;
let List.635 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.635;
procedure List.8 (#Attr.2, #Attr.3):
let List.622 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.622;
let List.624 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.624;
procedure List.80 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint List.649 List.487 List.488 List.489 List.490 List.491:
let List.651 : Int1 = CallByName Num.22 List.490 List.491;
if List.651 then
let List.660 : U8 = CallByName List.66 List.487 List.490;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.660;
let List.657 : U8 = 1i64;
let List.658 : U8 = GetTagId List.652;
let List.659 : Int1 = lowlevel Eq List.657 List.658;
if List.659 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.652;
let List.655 : U64 = 1i64;
let List.654 : U64 = CallByName Num.51 List.490 List.655;
jump List.649 List.487 List.492 List.489 List.654 List.491;
procedure List.80 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.651 List.489 List.490 List.491 List.492 List.493:
let List.653 : Int1 = CallByName Num.22 List.492 List.493;
if List.653 then
let List.662 : U8 = CallByName List.66 List.489 List.492;
let List.654 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.662;
let List.659 : U8 = 1i64;
let List.660 : U8 = GetTagId List.654;
let List.661 : Int1 = lowlevel Eq List.659 List.660;
if List.661 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.654;
let List.657 : U64 = 1i64;
let List.656 : U64 = CallByName Num.51 List.492 List.657;
jump List.651 List.489 List.494 List.491 List.656 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.652;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.656;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.654;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.658;
else
dec List.487;
let List.650 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.650;
dec List.489;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.652;
in
jump List.649 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
jump List.651 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
procedure List.89 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29):
joinpoint List.593 List.159 List.160 List.161 List.162 List.163:
let List.595 : Int1 = CallByName Num.22 List.162 List.163;
if List.595 then
let List.599 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.599;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.203 List.160 List.599;
let List.598 : U64 = 1i64;
let List.597 : U64 = CallByName Num.51 List.162 List.598;
jump List.593 List.159 List.164 List.161 List.597 List.163;
procedure List.90 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.607 List.161 List.162 List.163 List.164 List.165:
let List.609 : Int1 = CallByName Num.22 List.164 List.165;
if List.609 then
let List.613 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.613;
let List.612 : U64 = 1i64;
let List.611 : U64 = CallByName Num.51 List.164 List.612;
jump List.607 List.161 List.166 List.163 List.611 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.593 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29;
jump List.607 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure List.89 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
joinpoint List.605 List.159 List.160 List.161 List.162 List.163:
let List.607 : Int1 = CallByName Num.22 List.162 List.163;
if List.607 then
let List.611 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.611;
let List.610 : U64 = 1i64;
let List.609 : U64 = CallByName Num.51 List.162 List.610;
jump List.605 List.159 List.164 List.161 List.609 List.163;
procedure List.90 (#Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34):
joinpoint List.595 List.161 List.162 List.163 List.164 List.165:
let List.597 : Int1 = CallByName Num.22 List.164 List.165;
if List.597 then
let List.601 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.601;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.203 List.162 List.601;
let List.600 : U64 = 1i64;
let List.599 : U64 = CallByName Num.51 List.164 List.600;
jump List.595 List.161 List.166 List.163 List.599 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.605 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
jump List.595 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34;
procedure Num.127 (#Attr.2):
let Num.296 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -11,115 +11,115 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.612 : U64 = 0i64;
let List.613 : U64 = CallByName List.6 List.484;
let List.611 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.612 List.613;
ret List.611;
procedure List.102 (List.486, List.487, List.488):
let List.614 : U64 = 0i64;
let List.615 : U64 = CallByName List.6 List.486;
let List.613 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.614 List.615;
ret List.613;
procedure List.18 (List.156, List.157, List.158):
let List.583 : U64 = 0i64;
let List.584 : U64 = CallByName List.6 List.156;
let List.582 : List U8 = CallByName List.89 List.156 List.157 List.158 List.583 List.584;
ret List.582;
procedure List.18 (List.158, List.159, List.160):
let List.585 : U64 = 0i64;
let List.586 : U64 = CallByName List.6 List.158;
let List.584 : List U8 = CallByName List.90 List.158 List.159 List.160 List.585 List.586;
ret List.584;
procedure List.26 (List.197, List.198, List.199):
let List.605 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.608 : U8 = 1i64;
let List.609 : U8 = GetTagId List.605;
let List.610 : Int1 = lowlevel Eq List.608 List.609;
if List.610 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.605;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.607 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.610 : U8 = 1i64;
let List.611 : U8 = GetTagId List.607;
let List.612 : Int1 = lowlevel Eq List.610 List.611;
if List.612 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.607;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.605;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.607;
ret List.203;
procedure List.49 (List.416, List.417):
let List.596 : U64 = StructAtIndex 1 List.417;
let List.597 : U64 = StructAtIndex 0 List.417;
let List.595 : List U8 = CallByName List.72 List.416 List.596 List.597;
procedure List.49 (List.418, List.419):
let List.598 : U64 = StructAtIndex 1 List.419;
let List.599 : U64 = StructAtIndex 0 List.419;
let List.597 : List U8 = CallByName List.72 List.418 List.598 List.599;
ret List.597;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.605 List.436:
let List.603 : U64 = 0i64;
let List.602 : {U64, U64} = Struct {List.436, List.603};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.602;
let List.601 : U64 = CallByName Num.75 List.435 List.436;
let List.596 : {U64, U64} = Struct {List.601, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.596;
let List.595 : {List U8, List U8} = Struct {List.437, List.438};
ret List.595;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.603 List.434:
let List.601 : U64 = 0i64;
let List.600 : {U64, U64} = Struct {List.434, List.601};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.600;
let List.599 : U64 = CallByName Num.75 List.433 List.434;
let List.594 : {U64, U64} = Struct {List.599, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.594;
let List.593 : {List U8, List U8} = Struct {List.435, List.436};
ret List.593;
in
let List.604 : Int1 = CallByName Num.24 List.433 List.432;
if List.604 then
jump List.603 List.432;
let List.606 : Int1 = CallByName Num.24 List.435 List.434;
if List.606 then
jump List.605 List.434;
else
jump List.603 List.433;
jump List.605 List.435;
procedure List.6 (#Attr.2):
let List.581 : U64 = lowlevel ListLen #Attr.2;
ret List.581;
let List.583 : U64 = lowlevel ListLen #Attr.2;
ret List.583;
procedure List.66 (#Attr.2, #Attr.3):
let List.592 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.592;
let List.594 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.594;
procedure List.68 (#Attr.2):
let List.579 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.579;
let List.581 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.581;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.598 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.598;
let List.600 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.600;
procedure List.8 (#Attr.2, #Attr.3):
let List.577 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.577;
let List.579 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.579;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.614 List.487 List.488 List.489 List.490 List.491:
let List.616 : Int1 = CallByName Num.22 List.490 List.491;
if List.616 then
let List.625 : U8 = CallByName List.66 List.487 List.490;
let List.617 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.625;
let List.622 : U8 = 1i64;
let List.623 : U8 = GetTagId List.617;
let List.624 : Int1 = lowlevel Eq List.622 List.623;
if List.624 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.617;
let List.620 : U64 = 1i64;
let List.619 : U64 = CallByName Num.51 List.490 List.620;
jump List.614 List.487 List.492 List.489 List.619 List.491;
joinpoint List.616 List.489 List.490 List.491 List.492 List.493:
let List.618 : Int1 = CallByName Num.22 List.492 List.493;
if List.618 then
let List.627 : U8 = CallByName List.66 List.489 List.492;
let List.619 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.627;
let List.624 : U8 = 1i64;
let List.625 : U8 = GetTagId List.619;
let List.626 : Int1 = lowlevel Eq List.624 List.625;
if List.626 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.619;
let List.622 : U64 = 1i64;
let List.621 : U64 = CallByName Num.51 List.492 List.622;
jump List.616 List.489 List.494 List.491 List.621 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.617;
let List.621 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.621;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.619;
let List.623 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.623;
else
dec List.487;
let List.615 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.615;
dec List.489;
let List.617 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.617;
in
jump List.614 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.616 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.89 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9):
joinpoint List.585 List.159 List.160 List.161 List.162 List.163:
let List.587 : Int1 = CallByName Num.22 List.162 List.163;
if List.587 then
let List.591 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.591;
let List.590 : U64 = 1i64;
let List.589 : U64 = CallByName Num.51 List.162 List.590;
jump List.585 List.159 List.164 List.161 List.589 List.163;
procedure List.90 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
joinpoint List.587 List.161 List.162 List.163 List.164 List.165:
let List.589 : Int1 = CallByName Num.22 List.164 List.165;
if List.589 then
let List.593 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.593;
let List.592 : U64 = 1i64;
let List.591 : U64 = CallByName Num.51 List.164 List.592;
jump List.587 List.161 List.166 List.163 List.591 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.585 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9;
jump List.587 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.292 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -40,159 +40,159 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.653 : U64 = 0i64;
let List.654 : U64 = CallByName List.6 List.484;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.653 List.654;
ret List.652;
procedure List.102 (List.486, List.487, List.488):
let List.655 : U64 = 0i64;
let List.656 : U64 = CallByName List.6 List.486;
let List.654 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.655 List.656;
ret List.654;
procedure List.18 (List.156, List.157, List.158):
let List.597 : U64 = 0i64;
let List.598 : U64 = CallByName List.6 List.156;
let List.596 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.597 List.598;
ret List.596;
procedure List.18 (List.158, List.159, List.160):
let List.599 : U64 = 0i64;
let List.600 : U64 = CallByName List.6 List.158;
let List.598 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.599 List.600;
ret List.598;
procedure List.18 (List.156, List.157, List.158):
let List.609 : U64 = 0i64;
let List.610 : U64 = CallByName List.6 List.156;
let List.608 : List U8 = CallByName List.89 List.156 List.157 List.158 List.609 List.610;
ret List.608;
procedure List.18 (List.158, List.159, List.160):
let List.611 : U64 = 0i64;
let List.612 : U64 = CallByName List.6 List.158;
let List.610 : List U8 = CallByName List.90 List.158 List.159 List.160 List.611 List.612;
ret List.610;
procedure List.26 (List.197, List.198, List.199):
let List.646 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.649 : U8 = 1i64;
let List.650 : U8 = GetTagId List.646;
let List.651 : Int1 = lowlevel Eq List.649 List.650;
if List.651 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.646;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.648 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.651 : U8 = 1i64;
let List.652 : U8 = GetTagId List.648;
let List.653 : Int1 = lowlevel Eq List.651 List.652;
if List.653 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.648;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.646;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.648;
ret List.203;
procedure List.4 (List.121, List.122):
let List.595 : U64 = 1i64;
let List.594 : List U8 = CallByName List.70 List.121 List.595;
let List.593 : List U8 = CallByName List.71 List.594 List.122;
ret List.593;
procedure List.4 (List.122, List.123):
let List.597 : U64 = 1i64;
let List.596 : List U8 = CallByName List.70 List.122 List.597;
let List.595 : List U8 = CallByName List.71 List.596 List.123;
ret List.595;
procedure List.49 (List.416, List.417):
let List.637 : U64 = StructAtIndex 1 List.417;
let List.638 : U64 = StructAtIndex 0 List.417;
let List.636 : List U8 = CallByName List.72 List.416 List.637 List.638;
procedure List.49 (List.418, List.419):
let List.639 : U64 = StructAtIndex 1 List.419;
let List.640 : U64 = StructAtIndex 0 List.419;
let List.638 : List U8 = CallByName List.72 List.418 List.639 List.640;
ret List.638;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.646 List.436:
let List.644 : U64 = 0i64;
let List.643 : {U64, U64} = Struct {List.436, List.644};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.643;
let List.642 : U64 = CallByName Num.75 List.435 List.436;
let List.637 : {U64, U64} = Struct {List.642, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.637;
let List.636 : {List U8, List U8} = Struct {List.437, List.438};
ret List.636;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.644 List.434:
let List.642 : U64 = 0i64;
let List.641 : {U64, U64} = Struct {List.434, List.642};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.641;
let List.640 : U64 = CallByName Num.75 List.433 List.434;
let List.635 : {U64, U64} = Struct {List.640, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.635;
let List.634 : {List U8, List U8} = Struct {List.435, List.436};
ret List.634;
in
let List.645 : Int1 = CallByName Num.24 List.433 List.432;
if List.645 then
jump List.644 List.432;
let List.647 : Int1 = CallByName Num.24 List.435 List.434;
if List.647 then
jump List.646 List.434;
else
jump List.644 List.433;
procedure List.6 (#Attr.2):
let List.620 : U64 = lowlevel ListLen #Attr.2;
ret List.620;
jump List.646 List.435;
procedure List.6 (#Attr.2):
let List.622 : U64 = lowlevel ListLen #Attr.2;
ret List.622;
procedure List.66 (#Attr.2, #Attr.3):
let List.606 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.606;
procedure List.6 (#Attr.2):
let List.624 : U64 = lowlevel ListLen #Attr.2;
ret List.624;
procedure List.66 (#Attr.2, #Attr.3):
let List.618 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.618;
let List.608 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.608;
procedure List.66 (#Attr.2, #Attr.3):
let List.620 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.620;
procedure List.68 (#Attr.2):
let List.633 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.633;
let List.635 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.635;
procedure List.70 (#Attr.2, #Attr.3):
let List.574 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.574;
let List.576 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.576;
procedure List.71 (#Attr.2, #Attr.3):
let List.572 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.572;
let List.574 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.574;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.639;
let List.641 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.641;
procedure List.8 (#Attr.2, #Attr.3):
let List.631 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.631;
let List.633 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.633;
procedure List.80 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
joinpoint List.655 List.487 List.488 List.489 List.490 List.491:
let List.657 : Int1 = CallByName Num.22 List.490 List.491;
if List.657 then
let List.666 : U8 = CallByName List.66 List.487 List.490;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.666;
let List.663 : U8 = 1i64;
let List.664 : U8 = GetTagId List.658;
let List.665 : Int1 = lowlevel Eq List.663 List.664;
if List.665 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.658;
let List.661 : U64 = 1i64;
let List.660 : U64 = CallByName Num.51 List.490 List.661;
jump List.655 List.487 List.492 List.489 List.660 List.491;
procedure List.80 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.657 List.489 List.490 List.491 List.492 List.493:
let List.659 : Int1 = CallByName Num.22 List.492 List.493;
if List.659 then
let List.668 : U8 = CallByName List.66 List.489 List.492;
let List.660 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.668;
let List.665 : U8 = 1i64;
let List.666 : U8 = GetTagId List.660;
let List.667 : Int1 = lowlevel Eq List.665 List.666;
if List.667 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.660;
let List.663 : U64 = 1i64;
let List.662 : U64 = CallByName Num.51 List.492 List.663;
jump List.657 List.489 List.494 List.491 List.662 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.658;
let List.662 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.662;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.660;
let List.664 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.664;
else
dec List.487;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.656;
dec List.489;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.658;
in
jump List.655 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
jump List.657 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.89 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint List.599 List.159 List.160 List.161 List.162 List.163:
let List.601 : Int1 = CallByName Num.22 List.162 List.163;
if List.601 then
let List.605 : Str = CallByName List.66 List.159 List.162;
inc List.605;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.230 List.160 List.605;
let List.604 : U64 = 1i64;
let List.603 : U64 = CallByName Num.51 List.162 List.604;
jump List.599 List.159 List.164 List.161 List.603 List.163;
procedure List.90 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint List.613 List.161 List.162 List.163 List.164 List.165:
let List.615 : Int1 = CallByName Num.22 List.164 List.165;
if List.615 then
let List.619 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.619;
let List.618 : U64 = 1i64;
let List.617 : U64 = CallByName Num.51 List.164 List.618;
jump List.613 List.161 List.166 List.163 List.617 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.599 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
jump List.613 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
procedure List.89 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
joinpoint List.611 List.159 List.160 List.161 List.162 List.163:
let List.613 : Int1 = CallByName Num.22 List.162 List.163;
if List.613 then
let List.617 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.617;
let List.616 : U64 = 1i64;
let List.615 : U64 = CallByName Num.51 List.162 List.616;
jump List.611 List.159 List.164 List.161 List.615 List.163;
procedure List.90 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.601 List.161 List.162 List.163 List.164 List.165:
let List.603 : Int1 = CallByName Num.22 List.164 List.165;
if List.603 then
let List.607 : Str = CallByName List.66 List.161 List.164;
inc List.607;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.230 List.162 List.607;
let List.606 : U64 = 1i64;
let List.605 : U64 = CallByName Num.51 List.164 List.606;
jump List.601 List.161 List.166 List.163 List.605 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.611 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
jump List.601 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure Num.127 (#Attr.2):
let Num.298 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -43,159 +43,159 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.653 : U64 = 0i64;
let List.654 : U64 = CallByName List.6 List.484;
let List.652 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.653 List.654;
ret List.652;
procedure List.102 (List.486, List.487, List.488):
let List.655 : U64 = 0i64;
let List.656 : U64 = CallByName List.6 List.486;
let List.654 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.655 List.656;
ret List.654;
procedure List.18 (List.156, List.157, List.158):
let List.597 : U64 = 0i64;
let List.598 : U64 = CallByName List.6 List.156;
let List.596 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.597 List.598;
ret List.596;
procedure List.18 (List.158, List.159, List.160):
let List.599 : U64 = 0i64;
let List.600 : U64 = CallByName List.6 List.158;
let List.598 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.599 List.600;
ret List.598;
procedure List.18 (List.156, List.157, List.158):
let List.609 : U64 = 0i64;
let List.610 : U64 = CallByName List.6 List.156;
let List.608 : List U8 = CallByName List.89 List.156 List.157 List.158 List.609 List.610;
ret List.608;
procedure List.18 (List.158, List.159, List.160):
let List.611 : U64 = 0i64;
let List.612 : U64 = CallByName List.6 List.158;
let List.610 : List U8 = CallByName List.90 List.158 List.159 List.160 List.611 List.612;
ret List.610;
procedure List.26 (List.197, List.198, List.199):
let List.646 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.649 : U8 = 1i64;
let List.650 : U8 = GetTagId List.646;
let List.651 : Int1 = lowlevel Eq List.649 List.650;
if List.651 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.646;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.648 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.651 : U8 = 1i64;
let List.652 : U8 = GetTagId List.648;
let List.653 : Int1 = lowlevel Eq List.651 List.652;
if List.653 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.648;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.646;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.648;
ret List.203;
procedure List.4 (List.121, List.122):
let List.595 : U64 = 1i64;
let List.594 : List U8 = CallByName List.70 List.121 List.595;
let List.593 : List U8 = CallByName List.71 List.594 List.122;
ret List.593;
procedure List.4 (List.122, List.123):
let List.597 : U64 = 1i64;
let List.596 : List U8 = CallByName List.70 List.122 List.597;
let List.595 : List U8 = CallByName List.71 List.596 List.123;
ret List.595;
procedure List.49 (List.416, List.417):
let List.637 : U64 = StructAtIndex 1 List.417;
let List.638 : U64 = StructAtIndex 0 List.417;
let List.636 : List U8 = CallByName List.72 List.416 List.637 List.638;
procedure List.49 (List.418, List.419):
let List.639 : U64 = StructAtIndex 1 List.419;
let List.640 : U64 = StructAtIndex 0 List.419;
let List.638 : List U8 = CallByName List.72 List.418 List.639 List.640;
ret List.638;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.646 List.436:
let List.644 : U64 = 0i64;
let List.643 : {U64, U64} = Struct {List.436, List.644};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.643;
let List.642 : U64 = CallByName Num.75 List.435 List.436;
let List.637 : {U64, U64} = Struct {List.642, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.637;
let List.636 : {List U8, List U8} = Struct {List.437, List.438};
ret List.636;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.644 List.434:
let List.642 : U64 = 0i64;
let List.641 : {U64, U64} = Struct {List.434, List.642};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.641;
let List.640 : U64 = CallByName Num.75 List.433 List.434;
let List.635 : {U64, U64} = Struct {List.640, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.635;
let List.634 : {List U8, List U8} = Struct {List.435, List.436};
ret List.634;
in
let List.645 : Int1 = CallByName Num.24 List.433 List.432;
if List.645 then
jump List.644 List.432;
let List.647 : Int1 = CallByName Num.24 List.435 List.434;
if List.647 then
jump List.646 List.434;
else
jump List.644 List.433;
procedure List.6 (#Attr.2):
let List.620 : U64 = lowlevel ListLen #Attr.2;
ret List.620;
jump List.646 List.435;
procedure List.6 (#Attr.2):
let List.622 : U64 = lowlevel ListLen #Attr.2;
ret List.622;
procedure List.66 (#Attr.2, #Attr.3):
let List.606 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.606;
procedure List.6 (#Attr.2):
let List.624 : U64 = lowlevel ListLen #Attr.2;
ret List.624;
procedure List.66 (#Attr.2, #Attr.3):
let List.618 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.618;
let List.608 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.608;
procedure List.66 (#Attr.2, #Attr.3):
let List.620 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.620;
procedure List.68 (#Attr.2):
let List.633 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.633;
let List.635 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.635;
procedure List.70 (#Attr.2, #Attr.3):
let List.574 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.574;
let List.576 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.576;
procedure List.71 (#Attr.2, #Attr.3):
let List.572 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.572;
let List.574 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.574;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.639;
let List.641 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.641;
procedure List.8 (#Attr.2, #Attr.3):
let List.631 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.631;
let List.633 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.633;
procedure List.80 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.655 List.487 List.488 List.489 List.490 List.491:
let List.657 : Int1 = CallByName Num.22 List.490 List.491;
if List.657 then
let List.666 : U8 = CallByName List.66 List.487 List.490;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.666;
let List.663 : U8 = 1i64;
let List.664 : U8 = GetTagId List.658;
let List.665 : Int1 = lowlevel Eq List.663 List.664;
if List.665 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.658;
let List.661 : U64 = 1i64;
let List.660 : U64 = CallByName Num.51 List.490 List.661;
jump List.655 List.487 List.492 List.489 List.660 List.491;
joinpoint List.657 List.489 List.490 List.491 List.492 List.493:
let List.659 : Int1 = CallByName Num.22 List.492 List.493;
if List.659 then
let List.668 : U8 = CallByName List.66 List.489 List.492;
let List.660 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.668;
let List.665 : U8 = 1i64;
let List.666 : U8 = GetTagId List.660;
let List.667 : Int1 = lowlevel Eq List.665 List.666;
if List.667 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.660;
let List.663 : U64 = 1i64;
let List.662 : U64 = CallByName Num.51 List.492 List.663;
jump List.657 List.489 List.494 List.491 List.662 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.658;
let List.662 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.662;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.660;
let List.664 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.664;
else
dec List.487;
let List.656 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.656;
dec List.489;
let List.658 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.658;
in
jump List.655 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
jump List.657 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
procedure List.89 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.599 List.159 List.160 List.161 List.162 List.163:
let List.601 : Int1 = CallByName Num.22 List.162 List.163;
if List.601 then
let List.605 : Str = CallByName List.66 List.159 List.162;
inc List.605;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.230 List.160 List.605;
let List.604 : U64 = 1i64;
let List.603 : U64 = CallByName Num.51 List.162 List.604;
jump List.599 List.159 List.164 List.161 List.603 List.163;
procedure List.90 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.601 List.161 List.162 List.163 List.164 List.165:
let List.603 : Int1 = CallByName Num.22 List.164 List.165;
if List.603 then
let List.607 : Str = CallByName List.66 List.161 List.164;
inc List.607;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.230 List.162 List.607;
let List.606 : U64 = 1i64;
let List.605 : U64 = CallByName Num.51 List.164 List.606;
jump List.601 List.161 List.166 List.163 List.605 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.599 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
jump List.601 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure List.89 (#Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31):
joinpoint List.611 List.159 List.160 List.161 List.162 List.163:
let List.613 : Int1 = CallByName Num.22 List.162 List.163;
if List.613 then
let List.617 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.617;
let List.616 : U64 = 1i64;
let List.615 : U64 = CallByName Num.51 List.162 List.616;
jump List.611 List.159 List.164 List.161 List.615 List.163;
procedure List.90 (#Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28):
joinpoint List.613 List.161 List.162 List.163 List.164 List.165:
let List.615 : Int1 = CallByName Num.22 List.164 List.165;
if List.615 then
let List.619 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.619;
let List.618 : U64 = 1i64;
let List.617 : U64 = CallByName Num.51 List.164 List.618;
jump List.613 List.161 List.166 List.163 List.617 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.611 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31;
jump List.613 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28;
procedure Num.127 (#Attr.2):
let Num.298 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -287,7 +287,7 @@ procedure Dict.65 (Dict.405, Dict.406, Dict.407):
let Dict.854 : {U64, U32} = CallByName Dict.66 Dict.405 Dict.410 Dict.409;
ret Dict.854;
procedure Dict.66 (#Derived_gen.32, #Derived_gen.33, #Derived_gen.34):
procedure Dict.66 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
joinpoint Dict.855 Dict.411 Dict.412 Dict.413:
let Dict.863 : U64 = CallByName Num.137 Dict.412;
let Dict.414 : {U32, U32} = CallByName Dict.22 Dict.411 Dict.863;
@ -303,9 +303,9 @@ procedure Dict.66 (#Derived_gen.32, #Derived_gen.33, #Derived_gen.34):
let Dict.856 : {U64, U32} = Struct {Dict.412, Dict.413};
ret Dict.856;
in
jump Dict.855 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34;
jump Dict.855 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
procedure Dict.67 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45):
procedure Dict.67 (#Derived_gen.48, #Derived_gen.49, #Derived_gen.50):
joinpoint Dict.756 Dict.415 Dict.416 Dict.417:
let Dict.770 : U64 = CallByName Num.137 Dict.417;
let Dict.418 : {U32, U32} = CallByName Dict.22 Dict.415 Dict.770;
@ -327,7 +327,7 @@ procedure Dict.67 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45):
let Dict.757 : List {U32, U32} = CallByName List.3 Dict.415 Dict.758 Dict.416;
ret Dict.757;
in
jump Dict.756 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45;
jump Dict.756 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50;
procedure Dict.68 (Dict.420, Dict.421):
let Dict.752 : U64 = 1i64;
@ -510,7 +510,7 @@ procedure Dict.82 (Dict.705, Dict.481):
let Dict.929 : {U64, U64, U64} = CallByName Dict.83 Dict.479 Dict.479 Dict.479 Dict.481 Dict.931 Dict.482;
jump Dict.930 Dict.929;
procedure Dict.83 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31):
procedure Dict.83 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint Dict.932 Dict.487 Dict.488 Dict.489 Dict.490 Dict.491 Dict.492:
inc 6 Dict.490;
let Dict.1039 : U64 = CallByName Dict.91 Dict.490 Dict.491;
@ -572,9 +572,9 @@ procedure Dict.83 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_g
let Dict.933 : {U64, U64, U64} = Struct {Dict.934, Dict.935, Dict.499};
ret Dict.933;
in
jump Dict.932 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31;
jump Dict.932 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure Dict.84 (#Derived_gen.59, #Derived_gen.60, #Derived_gen.61, #Derived_gen.62):
procedure Dict.84 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_gen.54):
joinpoint Dict.985 Dict.500 Dict.501 Dict.502 Dict.503:
inc 2 Dict.501;
let Dict.1005 : U64 = CallByName Dict.91 Dict.501 Dict.502;
@ -606,7 +606,7 @@ procedure Dict.84 (#Derived_gen.59, #Derived_gen.60, #Derived_gen.61, #Derived_g
else
jump Dict.985 Dict.504 Dict.501 Dict.506 Dict.505;
in
jump Dict.985 #Derived_gen.59 #Derived_gen.60 #Derived_gen.61 #Derived_gen.62;
jump Dict.985 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54;
procedure Dict.85 ():
let Dict.921 : U64 = 11562461410679940143i64;
@ -890,168 +890,168 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.11 (List.135, List.136):
let List.631 : List {U32, U32} = CallByName List.68 List.136;
let List.630 : List {U32, U32} = CallByName List.87 List.135 List.136 List.631;
ret List.630;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.156, List.157, List.158):
let List.634 : U64 = 0i64;
let List.635 : U64 = CallByName List.6 List.156;
let List.633 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.634 List.635;
ret List.633;
procedure List.3 (List.113, List.114, List.115):
let List.595 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.113 List.114 List.115;
let List.594 : List {U32, U32} = StructAtIndex 0 List.595;
ret List.594;
procedure List.3 (List.113, List.114, List.115):
let List.597 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.113 List.114 List.115;
let List.596 : List {Str, I64} = StructAtIndex 0 List.597;
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.597;
dec #Derived_gen.71;
ret List.596;
procedure List.4 (List.121, List.122):
let List.606 : U64 = 1i64;
let List.604 : List {Str, I64} = CallByName List.70 List.121 List.606;
let List.603 : List {Str, I64} = CallByName List.71 List.604 List.122;
ret List.603;
procedure List.6 (#Attr.2):
let List.585 : U64 = lowlevel ListLen #Attr.2;
ret List.585;
procedure List.6 (#Attr.2):
let List.632 : U64 = lowlevel ListLen #Attr.2;
procedure List.11 (List.136, List.137):
let List.633 : List {U32, U32} = CallByName List.68 List.137;
let List.632 : List {U32, U32} = CallByName List.88 List.136 List.137 List.633;
ret List.632;
procedure List.6 (#Attr.2):
let List.644 : U64 = lowlevel ListLen #Attr.2;
ret List.644;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.64 (List.110, List.111, List.112):
let List.593 : U64 = CallByName List.6 List.110;
let List.590 : Int1 = CallByName Num.22 List.111 List.593;
if List.590 then
let List.591 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.110 List.111 List.112;
ret List.591;
else
let List.589 : {List {U32, U32}, {U32, U32}} = Struct {List.110, List.112};
ret List.589;
procedure List.18 (List.158, List.159, List.160):
let List.636 : U64 = 0i64;
let List.637 : U64 = CallByName List.6 List.158;
let List.635 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.636 List.637;
ret List.635;
procedure List.64 (List.110, List.111, List.112):
let List.602 : U64 = CallByName List.6 List.110;
let List.599 : Int1 = CallByName Num.22 List.111 List.602;
if List.599 then
let List.600 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.110 List.111 List.112;
ret List.600;
else
let List.598 : {List {Str, I64}, {Str, I64}} = Struct {List.110, List.112};
procedure List.3 (List.114, List.115, List.116):
let List.597 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.114 List.115 List.116;
let List.596 : List {U32, U32} = StructAtIndex 0 List.597;
ret List.596;
procedure List.3 (List.114, List.115, List.116):
let List.599 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.114 List.115 List.116;
let List.598 : List {Str, I64} = StructAtIndex 0 List.599;
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.599;
dec #Derived_gen.71;
ret List.598;
procedure List.4 (List.122, List.123):
let List.608 : U64 = 1i64;
let List.606 : List {Str, I64} = CallByName List.70 List.122 List.608;
let List.605 : List {Str, I64} = CallByName List.71 List.606 List.123;
ret List.605;
procedure List.6 (#Attr.2):
let List.587 : U64 = lowlevel ListLen #Attr.2;
ret List.587;
procedure List.6 (#Attr.2):
let List.634 : U64 = lowlevel ListLen #Attr.2;
ret List.634;
procedure List.6 (#Attr.2):
let List.646 : U64 = lowlevel ListLen #Attr.2;
ret List.646;
procedure List.64 (List.111, List.112, List.113):
let List.595 : U64 = CallByName List.6 List.111;
let List.592 : Int1 = CallByName Num.22 List.112 List.595;
if List.592 then
let List.593 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.111 List.112 List.113;
ret List.593;
else
let List.591 : {List {U32, U32}, {U32, U32}} = Struct {List.111, List.113};
ret List.591;
procedure List.64 (List.111, List.112, List.113):
let List.604 : U64 = CallByName List.6 List.111;
let List.601 : Int1 = CallByName Num.22 List.112 List.604;
if List.601 then
let List.602 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.111 List.112 List.113;
ret List.602;
else
let List.600 : {List {Str, I64}, {Str, I64}} = Struct {List.111, List.113};
ret List.600;
procedure List.66 (#Attr.2, #Attr.3):
let List.643 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.643;
let List.645 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.645;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.592 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.592;
let List.594 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.594;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.601 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.601;
let List.603 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.603;
procedure List.68 (#Attr.2):
let List.629 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.629;
let List.631 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.631;
procedure List.70 (#Attr.2, #Attr.3):
let List.607 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
let List.609 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.609;
procedure List.71 (#Attr.2, #Attr.3):
let List.607 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.607;
procedure List.71 (#Attr.2, #Attr.3):
let List.605 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.605;
let List.628 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.628;
procedure List.71 (#Attr.2, #Attr.3):
let List.626 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.626;
procedure List.83 (List.167, List.168, List.169):
let List.611 : U64 = 0i64;
let List.612 : U64 = CallByName List.6 List.167;
let List.610 : List {U32, U32} = CallByName List.91 List.167 List.168 List.169 List.611 List.612;
ret List.610;
procedure List.83 (List.165, List.166, List.167):
let List.609 : U64 = 0i64;
let List.610 : U64 = CallByName List.6 List.165;
let List.608 : List {U32, U32} = CallByName List.90 List.165 List.166 List.167 List.609 List.610;
ret List.608;
procedure List.87 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
joinpoint List.620 List.137 List.138 List.139:
let List.628 : U64 = 0i64;
let List.622 : Int1 = CallByName Num.24 List.138 List.628;
if List.622 then
let List.627 : U64 = 1i64;
let List.624 : U64 = CallByName Num.75 List.138 List.627;
let List.625 : List {U32, U32} = CallByName List.71 List.139 List.137;
jump List.620 List.137 List.624 List.625;
procedure List.88 (#Derived_gen.58, #Derived_gen.59, #Derived_gen.60):
joinpoint List.622 List.138 List.139 List.140:
let List.630 : U64 = 0i64;
let List.624 : Int1 = CallByName Num.24 List.139 List.630;
if List.624 then
let List.629 : U64 = 1i64;
let List.626 : U64 = CallByName Num.75 List.139 List.629;
let List.627 : List {U32, U32} = CallByName List.71 List.140 List.138;
jump List.622 List.138 List.626 List.627;
else
ret List.139;
ret List.140;
in
jump List.620 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
jump List.622 #Derived_gen.58 #Derived_gen.59 #Derived_gen.60;
procedure List.89 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : {Str, I64} = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.153 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint List.638 List.161 List.162 List.163 List.164 List.165:
let List.640 : Int1 = CallByName Num.22 List.164 List.165;
if List.640 then
let List.644 : {Str, I64} = CallByName List.66 List.161 List.164;
inc List.644;
let List.166 : {Str, Int1} = CallByName Dict.182 List.162 List.644 List.163;
let List.643 : U64 = 1i64;
let List.642 : U64 = CallByName Num.51 List.164 List.643;
jump List.638 List.161 List.166 List.163 List.642 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
jump List.638 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
procedure List.89 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56, #Derived_gen.57, #Derived_gen.58):
joinpoint List.636 List.159 List.160 List.161 List.162 List.163:
let List.638 : Int1 = CallByName Num.22 List.162 List.163;
if List.638 then
let List.642 : {Str, I64} = CallByName List.66 List.159 List.162;
inc List.642;
let List.164 : {Str, Int1} = CallByName Dict.182 List.160 List.642 List.161;
let List.641 : U64 = 1i64;
let List.640 : U64 = CallByName Num.51 List.162 List.641;
jump List.636 List.159 List.164 List.161 List.640 List.163;
procedure List.90 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : {Str, I64} = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.153 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.636 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56 #Derived_gen.57 #Derived_gen.58;
jump List.574 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.90 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.611 List.168 List.169 List.170 List.171 List.172:
let List.613 : Int1 = CallByName Num.22 List.171 List.172;
if List.613 then
let List.617 : {Str, I64} = CallByName List.66 List.168 List.171;
inc List.617;
let List.173 : List {U32, U32} = CallByName Dict.399 List.169 List.617 List.171 List.170;
let List.616 : U64 = 1i64;
let List.615 : U64 = CallByName Num.51 List.171 List.616;
jump List.611 List.168 List.173 List.170 List.615 List.172;
procedure List.91 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65):
joinpoint List.613 List.170 List.171 List.172 List.173 List.174:
let List.615 : Int1 = CallByName Num.22 List.173 List.174;
if List.615 then
let List.619 : {Str, I64} = CallByName List.66 List.170 List.173;
inc List.619;
let List.175 : List {U32, U32} = CallByName Dict.399 List.171 List.619 List.173 List.172;
let List.618 : U64 = 1i64;
let List.617 : U64 = CallByName Num.51 List.173 List.618;
jump List.613 List.170 List.175 List.172 List.617 List.174;
else
dec List.168;
ret List.169;
dec List.170;
ret List.171;
in
jump List.611 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
jump List.613 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65;
procedure Num.131 (#Attr.2):
let Num.310 : U32 = lowlevel NumIntCast #Attr.2;

View file

@ -125,34 +125,34 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : I64 = CallByName List.66 List.159 List.162;
let List.164 : {Str, Int1} = CallByName Inspect.161 List.160 List.578 List.161;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : I64 = CallByName List.66 List.161 List.164;
let List.166 : {Str, Int1} = CallByName Inspect.161 List.162 List.580 List.163;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
jump List.574 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.293 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -200,65 +200,65 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.18 (List.156, List.157, List.158):
let List.582 : U64 = 0i64;
let List.583 : U64 = CallByName List.6 List.156;
let List.581 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.582 List.583;
procedure List.18 (List.158, List.159, List.160):
let List.584 : U64 = 0i64;
let List.585 : U64 = CallByName List.6 List.158;
let List.583 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.584 List.585;
ret List.583;
procedure List.6 (#Attr.2):
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.6 (#Attr.2):
let List.594 : U64 = lowlevel ListLen #Attr.2;
ret List.594;
procedure List.66 (#Attr.2, #Attr.3):
let List.581 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
procedure List.6 (#Attr.2):
let List.592 : U64 = lowlevel ListLen #Attr.2;
ret List.592;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.593 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.593;
procedure List.66 (#Attr.2, #Attr.3):
let List.591 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.591;
procedure List.89 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : {Str, Int1} = CallByName Inspect.234 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint List.586 List.161 List.162 List.163 List.164 List.165:
let List.588 : Int1 = CallByName Num.22 List.164 List.165;
if List.588 then
let List.592 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.592;
let List.166 : {Str, Int1} = CallByName Inspect.234 List.162 List.592;
let List.591 : U64 = 1i64;
let List.590 : U64 = CallByName Num.51 List.164 List.591;
jump List.586 List.161 List.166 List.163 List.590 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
jump List.586 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure List.89 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47):
joinpoint List.584 List.159 List.160 List.161 List.162 List.163:
let List.586 : Int1 = CallByName Num.22 List.162 List.163;
if List.586 then
let List.590 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.590;
let List.164 : {Str, Int1} = CallByName Inspect.234 List.160 List.590;
let List.589 : U64 = 1i64;
let List.588 : U64 = CallByName Num.51 List.162 List.589;
jump List.584 List.159 List.164 List.161 List.588 List.163;
procedure List.90 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : {Str, Int1} = CallByName Inspect.234 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.584 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47;
jump List.574 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.294 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -150,35 +150,35 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : {[C I64, C Decimal], Str} = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : {Str, Int1} = CallByName Inspect.234 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : {[C I64, C Decimal], Str} = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : {Str, Int1} = CallByName Inspect.234 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
jump List.574 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.294 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -127,35 +127,35 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : {Str, Int1} = CallByName Inspect.234 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : {Str, Int1} = CallByName Inspect.234 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
jump List.574 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -134,35 +134,35 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : {Str, Int1} = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : {Str, Int1} = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : {Str, Str} = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : {Str, Int1} = CallByName Inspect.234 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : {Str, Str} = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : {Str, Int1} = CallByName Inspect.234 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
jump List.574 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -122,42 +122,42 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.1 (List.104):
let List.582 : U64 = CallByName List.6 List.104;
dec List.104;
let List.583 : U64 = 0i64;
let List.581 : Int1 = CallByName Bool.11 List.582 List.583;
ret List.581;
procedure List.1 (List.105):
let List.584 : U64 = CallByName List.6 List.105;
dec List.105;
let List.585 : U64 = 0i64;
let List.583 : Int1 = CallByName Bool.11 List.584 List.585;
ret List.583;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : Str = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : Str = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : Str = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : Str = CallByName Inspect.211 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : Str = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : Str = CallByName Inspect.211 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.574 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -125,42 +125,42 @@ procedure Inspect.61 (Inspect.304, Inspect.300):
procedure Inspect.62 (Inspect.306):
ret Inspect.306;
procedure List.1 (List.104):
let List.582 : U64 = CallByName List.6 List.104;
dec List.104;
let List.583 : U64 = 0i64;
let List.581 : Int1 = CallByName Bool.11 List.582 List.583;
ret List.581;
procedure List.1 (List.105):
let List.584 : U64 = CallByName List.6 List.105;
dec List.105;
let List.585 : U64 = 0i64;
let List.583 : Int1 = CallByName Bool.11 List.584 List.585;
ret List.583;
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : Str = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : Str = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : Str = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : Str = CallByName Inspect.211 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : Str = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : Str = CallByName Inspect.211 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
jump List.574 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,6 +1,6 @@
procedure List.6 (#Attr.2):
let List.569 : U64 = lowlevel ListLen #Attr.2;
ret List.569;
let List.571 : U64 = lowlevel ListLen #Attr.2;
ret List.571;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.293 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -6,42 +6,42 @@ procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure List.2 (List.105, List.106):
let List.583 : U64 = CallByName List.6 List.105;
let List.579 : Int1 = CallByName Num.22 List.106 List.583;
if List.579 then
let List.581 : I64 = CallByName List.66 List.105 List.106;
dec List.105;
let List.580 : [C {}, C I64] = TagId(1) List.581;
ret List.580;
procedure List.2 (List.106, List.107):
let List.585 : U64 = CallByName List.6 List.106;
let List.581 : Int1 = CallByName Num.22 List.107 List.585;
if List.581 then
let List.583 : I64 = CallByName List.66 List.106 List.107;
dec List.106;
let List.582 : [C {}, C I64] = TagId(1) List.583;
ret List.582;
else
dec List.105;
let List.578 : {} = Struct {};
let List.577 : [C {}, C I64] = TagId(0) List.578;
ret List.577;
dec List.106;
let List.580 : {} = Struct {};
let List.579 : [C {}, C I64] = TagId(0) List.580;
ret List.579;
procedure List.6 (#Attr.2):
let List.584 : U64 = lowlevel ListLen #Attr.2;
ret List.584;
let List.586 : U64 = lowlevel ListLen #Attr.2;
ret List.586;
procedure List.66 (#Attr.2, #Attr.3):
let List.582 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.582;
let List.584 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
procedure List.9 (List.331):
let List.576 : U64 = 0i64;
let List.569 : [C {}, C I64] = CallByName List.2 List.331 List.576;
let List.573 : U8 = 1i64;
let List.574 : U8 = GetTagId List.569;
let List.575 : Int1 = lowlevel Eq List.573 List.574;
if List.575 then
let List.332 : I64 = UnionAtIndex (Id 1) (Index 0) List.569;
let List.570 : [C Int1, C I64] = TagId(1) List.332;
ret List.570;
procedure List.9 (List.333):
let List.578 : U64 = 0i64;
let List.571 : [C {}, C I64] = CallByName List.2 List.333 List.578;
let List.575 : U8 = 1i64;
let List.576 : U8 = GetTagId List.571;
let List.577 : Int1 = lowlevel Eq List.575 List.576;
if List.577 then
let List.334 : I64 = UnionAtIndex (Id 1) (Index 0) List.571;
let List.572 : [C Int1, C I64] = TagId(1) List.334;
ret List.572;
else
let List.572 : Int1 = true;
let List.571 : [C Int1, C I64] = TagId(0) List.572;
ret List.571;
let List.574 : Int1 = true;
let List.573 : [C Int1, C I64] = TagId(0) List.574;
ret List.573;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -64,119 +64,119 @@ procedure Decode.27 (Decode.107, Decode.108):
let Decode.123 : [C [C List U8, C ], C Str] = TagId(0) Decode.124;
ret Decode.123;
procedure List.1 (List.104):
let List.623 : U64 = CallByName List.6 List.104;
dec List.104;
let List.624 : U64 = 0i64;
let List.622 : Int1 = CallByName Bool.11 List.623 List.624;
ret List.622;
procedure List.101 (List.484, List.485, List.486):
let List.632 : U64 = 0i64;
let List.633 : U64 = CallByName List.6 List.484;
let List.631 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.484 List.485 List.486 List.632 List.633;
ret List.631;
procedure List.2 (List.105, List.106):
let List.614 : U64 = CallByName List.6 List.105;
let List.611 : Int1 = CallByName Num.22 List.106 List.614;
if List.611 then
let List.613 : U8 = CallByName List.66 List.105 List.106;
procedure List.1 (List.105):
let List.625 : U64 = CallByName List.6 List.105;
dec List.105;
let List.612 : [C {}, C U8] = TagId(1) List.613;
ret List.612;
let List.626 : U64 = 0i64;
let List.624 : Int1 = CallByName Bool.11 List.625 List.626;
ret List.624;
procedure List.102 (List.486, List.487, List.488):
let List.634 : U64 = 0i64;
let List.635 : U64 = CallByName List.6 List.486;
let List.633 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.486 List.487 List.488 List.634 List.635;
ret List.633;
procedure List.2 (List.106, List.107):
let List.616 : U64 = CallByName List.6 List.106;
let List.613 : Int1 = CallByName Num.22 List.107 List.616;
if List.613 then
let List.615 : U8 = CallByName List.66 List.106 List.107;
dec List.106;
let List.614 : [C {}, C U8] = TagId(1) List.615;
ret List.614;
else
dec List.105;
let List.610 : {} = Struct {};
let List.609 : [C {}, C U8] = TagId(0) List.610;
ret List.609;
dec List.106;
let List.612 : {} = Struct {};
let List.611 : [C {}, C U8] = TagId(0) List.612;
ret List.611;
procedure List.26 (List.197, List.198, List.199):
let List.625 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.101 List.197 List.198 List.199;
let List.628 : U8 = 1i64;
let List.629 : U8 = GetTagId List.625;
let List.630 : Int1 = lowlevel Eq List.628 List.629;
if List.630 then
let List.200 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.625;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.627 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.102 List.199 List.200 List.201;
let List.630 : U8 = 1i64;
let List.631 : U8 = GetTagId List.627;
let List.632 : Int1 = lowlevel Eq List.630 List.631;
if List.632 then
let List.202 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.627;
ret List.202;
else
let List.201 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.625;
ret List.201;
let List.203 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.627;
ret List.203;
procedure List.38 (List.340, List.341):
let List.591 : U64 = CallByName List.6 List.340;
let List.342 : U64 = CallByName Num.77 List.591 List.341;
let List.590 : List U8 = CallByName List.43 List.340 List.342;
ret List.590;
procedure List.38 (List.342, List.343):
let List.593 : U64 = CallByName List.6 List.342;
let List.344 : U64 = CallByName Num.77 List.593 List.343;
let List.592 : List U8 = CallByName List.43 List.342 List.344;
ret List.592;
procedure List.4 (List.121, List.122):
let List.601 : U64 = 1i64;
let List.600 : List U8 = CallByName List.70 List.121 List.601;
let List.599 : List U8 = CallByName List.71 List.600 List.122;
ret List.599;
procedure List.4 (List.122, List.123):
let List.603 : U64 = 1i64;
let List.602 : List U8 = CallByName List.70 List.122 List.603;
let List.601 : List U8 = CallByName List.71 List.602 List.123;
ret List.601;
procedure List.43 (List.338, List.339):
let List.581 : U64 = CallByName List.6 List.338;
let List.580 : U64 = CallByName Num.77 List.581 List.339;
let List.575 : {U64, U64} = Struct {List.339, List.580};
let List.574 : List U8 = CallByName List.49 List.338 List.575;
ret List.574;
procedure List.43 (List.340, List.341):
let List.583 : U64 = CallByName List.6 List.340;
let List.582 : U64 = CallByName Num.77 List.583 List.341;
let List.577 : {U64, U64} = Struct {List.341, List.582};
let List.576 : List U8 = CallByName List.49 List.340 List.577;
ret List.576;
procedure List.49 (List.416, List.417):
let List.619 : U64 = StructAtIndex 1 List.417;
let List.620 : U64 = StructAtIndex 0 List.417;
let List.618 : List U8 = CallByName List.72 List.416 List.619 List.620;
ret List.618;
procedure List.49 (List.418, List.419):
let List.621 : U64 = StructAtIndex 1 List.419;
let List.622 : U64 = StructAtIndex 0 List.419;
let List.620 : List U8 = CallByName List.72 List.418 List.621 List.622;
ret List.620;
procedure List.6 (#Attr.2):
let List.646 : U64 = lowlevel ListLen #Attr.2;
ret List.646;
let List.648 : U64 = lowlevel ListLen #Attr.2;
ret List.648;
procedure List.66 (#Attr.2, #Attr.3):
let List.607 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.607;
let List.609 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.609;
procedure List.70 (#Attr.2, #Attr.3):
let List.598 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.598;
let List.600 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.600;
procedure List.71 (#Attr.2, #Attr.3):
let List.596 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.596;
let List.598 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.598;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.579 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.579;
let List.581 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.581;
procedure List.8 (#Attr.2, #Attr.3):
let List.593 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.593;
let List.595 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.595;
procedure List.80 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
joinpoint List.634 List.487 List.488 List.489 List.490 List.491:
let List.636 : Int1 = CallByName Num.22 List.490 List.491;
if List.636 then
let List.645 : U8 = CallByName List.66 List.487 List.490;
let List.637 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.488 List.645;
let List.642 : U8 = 1i64;
let List.643 : U8 = GetTagId List.637;
let List.644 : Int1 = lowlevel Eq List.642 List.643;
if List.644 then
let List.492 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.637;
let List.640 : U64 = 1i64;
let List.639 : U64 = CallByName Num.51 List.490 List.640;
jump List.634 List.487 List.492 List.489 List.639 List.491;
joinpoint List.636 List.489 List.490 List.491 List.492 List.493:
let List.638 : Int1 = CallByName Num.22 List.492 List.493;
if List.638 then
let List.647 : U8 = CallByName List.66 List.489 List.492;
let List.639 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.490 List.647;
let List.644 : U8 = 1i64;
let List.645 : U8 = GetTagId List.639;
let List.646 : Int1 = lowlevel Eq List.644 List.645;
if List.646 then
let List.494 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.639;
let List.642 : U64 = 1i64;
let List.641 : U64 = CallByName Num.51 List.492 List.642;
jump List.636 List.489 List.494 List.491 List.641 List.493;
else
dec List.487;
let List.493 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.637;
let List.641 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.493;
ret List.641;
dec List.489;
let List.495 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.639;
let List.643 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.495;
ret List.643;
else
dec List.487;
let List.635 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.488;
ret List.635;
dec List.489;
let List.637 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.490;
ret List.637;
in
jump List.634 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
jump List.636 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.294 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -6,80 +6,80 @@ procedure Bool.2 ():
let Bool.24 : Int1 = true;
ret Bool.24;
procedure List.101 (List.484, List.485, List.486):
let List.583 : U64 = 0i64;
let List.584 : U64 = CallByName List.6 List.484;
let List.582 : [C {}, C {}] = CallByName List.80 List.484 List.485 List.486 List.583 List.584;
ret List.582;
procedure List.102 (List.486, List.487, List.488):
let List.585 : U64 = 0i64;
let List.586 : U64 = CallByName List.6 List.486;
let List.584 : [C {}, C {}] = CallByName List.80 List.486 List.487 List.488 List.585 List.586;
ret List.584;
procedure List.23 (#Attr.2, #Attr.3, #Attr.4):
let List.604 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListMap2 { xs: `#Attr.#arg1`, ys: `#Attr.#arg2` } #Attr.2 #Attr.3 Test.15 #Attr.4;
let List.606 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListMap2 { xs: `#Attr.#arg1`, ys: `#Attr.#arg2` } #Attr.2 #Attr.3 Test.15 #Attr.4;
decref #Attr.3;
decref #Attr.2;
ret List.606;
procedure List.234 (List.573, List.235, List.233):
let List.603 : Int1 = CallByName Test.1 List.235;
if List.603 then
let List.605 : {} = Struct {};
let List.604 : [C {}, C {}] = TagId(1) List.605;
ret List.604;
procedure List.232 (List.571, List.233, List.231):
let List.601 : Int1 = CallByName Test.1 List.233;
if List.601 then
let List.603 : {} = Struct {};
let List.602 : [C {}, C {}] = TagId(1) List.603;
ret List.602;
else
let List.600 : {} = Struct {};
let List.599 : [C {}, C {}] = TagId(0) List.600;
ret List.599;
let List.602 : {} = Struct {};
let List.601 : [C {}, C {}] = TagId(0) List.602;
ret List.601;
procedure List.56 (List.230, List.231):
let List.580 : {} = Struct {};
let List.572 : [C {}, C {}] = CallByName List.101 List.230 List.580 List.231;
let List.577 : U8 = 1i64;
let List.578 : U8 = GetTagId List.572;
let List.579 : Int1 = lowlevel Eq List.577 List.578;
if List.579 then
let List.573 : Int1 = CallByName Bool.2;
ret List.573;
procedure List.56 (List.232, List.233):
let List.582 : {} = Struct {};
let List.574 : [C {}, C {}] = CallByName List.102 List.232 List.582 List.233;
let List.579 : U8 = 1i64;
let List.580 : U8 = GetTagId List.574;
let List.581 : Int1 = lowlevel Eq List.579 List.580;
if List.581 then
let List.575 : Int1 = CallByName Bool.2;
ret List.575;
else
let List.574 : Int1 = CallByName Bool.1;
ret List.574;
let List.576 : Int1 = CallByName Bool.1;
ret List.576;
procedure List.6 (#Attr.2):
let List.570 : U64 = lowlevel ListLen #Attr.2;
ret List.570;
let List.572 : U64 = lowlevel ListLen #Attr.2;
ret List.572;
procedure List.6 (#Attr.2):
let List.598 : U64 = lowlevel ListLen #Attr.2;
ret List.598;
let List.600 : U64 = lowlevel ListLen #Attr.2;
ret List.600;
procedure List.66 (#Attr.2, #Attr.3):
let List.597 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.597;
let List.599 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.599;
procedure List.80 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
joinpoint List.585 List.487 List.488 List.489 List.490 List.491:
let List.587 : Int1 = CallByName Num.22 List.490 List.491;
if List.587 then
let List.596 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.487 List.490;
inc List.596;
let List.588 : [C {}, C {}] = CallByName List.232 List.488 List.596 List.489;
let List.593 : U8 = 1i64;
let List.594 : U8 = GetTagId List.588;
let List.595 : Int1 = lowlevel Eq List.593 List.594;
if List.595 then
let List.492 : {} = UnionAtIndex (Id 1) (Index 0) List.588;
let List.591 : U64 = 1i64;
let List.590 : U64 = CallByName Num.51 List.490 List.591;
jump List.585 List.487 List.492 List.489 List.590 List.491;
joinpoint List.587 List.489 List.490 List.491 List.492 List.493:
let List.589 : Int1 = CallByName Num.22 List.492 List.493;
if List.589 then
let List.598 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.489 List.492;
inc List.598;
let List.590 : [C {}, C {}] = CallByName List.234 List.490 List.598 List.491;
let List.595 : U8 = 1i64;
let List.596 : U8 = GetTagId List.590;
let List.597 : Int1 = lowlevel Eq List.595 List.596;
if List.597 then
let List.494 : {} = UnionAtIndex (Id 1) (Index 0) List.590;
let List.593 : U64 = 1i64;
let List.592 : U64 = CallByName Num.51 List.492 List.593;
jump List.587 List.489 List.494 List.491 List.592 List.493;
else
dec List.487;
let List.493 : {} = UnionAtIndex (Id 0) (Index 0) List.588;
let List.592 : [C {}, C {}] = TagId(0) List.493;
ret List.592;
dec List.489;
let List.495 : {} = UnionAtIndex (Id 0) (Index 0) List.590;
let List.594 : [C {}, C {}] = TagId(0) List.495;
ret List.594;
else
dec List.487;
let List.586 : [C {}, C {}] = TagId(1) List.488;
ret List.586;
dec List.489;
let List.588 : [C {}, C {}] = TagId(1) List.490;
ret List.588;
in
jump List.585 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
jump List.587 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -38,119 +38,119 @@ procedure Decode.26 (Decode.105, Decode.106):
let Decode.122 : {List U8, [C {}, C Str]} = CallByName Decode.25 Decode.105 Decode.123 Decode.106;
ret Decode.122;
procedure List.1 (List.104):
let List.619 : U64 = CallByName List.6 List.104;
dec List.104;
let List.620 : U64 = 0i64;
let List.618 : Int1 = CallByName Bool.11 List.619 List.620;
ret List.618;
procedure List.101 (List.484, List.485, List.486):
let List.628 : U64 = 0i64;
let List.629 : U64 = CallByName List.6 List.484;
let List.627 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.484 List.485 List.486 List.628 List.629;
ret List.627;
procedure List.2 (List.105, List.106):
let List.610 : U64 = CallByName List.6 List.105;
let List.607 : Int1 = CallByName Num.22 List.106 List.610;
if List.607 then
let List.609 : U8 = CallByName List.66 List.105 List.106;
procedure List.1 (List.105):
let List.621 : U64 = CallByName List.6 List.105;
dec List.105;
let List.608 : [C {}, C U8] = TagId(1) List.609;
ret List.608;
let List.622 : U64 = 0i64;
let List.620 : Int1 = CallByName Bool.11 List.621 List.622;
ret List.620;
procedure List.102 (List.486, List.487, List.488):
let List.630 : U64 = 0i64;
let List.631 : U64 = CallByName List.6 List.486;
let List.629 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.80 List.486 List.487 List.488 List.630 List.631;
ret List.629;
procedure List.2 (List.106, List.107):
let List.612 : U64 = CallByName List.6 List.106;
let List.609 : Int1 = CallByName Num.22 List.107 List.612;
if List.609 then
let List.611 : U8 = CallByName List.66 List.106 List.107;
dec List.106;
let List.610 : [C {}, C U8] = TagId(1) List.611;
ret List.610;
else
dec List.105;
let List.606 : {} = Struct {};
let List.605 : [C {}, C U8] = TagId(0) List.606;
ret List.605;
dec List.106;
let List.608 : {} = Struct {};
let List.607 : [C {}, C U8] = TagId(0) List.608;
ret List.607;
procedure List.26 (List.197, List.198, List.199):
let List.621 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.101 List.197 List.198 List.199;
let List.624 : U8 = 1i64;
let List.625 : U8 = GetTagId List.621;
let List.626 : Int1 = lowlevel Eq List.624 List.625;
if List.626 then
let List.200 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.621;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.623 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName List.102 List.199 List.200 List.201;
let List.626 : U8 = 1i64;
let List.627 : U8 = GetTagId List.623;
let List.628 : Int1 = lowlevel Eq List.626 List.627;
if List.628 then
let List.202 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.623;
ret List.202;
else
let List.201 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.621;
ret List.201;
let List.203 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.623;
ret List.203;
procedure List.38 (List.340, List.341):
let List.587 : U64 = CallByName List.6 List.340;
let List.342 : U64 = CallByName Num.77 List.587 List.341;
let List.586 : List U8 = CallByName List.43 List.340 List.342;
ret List.586;
procedure List.38 (List.342, List.343):
let List.589 : U64 = CallByName List.6 List.342;
let List.344 : U64 = CallByName Num.77 List.589 List.343;
let List.588 : List U8 = CallByName List.43 List.342 List.344;
ret List.588;
procedure List.4 (List.121, List.122):
let List.597 : U64 = 1i64;
let List.596 : List U8 = CallByName List.70 List.121 List.597;
let List.595 : List U8 = CallByName List.71 List.596 List.122;
ret List.595;
procedure List.4 (List.122, List.123):
let List.599 : U64 = 1i64;
let List.598 : List U8 = CallByName List.70 List.122 List.599;
let List.597 : List U8 = CallByName List.71 List.598 List.123;
ret List.597;
procedure List.43 (List.338, List.339):
let List.577 : U64 = CallByName List.6 List.338;
let List.576 : U64 = CallByName Num.77 List.577 List.339;
let List.571 : {U64, U64} = Struct {List.339, List.576};
let List.570 : List U8 = CallByName List.49 List.338 List.571;
ret List.570;
procedure List.43 (List.340, List.341):
let List.579 : U64 = CallByName List.6 List.340;
let List.578 : U64 = CallByName Num.77 List.579 List.341;
let List.573 : {U64, U64} = Struct {List.341, List.578};
let List.572 : List U8 = CallByName List.49 List.340 List.573;
ret List.572;
procedure List.49 (List.416, List.417):
let List.615 : U64 = StructAtIndex 1 List.417;
let List.616 : U64 = StructAtIndex 0 List.417;
let List.614 : List U8 = CallByName List.72 List.416 List.615 List.616;
ret List.614;
procedure List.49 (List.418, List.419):
let List.617 : U64 = StructAtIndex 1 List.419;
let List.618 : U64 = StructAtIndex 0 List.419;
let List.616 : List U8 = CallByName List.72 List.418 List.617 List.618;
ret List.616;
procedure List.6 (#Attr.2):
let List.642 : U64 = lowlevel ListLen #Attr.2;
ret List.642;
let List.644 : U64 = lowlevel ListLen #Attr.2;
ret List.644;
procedure List.66 (#Attr.2, #Attr.3):
let List.603 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.603;
let List.605 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.605;
procedure List.70 (#Attr.2, #Attr.3):
let List.594 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.594;
let List.596 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.596;
procedure List.71 (#Attr.2, #Attr.3):
let List.592 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.592;
let List.594 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.594;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.575 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.575;
let List.577 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.577;
procedure List.8 (#Attr.2, #Attr.3):
let List.589 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.589;
let List.591 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.591;
procedure List.80 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
joinpoint List.630 List.487 List.488 List.489 List.490 List.491:
let List.632 : Int1 = CallByName Num.22 List.490 List.491;
if List.632 then
let List.641 : U8 = CallByName List.66 List.487 List.490;
let List.633 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.488 List.641;
let List.638 : U8 = 1i64;
let List.639 : U8 = GetTagId List.633;
let List.640 : Int1 = lowlevel Eq List.638 List.639;
if List.640 then
let List.492 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.633;
let List.636 : U64 = 1i64;
let List.635 : U64 = CallByName Num.51 List.490 List.636;
jump List.630 List.487 List.492 List.489 List.635 List.491;
joinpoint List.632 List.489 List.490 List.491 List.492 List.493:
let List.634 : Int1 = CallByName Num.22 List.492 List.493;
if List.634 then
let List.643 : U8 = CallByName List.66 List.489 List.492;
let List.635 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = CallByName TotallyNotJson.61 List.490 List.643;
let List.640 : U8 = 1i64;
let List.641 : U8 = GetTagId List.635;
let List.642 : Int1 = lowlevel Eq List.640 List.641;
if List.642 then
let List.494 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 1) (Index 0) List.635;
let List.638 : U64 = 1i64;
let List.637 : U64 = CallByName Num.51 List.492 List.638;
jump List.632 List.489 List.494 List.491 List.637 List.493;
else
dec List.487;
let List.493 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.633;
let List.637 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.493;
ret List.637;
dec List.489;
let List.495 : [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64] = UnionAtIndex (Id 0) (Index 0) List.635;
let List.639 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(0) List.495;
ret List.639;
else
dec List.487;
let List.631 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.488;
ret List.631;
dec List.489;
let List.633 : [C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64], C [C U64, C U64, C U64, C , C , C U64, C U64, C U64, C U64]] = TagId(1) List.490;
ret List.633;
in
jump List.630 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
jump List.632 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.294 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,32 +1,32 @@
procedure List.18 (List.156, List.157, List.158):
let List.570 : U64 = 0i64;
let List.571 : U64 = CallByName List.6 List.156;
let List.569 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.89 List.156 List.157 List.158 List.570 List.571;
ret List.569;
procedure List.18 (List.158, List.159, List.160):
let List.572 : U64 = 0i64;
let List.573 : U64 = CallByName List.6 List.158;
let List.571 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.90 List.158 List.159 List.160 List.572 List.573;
ret List.571;
procedure List.6 (#Attr.2):
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
let List.582 : U64 = lowlevel ListLen #Attr.2;
ret List.582;
procedure List.66 (#Attr.2, #Attr.3):
let List.579 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.579;
let List.581 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.581;
procedure List.89 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.572 List.159 List.160 List.161 List.162 List.163:
let List.574 : Int1 = CallByName Num.22 List.162 List.163;
if List.574 then
let List.578 : [<rnu>C *self, <null>] = CallByName List.66 List.159 List.162;
inc List.578;
let List.164 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.160 List.578;
let List.577 : U64 = 1i64;
let List.576 : U64 = CallByName Num.51 List.162 List.577;
jump List.572 List.159 List.164 List.161 List.576 List.163;
procedure List.90 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.574 List.161 List.162 List.163 List.164 List.165:
let List.576 : Int1 = CallByName Num.22 List.164 List.165;
if List.576 then
let List.580 : [<rnu>C *self, <null>] = CallByName List.66 List.161 List.164;
inc List.580;
let List.166 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.162 List.580;
let List.579 : U64 = 1i64;
let List.578 : U64 = CallByName Num.51 List.164 List.579;
jump List.574 List.161 List.166 List.163 List.578 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.572 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.574 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.121, List.122):
let List.572 : U64 = 1i64;
let List.570 : List I64 = CallByName List.70 List.121 List.572;
let List.569 : List I64 = CallByName List.71 List.570 List.122;
ret List.569;
procedure List.4 (List.122, List.123):
let List.574 : U64 = 1i64;
let List.572 : List I64 = CallByName List.70 List.122 List.574;
let List.571 : List I64 = CallByName List.71 List.572 List.123;
ret List.571;
procedure List.70 (#Attr.2, #Attr.3):
let List.573 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.573;
let List.575 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.575;
procedure List.71 (#Attr.2, #Attr.3):
let List.571 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.571;
let List.573 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.573;
procedure Test.0 ():
let Test.2 : List I64 = Array [1i64];

View file

@ -1,16 +1,16 @@
procedure List.4 (List.121, List.122):
let List.572 : U64 = 1i64;
let List.570 : List I64 = CallByName List.70 List.121 List.572;
let List.569 : List I64 = CallByName List.71 List.570 List.122;
ret List.569;
procedure List.4 (List.122, List.123):
let List.574 : U64 = 1i64;
let List.572 : List I64 = CallByName List.70 List.122 List.574;
let List.571 : List I64 = CallByName List.71 List.572 List.123;
ret List.571;
procedure List.70 (#Attr.2, #Attr.3):
let List.573 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.573;
let List.575 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.575;
procedure List.71 (#Attr.2, #Attr.3):
let List.571 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.571;
let List.573 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.573;
procedure Test.1 (Test.2):
let Test.6 : I64 = 42i64;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.113, List.114, List.115):
let List.572 : {List I64, I64} = CallByName List.64 List.113 List.114 List.115;
let List.571 : List I64 = StructAtIndex 0 List.572;
ret List.571;
procedure List.6 (#Attr.2):
let List.570 : U64 = lowlevel ListLen #Attr.2;
ret List.570;
procedure List.64 (List.110, List.111, List.112):
let List.577 : U64 = CallByName List.6 List.110;
let List.574 : Int1 = CallByName Num.22 List.111 List.577;
if List.574 then
let List.575 : {List I64, I64} = CallByName List.67 List.110 List.111 List.112;
ret List.575;
else
let List.573 : {List I64, I64} = Struct {List.110, List.112};
procedure List.3 (List.114, List.115, List.116):
let List.574 : {List I64, I64} = CallByName List.64 List.114 List.115 List.116;
let List.573 : List I64 = StructAtIndex 0 List.574;
ret List.573;
procedure List.6 (#Attr.2):
let List.572 : U64 = lowlevel ListLen #Attr.2;
ret List.572;
procedure List.64 (List.111, List.112, List.113):
let List.579 : U64 = CallByName List.6 List.111;
let List.576 : Int1 = CallByName Num.22 List.112 List.579;
if List.576 then
let List.577 : {List I64, I64} = CallByName List.67 List.111 List.112 List.113;
ret List.577;
else
let List.575 : {List I64, I64} = Struct {List.111, List.113};
ret List.575;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.576 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.576;
let List.578 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.578;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,24 +1,24 @@
procedure List.2 (List.105, List.106):
let List.575 : U64 = CallByName List.6 List.105;
let List.571 : Int1 = CallByName Num.22 List.106 List.575;
if List.571 then
let List.573 : I64 = CallByName List.66 List.105 List.106;
dec List.105;
let List.572 : [C {}, C I64] = TagId(1) List.573;
ret List.572;
procedure List.2 (List.106, List.107):
let List.577 : U64 = CallByName List.6 List.106;
let List.573 : Int1 = CallByName Num.22 List.107 List.577;
if List.573 then
let List.575 : I64 = CallByName List.66 List.106 List.107;
dec List.106;
let List.574 : [C {}, C I64] = TagId(1) List.575;
ret List.574;
else
dec List.105;
let List.570 : {} = Struct {};
let List.569 : [C {}, C I64] = TagId(0) List.570;
ret List.569;
dec List.106;
let List.572 : {} = Struct {};
let List.571 : [C {}, C I64] = TagId(0) List.572;
ret List.571;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.66 (#Attr.2, #Attr.3):
let List.574 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.574;
let List.576 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,10 +1,10 @@
procedure List.6 (#Attr.2):
let List.569 : U64 = lowlevel ListLen #Attr.2;
ret List.569;
let List.571 : U64 = lowlevel ListLen #Attr.2;
ret List.571;
procedure List.6 (#Attr.2):
let List.570 : U64 = lowlevel ListLen #Attr.2;
ret List.570;
let List.572 : U64 = lowlevel ListLen #Attr.2;
ret List.572;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,30 +1,30 @@
procedure List.2 (List.105, List.106):
let List.575 : U64 = CallByName List.6 List.105;
let List.571 : Int1 = CallByName Num.22 List.106 List.575;
if List.571 then
let List.573 : Str = CallByName List.66 List.105 List.106;
inc List.573;
dec List.105;
let List.572 : [C {}, C Str] = TagId(1) List.573;
ret List.572;
procedure List.2 (List.106, List.107):
let List.577 : U64 = CallByName List.6 List.106;
let List.573 : Int1 = CallByName Num.22 List.107 List.577;
if List.573 then
let List.575 : Str = CallByName List.66 List.106 List.107;
inc List.575;
dec List.106;
let List.574 : [C {}, C Str] = TagId(1) List.575;
ret List.574;
else
dec List.105;
let List.570 : {} = Struct {};
let List.569 : [C {}, C Str] = TagId(0) List.570;
ret List.569;
dec List.106;
let List.572 : {} = Struct {};
let List.571 : [C {}, C Str] = TagId(0) List.572;
ret List.571;
procedure List.5 (#Attr.2, #Attr.3):
let List.577 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3;
let List.579 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3;
decref #Attr.2;
ret List.577;
ret List.579;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.66 (#Attr.2, #Attr.3):
let List.574 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.574;
let List.576 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,30 +1,30 @@
procedure List.2 (List.105, List.106):
let List.575 : U64 = CallByName List.6 List.105;
let List.571 : Int1 = CallByName Num.22 List.106 List.575;
if List.571 then
let List.573 : Str = CallByName List.66 List.105 List.106;
inc List.573;
dec List.105;
let List.572 : [C {}, C Str] = TagId(1) List.573;
ret List.572;
procedure List.2 (List.106, List.107):
let List.577 : U64 = CallByName List.6 List.106;
let List.573 : Int1 = CallByName Num.22 List.107 List.577;
if List.573 then
let List.575 : Str = CallByName List.66 List.106 List.107;
inc List.575;
dec List.106;
let List.574 : [C {}, C Str] = TagId(1) List.575;
ret List.574;
else
dec List.105;
let List.570 : {} = Struct {};
let List.569 : [C {}, C Str] = TagId(0) List.570;
ret List.569;
dec List.106;
let List.572 : {} = Struct {};
let List.571 : [C {}, C Str] = TagId(0) List.572;
ret List.571;
procedure List.5 (#Attr.2, #Attr.3):
let List.577 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3;
let List.579 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3;
decref #Attr.2;
ret List.577;
ret List.579;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.66 (#Attr.2, #Attr.3):
let List.574 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.574;
let List.576 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,23 +1,23 @@
procedure List.5 (#Attr.2, #Attr.3):
let List.570 : U8 = GetTagId #Attr.3;
joinpoint List.571 List.569:
ret List.569;
let List.572 : U8 = GetTagId #Attr.3;
joinpoint List.573 List.571:
ret List.571;
in
switch List.570:
switch List.572:
case 0:
let List.572 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.4 #Attr.3;
let List.574 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.4 #Attr.3;
decref #Attr.2;
jump List.571 List.572;
jump List.573 List.574;
case 1:
let List.573 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.6 #Attr.3;
let List.575 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.6 #Attr.3;
decref #Attr.2;
jump List.571 List.573;
jump List.573 List.575;
default:
let List.574 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.8 #Attr.3;
let List.576 : List U8 = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.8 #Attr.3;
decref #Attr.2;
jump List.571 List.574;
jump List.573 List.576;
procedure Num.19 (#Attr.2, #Attr.3):

View file

@ -1,25 +1,25 @@
procedure List.3 (List.113, List.114, List.115):
let List.570 : {List I64, I64} = CallByName List.64 List.113 List.114 List.115;
let List.569 : List I64 = StructAtIndex 0 List.570;
ret List.569;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
procedure List.64 (List.110, List.111, List.112):
let List.575 : U64 = CallByName List.6 List.110;
let List.572 : Int1 = CallByName Num.22 List.111 List.575;
if List.572 then
let List.573 : {List I64, I64} = CallByName List.67 List.110 List.111 List.112;
ret List.573;
else
let List.571 : {List I64, I64} = Struct {List.110, List.112};
procedure List.3 (List.114, List.115, List.116):
let List.572 : {List I64, I64} = CallByName List.64 List.114 List.115 List.116;
let List.571 : List I64 = StructAtIndex 0 List.572;
ret List.571;
procedure List.6 (#Attr.2):
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.64 (List.111, List.112, List.113):
let List.577 : U64 = CallByName List.6 List.111;
let List.574 : Int1 = CallByName Num.22 List.112 List.577;
if List.574 then
let List.575 : {List I64, I64} = CallByName List.67 List.111 List.112 List.113;
ret List.575;
else
let List.573 : {List I64, I64} = Struct {List.111, List.113};
ret List.573;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.574 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.574;
let List.576 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,11 +1,11 @@
procedure List.28 (#Attr.2, #Attr.3):
let List.571 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.571;
let List.573 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.573;
procedure List.59 (List.326):
let List.570 : {} = Struct {};
let List.569 : List I64 = CallByName List.28 List.326 List.570;
ret List.569;
procedure List.59 (List.328):
let List.572 : {} = Struct {};
let List.571 : List I64 = CallByName List.28 List.328 List.572;
ret List.571;
procedure Num.46 (#Attr.2, #Attr.3):
let Num.291 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;

View file

@ -1,43 +1,43 @@
procedure List.2 (List.105, List.106):
let List.591 : U64 = CallByName List.6 List.105;
let List.588 : Int1 = CallByName Num.22 List.106 List.591;
if List.588 then
let List.590 : I64 = CallByName List.66 List.105 List.106;
dec List.105;
let List.589 : [C {}, C I64] = TagId(1) List.590;
ret List.589;
procedure List.2 (List.106, List.107):
let List.593 : U64 = CallByName List.6 List.106;
let List.590 : Int1 = CallByName Num.22 List.107 List.593;
if List.590 then
let List.592 : I64 = CallByName List.66 List.106 List.107;
dec List.106;
let List.591 : [C {}, C I64] = TagId(1) List.592;
ret List.591;
else
dec List.105;
let List.587 : {} = Struct {};
let List.586 : [C {}, C I64] = TagId(0) List.587;
ret List.586;
dec List.106;
let List.589 : {} = Struct {};
let List.588 : [C {}, C I64] = TagId(0) List.589;
ret List.588;
procedure List.3 (List.113, List.114, List.115):
let List.578 : {List I64, I64} = CallByName List.64 List.113 List.114 List.115;
let List.577 : List I64 = StructAtIndex 0 List.578;
ret List.577;
procedure List.3 (List.114, List.115, List.116):
let List.580 : {List I64, I64} = CallByName List.64 List.114 List.115 List.116;
let List.579 : List I64 = StructAtIndex 0 List.580;
ret List.579;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.64 (List.110, List.111, List.112):
let List.575 : U64 = CallByName List.6 List.110;
let List.572 : Int1 = CallByName Num.22 List.111 List.575;
if List.572 then
let List.573 : {List I64, I64} = CallByName List.67 List.110 List.111 List.112;
ret List.573;
procedure List.64 (List.111, List.112, List.113):
let List.577 : U64 = CallByName List.6 List.111;
let List.574 : Int1 = CallByName Num.22 List.112 List.577;
if List.574 then
let List.575 : {List I64, I64} = CallByName List.67 List.111 List.112 List.113;
ret List.575;
else
let List.571 : {List I64, I64} = Struct {List.110, List.112};
ret List.571;
let List.573 : {List I64, I64} = Struct {List.111, List.113};
ret List.573;
procedure List.66 (#Attr.2, #Attr.3):
let List.584 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
let List.586 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.586;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.574 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.574;
let List.576 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.293 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.113, List.114, List.115):
let List.578 : {List U64, U64} = CallByName List.64 List.113 List.114 List.115;
let List.577 : List U64 = StructAtIndex 0 List.578;
ret List.577;
procedure List.3 (List.114, List.115, List.116):
let List.580 : {List U64, U64} = CallByName List.64 List.114 List.115 List.116;
let List.579 : List U64 = StructAtIndex 0 List.580;
ret List.579;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.64 (List.110, List.111, List.112):
let List.575 : U64 = CallByName List.6 List.110;
let List.572 : Int1 = CallByName Num.22 List.111 List.575;
if List.572 then
let List.573 : {List U64, U64} = CallByName List.67 List.110 List.111 List.112;
ret List.573;
procedure List.64 (List.111, List.112, List.113):
let List.577 : U64 = CallByName List.6 List.111;
let List.574 : Int1 = CallByName Num.22 List.112 List.577;
if List.574 then
let List.575 : {List U64, U64} = CallByName List.67 List.111 List.112 List.113;
ret List.575;
else
let List.571 : {List U64, U64} = Struct {List.110, List.112};
ret List.571;
let List.573 : {List U64, U64} = Struct {List.111, List.113};
ret List.573;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.574 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.574;
let List.576 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.291 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,7 +1,7 @@
procedure List.5 (#Attr.2, #Attr.3):
let List.569 : List [<rnnu>C List *self] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
let List.571 : List [<rnnu>C List *self] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
decref #Attr.2;
ret List.569;
ret List.571;
procedure Test.2 (Test.5):
let Test.6 : List [<rnnu>C List *self] = UnionAtIndex (Id 0) (Index 0) Test.5;

View file

@ -1,43 +1,43 @@
procedure List.2 (List.105, List.106):
let List.591 : U64 = CallByName List.6 List.105;
let List.588 : Int1 = CallByName Num.22 List.106 List.591;
if List.588 then
let List.590 : I64 = CallByName List.66 List.105 List.106;
dec List.105;
let List.589 : [C {}, C I64] = TagId(1) List.590;
ret List.589;
procedure List.2 (List.106, List.107):
let List.593 : U64 = CallByName List.6 List.106;
let List.590 : Int1 = CallByName Num.22 List.107 List.593;
if List.590 then
let List.592 : I64 = CallByName List.66 List.106 List.107;
dec List.106;
let List.591 : [C {}, C I64] = TagId(1) List.592;
ret List.591;
else
dec List.105;
let List.587 : {} = Struct {};
let List.586 : [C {}, C I64] = TagId(0) List.587;
ret List.586;
dec List.106;
let List.589 : {} = Struct {};
let List.588 : [C {}, C I64] = TagId(0) List.589;
ret List.588;
procedure List.3 (List.113, List.114, List.115):
let List.578 : {List I64, I64} = CallByName List.64 List.113 List.114 List.115;
let List.577 : List I64 = StructAtIndex 0 List.578;
ret List.577;
procedure List.3 (List.114, List.115, List.116):
let List.580 : {List I64, I64} = CallByName List.64 List.114 List.115 List.116;
let List.579 : List I64 = StructAtIndex 0 List.580;
ret List.579;
procedure List.6 (#Attr.2):
let List.576 : U64 = lowlevel ListLen #Attr.2;
ret List.576;
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
procedure List.64 (List.110, List.111, List.112):
let List.575 : U64 = CallByName List.6 List.110;
let List.572 : Int1 = CallByName Num.22 List.111 List.575;
if List.572 then
let List.573 : {List I64, I64} = CallByName List.67 List.110 List.111 List.112;
ret List.573;
procedure List.64 (List.111, List.112, List.113):
let List.577 : U64 = CallByName List.6 List.111;
let List.574 : Int1 = CallByName Num.22 List.112 List.577;
if List.574 then
let List.575 : {List I64, I64} = CallByName List.67 List.111 List.112 List.113;
ret List.575;
else
let List.571 : {List I64, I64} = Struct {List.110, List.112};
ret List.571;
let List.573 : {List I64, I64} = Struct {List.111, List.113};
ret List.573;
procedure List.66 (#Attr.2, #Attr.3):
let List.584 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.584;
let List.586 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.586;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.574 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.574;
let List.576 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.576;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.293 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -29,159 +29,159 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.101 (List.484, List.485, List.486):
let List.652 : U64 = 0i64;
let List.653 : U64 = CallByName List.6 List.484;
let List.651 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.484 List.485 List.486 List.652 List.653;
ret List.651;
procedure List.102 (List.486, List.487, List.488):
let List.654 : U64 = 0i64;
let List.655 : U64 = CallByName List.6 List.486;
let List.653 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.80 List.486 List.487 List.488 List.654 List.655;
ret List.653;
procedure List.18 (List.156, List.157, List.158):
let List.596 : U64 = 0i64;
let List.597 : U64 = CallByName List.6 List.156;
let List.595 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.596 List.597;
ret List.595;
procedure List.18 (List.158, List.159, List.160):
let List.598 : U64 = 0i64;
let List.599 : U64 = CallByName List.6 List.158;
let List.597 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.598 List.599;
ret List.597;
procedure List.18 (List.156, List.157, List.158):
let List.608 : U64 = 0i64;
let List.609 : U64 = CallByName List.6 List.156;
let List.607 : List U8 = CallByName List.89 List.156 List.157 List.158 List.608 List.609;
ret List.607;
procedure List.18 (List.158, List.159, List.160):
let List.610 : U64 = 0i64;
let List.611 : U64 = CallByName List.6 List.158;
let List.609 : List U8 = CallByName List.90 List.158 List.159 List.160 List.610 List.611;
ret List.609;
procedure List.26 (List.197, List.198, List.199):
let List.645 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.101 List.197 List.198 List.199;
let List.648 : U8 = 1i64;
let List.649 : U8 = GetTagId List.645;
let List.650 : Int1 = lowlevel Eq List.648 List.649;
if List.650 then
let List.200 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.645;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.647 : [C {U64, Int1}, C {U64, Int1}] = CallByName List.102 List.199 List.200 List.201;
let List.650 : U8 = 1i64;
let List.651 : U8 = GetTagId List.647;
let List.652 : Int1 = lowlevel Eq List.650 List.651;
if List.652 then
let List.202 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.647;
ret List.202;
else
let List.201 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.645;
ret List.201;
let List.203 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.647;
ret List.203;
procedure List.4 (List.121, List.122):
let List.594 : U64 = 1i64;
let List.593 : List U8 = CallByName List.70 List.121 List.594;
let List.592 : List U8 = CallByName List.71 List.593 List.122;
ret List.592;
procedure List.4 (List.122, List.123):
let List.596 : U64 = 1i64;
let List.595 : List U8 = CallByName List.70 List.122 List.596;
let List.594 : List U8 = CallByName List.71 List.595 List.123;
ret List.594;
procedure List.49 (List.416, List.417):
let List.636 : U64 = StructAtIndex 1 List.417;
let List.637 : U64 = StructAtIndex 0 List.417;
let List.635 : List U8 = CallByName List.72 List.416 List.636 List.637;
procedure List.49 (List.418, List.419):
let List.638 : U64 = StructAtIndex 1 List.419;
let List.639 : U64 = StructAtIndex 0 List.419;
let List.637 : List U8 = CallByName List.72 List.418 List.638 List.639;
ret List.637;
procedure List.52 (List.433, List.434):
let List.435 : U64 = CallByName List.6 List.433;
joinpoint List.645 List.436:
let List.643 : U64 = 0i64;
let List.642 : {U64, U64} = Struct {List.436, List.643};
inc List.433;
let List.437 : List U8 = CallByName List.49 List.433 List.642;
let List.641 : U64 = CallByName Num.75 List.435 List.436;
let List.636 : {U64, U64} = Struct {List.641, List.436};
let List.438 : List U8 = CallByName List.49 List.433 List.636;
let List.635 : {List U8, List U8} = Struct {List.437, List.438};
ret List.635;
procedure List.52 (List.431, List.432):
let List.433 : U64 = CallByName List.6 List.431;
joinpoint List.643 List.434:
let List.641 : U64 = 0i64;
let List.640 : {U64, U64} = Struct {List.434, List.641};
inc List.431;
let List.435 : List U8 = CallByName List.49 List.431 List.640;
let List.639 : U64 = CallByName Num.75 List.433 List.434;
let List.634 : {U64, U64} = Struct {List.639, List.434};
let List.436 : List U8 = CallByName List.49 List.431 List.634;
let List.633 : {List U8, List U8} = Struct {List.435, List.436};
ret List.633;
in
let List.644 : Int1 = CallByName Num.24 List.433 List.432;
if List.644 then
jump List.643 List.432;
let List.646 : Int1 = CallByName Num.24 List.435 List.434;
if List.646 then
jump List.645 List.434;
else
jump List.643 List.433;
procedure List.6 (#Attr.2):
let List.619 : U64 = lowlevel ListLen #Attr.2;
ret List.619;
jump List.645 List.435;
procedure List.6 (#Attr.2):
let List.621 : U64 = lowlevel ListLen #Attr.2;
ret List.621;
procedure List.66 (#Attr.2, #Attr.3):
let List.605 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.605;
procedure List.6 (#Attr.2):
let List.623 : U64 = lowlevel ListLen #Attr.2;
ret List.623;
procedure List.66 (#Attr.2, #Attr.3):
let List.617 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.617;
let List.607 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.607;
procedure List.66 (#Attr.2, #Attr.3):
let List.619 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.619;
procedure List.68 (#Attr.2):
let List.632 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.632;
let List.634 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.634;
procedure List.70 (#Attr.2, #Attr.3):
let List.573 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.573;
let List.575 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.575;
procedure List.71 (#Attr.2, #Attr.3):
let List.571 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.571;
let List.573 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.573;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.638 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.638;
let List.640 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.640;
procedure List.8 (#Attr.2, #Attr.3):
let List.630 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.630;
let List.632 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.632;
procedure List.80 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.654 List.487 List.488 List.489 List.490 List.491:
let List.656 : Int1 = CallByName Num.22 List.490 List.491;
if List.656 then
let List.665 : U8 = CallByName List.66 List.487 List.490;
let List.657 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.488 List.665;
let List.662 : U8 = 1i64;
let List.663 : U8 = GetTagId List.657;
let List.664 : Int1 = lowlevel Eq List.662 List.663;
if List.664 then
let List.492 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.657;
let List.660 : U64 = 1i64;
let List.659 : U64 = CallByName Num.51 List.490 List.660;
jump List.654 List.487 List.492 List.489 List.659 List.491;
procedure List.80 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10):
joinpoint List.656 List.489 List.490 List.491 List.492 List.493:
let List.658 : Int1 = CallByName Num.22 List.492 List.493;
if List.658 then
let List.667 : U8 = CallByName List.66 List.489 List.492;
let List.659 : [C {U64, Int1}, C {U64, Int1}] = CallByName TotallyNotJson.157 List.490 List.667;
let List.664 : U8 = 1i64;
let List.665 : U8 = GetTagId List.659;
let List.666 : Int1 = lowlevel Eq List.664 List.665;
if List.666 then
let List.494 : {U64, Int1} = UnionAtIndex (Id 1) (Index 0) List.659;
let List.662 : U64 = 1i64;
let List.661 : U64 = CallByName Num.51 List.492 List.662;
jump List.656 List.489 List.494 List.491 List.661 List.493;
else
dec List.487;
let List.493 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.657;
let List.661 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.493;
ret List.661;
dec List.489;
let List.495 : {U64, Int1} = UnionAtIndex (Id 0) (Index 0) List.659;
let List.663 : [C {U64, Int1}, C {U64, Int1}] = TagId(0) List.495;
ret List.663;
else
dec List.487;
let List.655 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.488;
ret List.655;
dec List.489;
let List.657 : [C {U64, Int1}, C {U64, Int1}] = TagId(1) List.490;
ret List.657;
in
jump List.654 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
jump List.656 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10;
procedure List.89 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.598 List.159 List.160 List.161 List.162 List.163:
let List.600 : Int1 = CallByName Num.22 List.162 List.163;
if List.600 then
let List.604 : Str = CallByName List.66 List.159 List.162;
inc List.604;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.230 List.160 List.604;
let List.603 : U64 = 1i64;
let List.602 : U64 = CallByName Num.51 List.162 List.603;
jump List.598 List.159 List.164 List.161 List.602 List.163;
procedure List.90 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.600 List.161 List.162 List.163 List.164 List.165:
let List.602 : Int1 = CallByName Num.22 List.164 List.165;
if List.602 then
let List.606 : Str = CallByName List.66 List.161 List.164;
inc List.606;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.230 List.162 List.606;
let List.605 : U64 = 1i64;
let List.604 : U64 = CallByName Num.51 List.164 List.605;
jump List.600 List.161 List.166 List.163 List.604 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.598 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
jump List.600 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
procedure List.89 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10):
joinpoint List.610 List.159 List.160 List.161 List.162 List.163:
let List.612 : Int1 = CallByName Num.22 List.162 List.163;
if List.612 then
let List.616 : U8 = CallByName List.66 List.159 List.162;
let List.164 : List U8 = CallByName TotallyNotJson.183 List.160 List.616;
let List.615 : U64 = 1i64;
let List.614 : U64 = CallByName Num.51 List.162 List.615;
jump List.610 List.159 List.164 List.161 List.614 List.163;
procedure List.90 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint List.612 List.161 List.162 List.163 List.164 List.165:
let List.614 : Int1 = CallByName Num.22 List.164 List.165;
if List.614 then
let List.618 : U8 = CallByName List.66 List.161 List.164;
let List.166 : List U8 = CallByName TotallyNotJson.183 List.162 List.618;
let List.617 : U64 = 1i64;
let List.616 : U64 = CallByName Num.51 List.164 List.617;
jump List.612 List.161 List.166 List.163 List.616 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.610 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10;
jump List.612 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
procedure Num.127 (#Attr.2):
let Num.298 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -81,81 +81,81 @@ procedure Encode.26 (Encode.105, Encode.106):
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure List.18 (List.156, List.157, List.158):
let List.596 : U64 = 0i64;
let List.597 : U64 = CallByName List.6 List.156;
let List.595 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.596 List.597;
ret List.595;
procedure List.18 (List.158, List.159, List.160):
let List.598 : U64 = 0i64;
let List.599 : U64 = CallByName List.6 List.158;
let List.597 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.598 List.599;
ret List.597;
procedure List.18 (List.156, List.157, List.158):
let List.636 : U64 = 0i64;
let List.637 : U64 = CallByName List.6 List.156;
let List.635 : {List U8, U64} = CallByName List.89 List.156 List.157 List.158 List.636 List.637;
ret List.635;
procedure List.18 (List.158, List.159, List.160):
let List.638 : U64 = 0i64;
let List.639 : U64 = CallByName List.6 List.158;
let List.637 : {List U8, U64} = CallByName List.90 List.158 List.159 List.160 List.638 List.639;
ret List.637;
procedure List.4 (List.121, List.122):
let List.634 : U64 = 1i64;
let List.633 : List U8 = CallByName List.70 List.121 List.634;
let List.632 : List U8 = CallByName List.71 List.633 List.122;
ret List.632;
procedure List.4 (List.122, List.123):
let List.636 : U64 = 1i64;
let List.635 : List U8 = CallByName List.70 List.122 List.636;
let List.634 : List U8 = CallByName List.71 List.635 List.123;
ret List.634;
procedure List.6 (#Attr.2):
let List.607 : U64 = lowlevel ListLen #Attr.2;
let List.609 : U64 = lowlevel ListLen #Attr.2;
ret List.609;
procedure List.6 (#Attr.2):
let List.649 : U64 = lowlevel ListLen #Attr.2;
ret List.649;
procedure List.66 (#Attr.2, #Attr.3):
let List.607 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.607;
procedure List.6 (#Attr.2):
let List.647 : U64 = lowlevel ListLen #Attr.2;
procedure List.66 (#Attr.2, #Attr.3):
let List.647 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.647;
procedure List.66 (#Attr.2, #Attr.3):
let List.605 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.605;
procedure List.66 (#Attr.2, #Attr.3):
let List.645 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.645;
procedure List.70 (#Attr.2, #Attr.3):
let List.613 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.613;
let List.615 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.615;
procedure List.71 (#Attr.2, #Attr.3):
let List.611 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.611;
let List.613 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.613;
procedure List.8 (#Attr.2, #Attr.3):
let List.648 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.648;
let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.650;
procedure List.89 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.598 List.159 List.160 List.161 List.162 List.163:
let List.600 : Int1 = CallByName Num.22 List.162 List.163;
if List.600 then
let List.604 : [C {}, C {}] = CallByName List.66 List.159 List.162;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.230 List.160 List.604;
let List.603 : U64 = 1i64;
let List.602 : U64 = CallByName Num.51 List.162 List.603;
jump List.598 List.159 List.164 List.161 List.602 List.163;
procedure List.90 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.640 List.161 List.162 List.163 List.164 List.165:
let List.642 : Int1 = CallByName Num.22 List.164 List.165;
if List.642 then
let List.646 : [] = CallByName List.66 List.161 List.164;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.230 List.162 List.646;
let List.645 : U64 = 1i64;
let List.644 : U64 = CallByName Num.51 List.164 List.645;
jump List.640 List.161 List.166 List.163 List.644 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.598 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
jump List.640 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.89 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
joinpoint List.638 List.159 List.160 List.161 List.162 List.163:
let List.640 : Int1 = CallByName Num.22 List.162 List.163;
if List.640 then
let List.644 : [] = CallByName List.66 List.159 List.162;
let List.164 : {List U8, U64} = CallByName TotallyNotJson.230 List.160 List.644;
let List.643 : U64 = 1i64;
let List.642 : U64 = CallByName Num.51 List.162 List.643;
jump List.638 List.159 List.164 List.161 List.642 List.163;
procedure List.90 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
joinpoint List.600 List.161 List.162 List.163 List.164 List.165:
let List.602 : Int1 = CallByName Num.22 List.164 List.165;
if List.602 then
let List.606 : [C {}, C {}] = CallByName List.66 List.161 List.164;
let List.166 : {List U8, U64} = CallByName TotallyNotJson.230 List.162 List.606;
let List.605 : U64 = 1i64;
let List.604 : U64 = CallByName Num.51 List.164 List.605;
jump List.600 List.161 List.166 List.163 List.604 List.165;
else
dec List.159;
ret List.160;
dec List.161;
ret List.162;
in
jump List.638 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
jump List.600 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
procedure Num.127 (#Attr.2):
let Num.310 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -2,80 +2,80 @@ procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure List.101 (List.484, List.485, List.486):
let List.587 : U64 = 0i64;
let List.588 : U64 = CallByName List.6 List.484;
let List.586 : [C U64, C U64] = CallByName List.80 List.484 List.485 List.486 List.587 List.588;
ret List.586;
procedure List.102 (List.486, List.487, List.488):
let List.589 : U64 = 0i64;
let List.590 : U64 = CallByName List.6 List.486;
let List.588 : [C U64, C U64] = CallByName List.80 List.486 List.487 List.488 List.589 List.590;
ret List.588;
procedure List.26 (List.197, List.198, List.199):
let List.580 : [C U64, C U64] = CallByName List.101 List.197 List.198 List.199;
let List.583 : U8 = 1i64;
let List.584 : U8 = GetTagId List.580;
let List.585 : Int1 = lowlevel Eq List.583 List.584;
if List.585 then
let List.200 : U64 = UnionAtIndex (Id 1) (Index 0) List.580;
ret List.200;
procedure List.26 (List.199, List.200, List.201):
let List.582 : [C U64, C U64] = CallByName List.102 List.199 List.200 List.201;
let List.585 : U8 = 1i64;
let List.586 : U8 = GetTagId List.582;
let List.587 : Int1 = lowlevel Eq List.585 List.586;
if List.587 then
let List.202 : U64 = UnionAtIndex (Id 1) (Index 0) List.582;
ret List.202;
else
let List.201 : U64 = UnionAtIndex (Id 0) (Index 0) List.580;
ret List.201;
let List.203 : U64 = UnionAtIndex (Id 0) (Index 0) List.582;
ret List.203;
procedure List.38 (List.340, List.341):
procedure List.38 (List.342, List.343):
let List.581 : U64 = CallByName List.6 List.342;
let List.344 : U64 = CallByName Num.77 List.581 List.343;
let List.571 : List U8 = CallByName List.43 List.342 List.344;
ret List.571;
procedure List.43 (List.340, List.341):
let List.579 : U64 = CallByName List.6 List.340;
let List.342 : U64 = CallByName Num.77 List.579 List.341;
let List.569 : List U8 = CallByName List.43 List.340 List.342;
ret List.569;
procedure List.43 (List.338, List.339):
let List.577 : U64 = CallByName List.6 List.338;
let List.576 : U64 = CallByName Num.77 List.577 List.339;
let List.571 : {U64, U64} = Struct {List.339, List.576};
let List.570 : List U8 = CallByName List.49 List.338 List.571;
ret List.570;
procedure List.49 (List.416, List.417):
let List.573 : U64 = StructAtIndex 1 List.417;
let List.574 : U64 = StructAtIndex 0 List.417;
let List.572 : List U8 = CallByName List.72 List.416 List.573 List.574;
let List.578 : U64 = CallByName Num.77 List.579 List.341;
let List.573 : {U64, U64} = Struct {List.341, List.578};
let List.572 : List U8 = CallByName List.49 List.340 List.573;
ret List.572;
procedure List.49 (List.418, List.419):
let List.575 : U64 = StructAtIndex 1 List.419;
let List.576 : U64 = StructAtIndex 0 List.419;
let List.574 : List U8 = CallByName List.72 List.418 List.575 List.576;
ret List.574;
procedure List.6 (#Attr.2):
let List.578 : U64 = lowlevel ListLen #Attr.2;
ret List.578;
let List.580 : U64 = lowlevel ListLen #Attr.2;
ret List.580;
procedure List.66 (#Attr.2, #Attr.3):
let List.601 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.601;
let List.603 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.603;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.575 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.575;
let List.577 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.577;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.589 List.487 List.488 List.489 List.490 List.491:
let List.591 : Int1 = CallByName Num.22 List.490 List.491;
if List.591 then
let List.600 : U8 = CallByName List.66 List.487 List.490;
let List.592 : [C U64, C U64] = CallByName Test.3 List.488 List.600;
let List.597 : U8 = 1i64;
let List.598 : U8 = GetTagId List.592;
let List.599 : Int1 = lowlevel Eq List.597 List.598;
if List.599 then
let List.492 : U64 = UnionAtIndex (Id 1) (Index 0) List.592;
let List.595 : U64 = 1i64;
let List.594 : U64 = CallByName Num.51 List.490 List.595;
jump List.589 List.487 List.492 List.489 List.594 List.491;
joinpoint List.591 List.489 List.490 List.491 List.492 List.493:
let List.593 : Int1 = CallByName Num.22 List.492 List.493;
if List.593 then
let List.602 : U8 = CallByName List.66 List.489 List.492;
let List.594 : [C U64, C U64] = CallByName Test.3 List.490 List.602;
let List.599 : U8 = 1i64;
let List.600 : U8 = GetTagId List.594;
let List.601 : Int1 = lowlevel Eq List.599 List.600;
if List.601 then
let List.494 : U64 = UnionAtIndex (Id 1) (Index 0) List.594;
let List.597 : U64 = 1i64;
let List.596 : U64 = CallByName Num.51 List.492 List.597;
jump List.591 List.489 List.494 List.491 List.596 List.493;
else
dec List.487;
let List.493 : U64 = UnionAtIndex (Id 0) (Index 0) List.592;
let List.596 : [C U64, C U64] = TagId(0) List.493;
ret List.596;
dec List.489;
let List.495 : U64 = UnionAtIndex (Id 0) (Index 0) List.594;
let List.598 : [C U64, C U64] = TagId(0) List.495;
ret List.598;
else
dec List.487;
let List.590 : [C U64, C U64] = TagId(1) List.488;
ret List.590;
dec List.489;
let List.592 : [C U64, C U64] = TagId(1) List.490;
ret List.592;
in
jump List.589 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.591 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.294 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -20,7 +20,7 @@ links = "app"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -82,9 +82,11 @@ pub fn pretty_header_with_path(title: &str, path: &Path) -> String {
.to_str()
.unwrap();
let additional_path_display = "in";
let additional_path_display_width = additional_path_display.len() + 1;
let title_width = title.len() + 4;
let relative_path_width = relative_path.len() + 3;
let available_path_width = HEADER_WIDTH - title_width - 1;
let relative_path_width = relative_path.len() + 1;
let available_path_width = HEADER_WIDTH - title_width - additional_path_display_width - 1;
// If path is too long to fit in 80 characters with everything else then truncate it
let path_width = relative_path_width.min(available_path_width);
@ -96,10 +98,11 @@ pub fn pretty_header_with_path(title: &str, path: &Path) -> String {
};
let header = format!(
"── {} {} {} ",
"── {} {} {} {}",
title,
"".repeat(HEADER_WIDTH - (title_width + path_width)),
path
additional_path_display,
path,
"".repeat(HEADER_WIDTH - (title_width + path_width + additional_path_display_width))
);
header

View file

@ -10,7 +10,7 @@ links = "app"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -9,7 +9,7 @@ links = "app"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -8,7 +8,7 @@ version = "0.0.1"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -9,7 +9,7 @@ version = "0.0.1"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -9,7 +9,7 @@ version = "0.0.1"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -10,7 +10,7 @@ links = "app"
[lib]
name = "host"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
crate-type = ["staticlib", "lib"]
[[bin]]
name = "host"

View file

@ -29,7 +29,7 @@ Roc strings work like Elm strings except that they support string interpolation.
Here's a Roc string which uses interpolation:
```elm
"Hi, my name is \(name)!"
"Hi, my name is $(name)!"
```
The Elm equivalent would be: