diff --git a/library/init/data/list/basic.lean b/library/init/data/list/basic.lean index 6c58e3799a..7a4278fbc0 100644 --- a/library/init/data/list/basic.lean +++ b/library/init/data/list/basic.lean @@ -112,9 +112,12 @@ protected def diff {α} [decidable_eq α] : list α → list α → list α | l [] := l | l₁ (a::l₂) := if a ∈ l₁ then diff (l₁.erase a) l₂ else diff l₁ l₂ -def length : list α → nat -| [] := 0 -| (a :: l) := length l + 1 +def length_aux : list α → nat → nat +| [] n := n +| (a::as) n := length_aux as (n+1) + +def length (as : list α) : nat := +length_aux as 0 def empty : list α → bool | [] := tt @@ -127,11 +130,6 @@ def nth : list α → nat → option α | (a :: l) 0 := some a | (a :: l) (n+1) := nth l n -def nth_le : Π (l : list α) (n), n < l.length → α -| [] n h := absurd h (not_lt_zero n) -| (a :: l) 0 h := a -| (a :: l) (n+1) h := nth_le l n (le_of_succ_le_succ h) - def head [inhabited α] : list α → α | [] := default α | (a :: l) := a diff --git a/src/boot/init/data/list/basic.cpp b/src/boot/init/data/list/basic.cpp index 7d203d8426..5c81f5c127 100644 --- a/src/boot/init/data/list/basic.cpp +++ b/src/boot/init/data/list/basic.cpp @@ -27,6 +27,7 @@ obj* l_list_empty(obj*); obj* l_list_foldr___main___at_list_any___spec__1___rarg(obj*, obj*); obj* l_list_remove__all___rarg(obj*, obj*, obj*); obj* l_list_repeat___rarg(obj*, obj*); +obj* l_list_length__aux(obj*); obj* l_list_inter___rarg(obj*, obj*, obj*); obj* l_list_diff___main___rarg(obj*, obj*, obj*); obj* l_list_assoc(obj*, obj*); @@ -43,8 +44,10 @@ obj* l_list_drop__while___main___rarg(obj*, obj*); obj* l_list_intercalate(obj*); obj* l_list_reverse__core(obj*); obj* l_list_has__dec__eq(obj*); +obj* l_list_length__aux___rarg(obj*, obj*); obj* l_list_union(obj*); obj* l_list_bag__inter___rarg(obj*, obj*, obj*); +obj* l___private_3066977613__to__list__aux___main(obj*); obj* l_list_bor(obj*); obj* l_list_has__dec__eq___main___rarg___boxed(obj*, obj*, obj*); obj* l_list_assoc___main(obj*, obj*); @@ -52,8 +55,6 @@ obj* l_nat_repeat__core___main___at_list_repeat___spec__1(obj*); obj* l_list_take___main___rarg(obj*, obj*); obj* l_list_init___rarg(obj*); obj* l_list_filter__map___main___rarg(obj*, obj*); -obj* l_list_length___main___rarg(obj*); -obj* l___private_3578956461__to__list__aux___main(obj*); uint8 l_list_empty___main___rarg(obj*); obj* l_list_filter___main___at_list_inter___spec__1___rarg(obj*, obj*, obj*); obj* l_list_filter___rarg(obj*, obj*); @@ -75,6 +76,7 @@ obj* l_list_enum__from___main___rarg(obj*, obj*); obj* l_list_remove__nth___rarg(obj*, obj*); obj* l_list_foldr1__opt___main(obj*); obj* l_list_unzip___main___rarg___closed__1; +obj* l___private_3066977613__to__list__aux___rarg(obj*, obj*); obj* l_list_range__core(obj*, obj*); obj* l_list_tail___rarg(obj*); obj* l_list_has__inter___rarg(obj*); @@ -112,7 +114,6 @@ obj* l_list_range(obj*); obj* l_list_init(obj*); obj* l_list_inhabited(obj*); obj* l_list_last___rarg(obj*, obj*); -obj* l___private_3578956461__to__list__aux___main___rarg(obj*, obj*); obj* l_list_has__decidable__lt___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main(obj*, obj*); obj* l_list_erase(obj*); @@ -140,7 +141,6 @@ obj* l_list_enum__from___main(obj*); obj* l_list_decidable__mem___main___rarg___boxed(obj*, obj*, obj*); obj* l_list_drop___main___rarg(obj*, obj*); obj* l_list_foldr___main___at_list_bor___spec__1(obj*); -obj* l___private_3578956461__to__list__aux(obj*); obj* l_list_intersperse___main(obj*); obj* l_list_has__insert(obj*); uint8 l_list_has__dec__eq___rarg(obj*, obj*, obj*); @@ -151,14 +151,12 @@ obj* l_list_filter(obj*, obj*); obj* l_list_ilast___main___rarg(obj*, obj*); obj* l_list_head___main___rarg(obj*, obj*); obj* l_list_foldr___main___at_list_band___spec__1(obj*); -obj* l___private_3578956461__to__list__aux___rarg(obj*, obj*); obj* l_list_update__nth___main___rarg(obj*, obj*, obj*); obj* l_list_zip__with___rarg(obj*, obj*, obj*); obj* l_list_iota(obj*); obj* l_list_tail(obj*); obj* l_list_is__prefix__of___main(obj*); obj* l_list_has__mem(obj*); -obj* l_list_length___main(obj*); obj* l_list_map_u_2082___main___rarg(obj*, obj*, obj*); obj* l_list_foldl(obj*, obj*); obj* l_list_is__prefix__of___main___rarg(obj*, obj*, obj*); @@ -186,7 +184,6 @@ obj* l_list_intercalate___rarg(obj*, obj*); obj* l_list_all___rarg(obj*, obj*); obj* l_list_foldr___rarg(obj*, obj*, obj*); obj* l_list_intersperse___main___rarg(obj*, obj*); -obj* l_list_nth__le(obj*); obj* l_list_zip(obj*, obj*); obj* l_list_foldr1(obj*); obj* l_list_decidable__mem___main(obj*); @@ -198,6 +195,7 @@ obj* l_list_append(obj*); obj* l_list_diff___main(obj*); obj* l_list_update__nth___rarg(obj*, obj*, obj*); obj* l_list_index__of___rarg(obj*, obj*, obj*); +obj* l___private_3066977613__to__list__aux___main___rarg(obj*, obj*); obj* l_list_has__decidable__le(obj*); obj* l_list_drop__while(obj*, obj*); obj* l_list_has__le(obj*, obj*); @@ -211,6 +209,7 @@ uint8 l_list_decidable__mem___main___rarg(obj*, obj*, obj*); obj* l_list_has__dec__eq___main(obj*); obj* l_list_empty___main___rarg___boxed(obj*); obj* l_list_take(obj*); +obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_list_find__index___main___rarg(obj*, obj*); obj* l_list_ilast(obj*); obj* l_list_erase___rarg(obj*, obj*, obj*); @@ -225,7 +224,6 @@ obj* l_list_band(obj*); obj* l_list_empty___main(obj*); obj* l_list_join(obj*); obj* l_list_reverse__core___main(obj*); -obj* l_list_nth__le___main(obj*); obj* l_list_inter(obj*); obj* l_list_remove__nth___main(obj*); obj* l_list_map(obj*, obj*); @@ -242,8 +240,10 @@ obj* l_list_mem___main; obj* l_list_foldr___main(obj*, obj*); obj* l_list_zip__with(obj*, obj*, obj*); obj* l_list_foldl___rarg(obj*, obj*, obj*); +obj* l___private_3066977613__to__list__aux(obj*); obj* l_list_foldr1___main(obj*); obj* l_list_foldr___main___at_list_union___spec__1___rarg(obj*, obj*, obj*); +obj* l_list_length__aux___main(obj*); obj* l_list_reverse__core___main___rarg(obj*, obj*); obj* l_list_is__prefix__of___rarg(obj*, obj*, obj*); obj* l_list_take___rarg(obj*, obj*); @@ -252,12 +252,10 @@ obj* l_list_has__decidable__lt___main(obj*); obj* l_list_bind(obj*, obj*); obj* l_list_append___rarg(obj*, obj*); obj* l_list_bag__inter___main___rarg(obj*, obj*, obj*); -obj* l_list_nth__le___rarg(obj*, obj*, obj*); obj* l_list_update__nth(obj*); obj* l_list_has__lt(obj*, obj*); obj* l_list_join___main(obj*); obj* l_list_find__index___main___at_list_index__of___spec__1___rarg(obj*, obj*, obj*); -obj* l_list_nth__le___main___rarg(obj*, obj*, obj*); obj* l_list_tail___main(obj*); obj* l_list_has__decidable__lt___main___at_list_has__decidable__le___spec__1(obj*); obj* l_list_drop__while___main(obj*, obj*); @@ -908,46 +906,63 @@ x_2 = lean::alloc_closure(reinterpret_cast(l_list_diff___rarg), 3, 0); return x_2; } } -obj* l_list_length___main___rarg(obj* x_0) { +obj* l_list_length__aux___main___rarg(obj* x_0, obj* x_1) { _start: { if (lean::obj_tag(x_0) == 0) { -obj* x_2; lean::dec(x_0); -x_2 = lean::mk_nat_obj(0u); -return x_2; +return x_1; } else { -obj* x_3; obj* x_6; obj* x_7; obj* x_8; +obj* x_3; obj* x_6; obj* x_7; x_3 = lean::cnstr_get(x_0, 1); lean::inc(x_3); lean::dec(x_0); -x_6 = l_list_length___main___rarg(x_3); -x_7 = lean::mk_nat_obj(1u); -x_8 = lean::nat_add(x_6, x_7); -lean::dec(x_7); +x_6 = lean::mk_nat_obj(1u); +x_7 = lean::nat_add(x_1, x_6); lean::dec(x_6); -return x_8; +lean::dec(x_1); +x_0 = x_3; +x_1 = x_7; +goto _start; } } } -obj* l_list_length___main(obj* x_0) { +obj* l_list_length__aux___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); -x_2 = lean::alloc_closure(reinterpret_cast(l_list_length___main___rarg), 1, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_list_length__aux___main___rarg), 2, 0); +return x_2; +} +} +obj* l_list_length__aux___rarg(obj* x_0, obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_list_length__aux___main___rarg(x_0, x_1); +return x_2; +} +} +obj* l_list_length__aux(obj* x_0) { +_start: +{ +obj* x_2; +lean::dec(x_0); +x_2 = lean::alloc_closure(reinterpret_cast(l_list_length__aux___rarg), 2, 0); return x_2; } } obj* l_list_length___rarg(obj* x_0) { _start: { -obj* x_1; -x_1 = l_list_length___main___rarg(x_0); -return x_1; +obj* x_1; obj* x_2; +x_1 = lean::mk_nat_obj(0u); +x_2 = l_list_length__aux___main___rarg(x_0, x_1); +return x_2; } } obj* l_list_length(obj* x_0) { @@ -1094,67 +1109,6 @@ x_2 = lean::alloc_closure(reinterpret_cast(l_list_nth___rarg), 2, 0); return x_2; } } -obj* l_list_nth__le___main___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -obj* x_4; obj* x_6; obj* x_9; uint8 x_10; -lean::dec(x_2); -x_4 = lean::cnstr_get(x_0, 0); -lean::inc(x_4); -x_6 = lean::cnstr_get(x_0, 1); -lean::inc(x_6); -lean::dec(x_0); -x_9 = lean::mk_nat_obj(0u); -x_10 = lean::nat_dec_eq(x_1, x_9); -lean::dec(x_9); -if (x_10 == 0) -{ -obj* x_13; obj* x_14; -lean::dec(x_4); -x_13 = lean::mk_nat_obj(1u); -x_14 = lean::nat_sub(x_1, x_13); -lean::dec(x_13); -lean::dec(x_1); -x_0 = x_6; -x_1 = x_14; -x_2 = x_0; -goto _start; -} -else -{ -lean::dec(x_6); -lean::dec(x_1); -return x_4; -} -} -} -obj* l_list_nth__le___main(obj* x_0) { -_start: -{ -obj* x_2; -lean::dec(x_0); -x_2 = lean::alloc_closure(reinterpret_cast(l_list_nth__le___main___rarg), 3, 0); -return x_2; -} -} -obj* l_list_nth__le___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -obj* x_4; -lean::dec(x_2); -x_4 = l_list_nth__le___main___rarg(x_0, x_1, lean::box(0)); -return x_4; -} -} -obj* l_list_nth__le(obj* x_0) { -_start: -{ -obj* x_2; -lean::dec(x_0); -x_2 = lean::alloc_closure(reinterpret_cast(l_list_nth__le___rarg), 3, 0); -return x_2; -} -} obj* l_list_head___main___rarg(obj* x_0, obj* x_1) { _start: { @@ -4357,7 +4311,7 @@ x_2 = lean::alloc_closure(reinterpret_cast(l_list_is__suffix__of___rarg), return x_2; } } -obj* l___private_3578956461__to__list__aux___main___rarg(obj* x_0, obj* x_1) { +obj* l___private_3066977613__to__list__aux___main___rarg(obj* x_0, obj* x_1) { _start: { switch (lean::obj_tag(x_0)) { @@ -4385,7 +4339,7 @@ lean::inc(x_7); x_9 = lean::cnstr_get(x_0, 1); lean::inc(x_9); lean::dec(x_0); -x_12 = l___private_3578956461__to__list__aux___main___rarg(x_9, x_1); +x_12 = l___private_3066977613__to__list__aux___main___rarg(x_9, x_1); x_0 = x_7; x_1 = x_12; goto _start; @@ -4393,29 +4347,29 @@ goto _start; } } } -obj* l___private_3578956461__to__list__aux___main(obj* x_0) { +obj* l___private_3066977613__to__list__aux___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); -x_2 = lean::alloc_closure(reinterpret_cast(l___private_3578956461__to__list__aux___main___rarg), 2, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l___private_3066977613__to__list__aux___main___rarg), 2, 0); return x_2; } } -obj* l___private_3578956461__to__list__aux___rarg(obj* x_0, obj* x_1) { +obj* l___private_3066977613__to__list__aux___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = l___private_3578956461__to__list__aux___main___rarg(x_0, x_1); +x_2 = l___private_3066977613__to__list__aux___main___rarg(x_0, x_1); return x_2; } } -obj* l___private_3578956461__to__list__aux(obj* x_0) { +obj* l___private_3066977613__to__list__aux(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); -x_2 = lean::alloc_closure(reinterpret_cast(l___private_3578956461__to__list__aux___rarg), 2, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l___private_3066977613__to__list__aux___rarg), 2, 0); return x_2; } } @@ -4424,7 +4378,7 @@ _start: { obj* x_1; obj* x_2; x_1 = lean::box(0); -x_2 = l___private_3578956461__to__list__aux___main___rarg(x_0, x_1); +x_2 = l___private_3066977613__to__list__aux___main___rarg(x_0, x_1); return x_2; } } diff --git a/src/boot/init/data/string/basic.cpp b/src/boot/init/data/string/basic.cpp index 0ef122f963..889e0b1baa 100644 --- a/src/boot/init/data/string/basic.cpp +++ b/src/boot/init/data/string/basic.cpp @@ -28,7 +28,6 @@ obj* l___private_3344645481__to__nat__core(obj*, obj*, obj*); obj* l_string_iterator_forward(obj*, obj*); obj* l_string_iterator_extract___main___closed__1; obj* l_string_line__column___closed__1; -obj* l_list_length___main___rarg(obj*); obj* l_string_singleton(uint32); obj* l_string_pushn(obj*, uint32, obj*); obj* l_list_as__string(obj*); @@ -93,6 +92,7 @@ obj* l_string_iterator_extract__core___main(obj*, obj*); obj* l_string_push___main(obj*, uint32); obj* l_char_to__string(uint32); obj* l_list_map___main___at_string_intercalate___spec__1(obj*); +obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_string_has__sizeof; obj* l_string_to__list(obj*); obj* l_string_trim(obj*); @@ -149,10 +149,11 @@ return x_3; obj* l_string_length___main(obj* x_0) { _start: { -obj* x_1; obj* x_2; +obj* x_1; obj* x_2; obj* x_3; x_1 = lean::string_data(x_0); -x_2 = l_list_length___main___rarg(x_1); -return x_2; +x_2 = lean::mk_nat_obj(0u); +x_3 = l_list_length__aux___main___rarg(x_1, x_2); +return x_3; } } obj* l_string_push___main(obj* x_0, uint32 x_1) { @@ -222,21 +223,23 @@ return x_3; obj* l_string_iterator_remaining___main(obj* x_0) { _start: { -obj* x_1; obj* x_3; +obj* x_1; obj* x_3; obj* x_4; x_1 = lean::string_iterator_snd(x_0); lean::dec(x_0); -x_3 = l_list_length___main___rarg(x_1); -return x_3; +x_3 = lean::mk_nat_obj(0u); +x_4 = l_list_length__aux___main___rarg(x_1, x_3); +return x_4; } } obj* l_string_iterator_offset___main(obj* x_0) { _start: { -obj* x_1; obj* x_3; +obj* x_1; obj* x_3; obj* x_4; x_1 = lean::string_iterator_fst(x_0); lean::dec(x_0); -x_3 = l_list_length___main___rarg(x_1); -return x_3; +x_3 = lean::mk_nat_obj(0u); +x_4 = l_list_length__aux___main___rarg(x_1, x_3); +return x_4; } } obj* l_string_iterator_curr___main(obj* x_0) { diff --git a/src/boot/init/lean/elaborator.cpp b/src/boot/init/lean/elaborator.cpp index 6310945a25..9a2ffc0262 100644 --- a/src/boot/init/lean/elaborator.cpp +++ b/src/boot/init/lean/elaborator.cpp @@ -87,7 +87,6 @@ obj* l_lean_elaborator_include_elaborate(obj*, obj*, obj*); uint8 l_list_decidable__mem___main___at_lean_elaborator_is__open__namespace___main___spec__1(obj*, obj*); obj* l_lean_elaborator_namespace_elaborate___lambda__1___closed__1; obj* l_list_filter__map___main___rarg(obj*, obj*); -obj* l_list_length___main___rarg(obj*); extern obj* l_lean_parser_term_match_has__view; obj* l_lean_elaborator_current__command___rarg___closed__1; obj* l_lean_elaborator_level__get__app__args(obj*, obj*, obj*); @@ -495,6 +494,7 @@ obj* l_list_map___main___at_lean_elaborator_elab__def__like___spec__7(obj*); obj* l_lean_parser_term_binder__ident_parser(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_locally___at_lean_elaborator_declaration_elaborate___spec__14(obj*, obj*, obj*); obj* l_lean_elaborator_coelaborator__m_monad__coroutine; +obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__8; obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_insert___spec__1___rarg(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__43; @@ -8205,86 +8205,87 @@ goto lbl_335; } lbl_335: { -obj* x_396; obj* x_398; obj* x_401; obj* x_403; obj* x_404; obj* x_407; obj* x_408; uint8 x_409; obj* x_411; obj* x_412; obj* x_415; obj* x_417; obj* x_418; obj* x_420; obj* x_421; obj* x_422; obj* x_424; obj* x_425; obj* x_426; obj* x_427; obj* x_428; +obj* x_396; obj* x_398; obj* x_401; obj* x_402; obj* x_404; obj* x_405; obj* x_408; obj* x_409; uint8 x_410; obj* x_412; obj* x_413; obj* x_416; obj* x_418; obj* x_419; obj* x_421; obj* x_422; obj* x_423; obj* x_425; obj* x_426; obj* x_427; obj* x_428; obj* x_429; x_396 = lean::cnstr_get(x_334, 0); lean::inc(x_396); x_398 = lean::cnstr_get(x_334, 1); lean::inc(x_398); lean::dec(x_334); x_401 = lean::box(0); +x_402 = lean::mk_nat_obj(0u); lean::inc(x_329); -x_403 = l_list_length___main___rarg(x_329); -x_404 = l_lean_elaborator_to__pexpr___main___closed__24; -lean::inc(x_404); +x_404 = l_list_length__aux___main___rarg(x_329, x_402); +x_405 = l_lean_elaborator_to__pexpr___main___closed__24; +lean::inc(x_405); lean::inc(x_401); -x_407 = l_lean_kvmap_set__nat(x_401, x_404, x_403); -x_408 = l_lean_elaborator_to__pexpr___main___closed__25; -x_409 = 0; -lean::inc(x_408); -x_411 = l_lean_kvmap_set__bool(x_407, x_408, x_409); -x_412 = lean::cnstr_get(x_296, 1); -lean::inc(x_412); +x_408 = l_lean_kvmap_set__nat(x_401, x_405, x_404); +x_409 = l_lean_elaborator_to__pexpr___main___closed__25; +x_410 = 0; +lean::inc(x_409); +x_412 = l_lean_kvmap_set__bool(x_408, x_409, x_410); +x_413 = lean::cnstr_get(x_296, 1); +lean::inc(x_413); lean::dec(x_296); -x_415 = l_lean_elaborator_to__pexpr___main___closed__26; -lean::inc(x_415); -x_417 = l_option_map___rarg(x_415, x_412); -x_418 = l_lean_elaborator_to__pexpr___main___closed__27; -lean::inc(x_418); -x_420 = l_option_map___rarg(x_418, x_417); -x_421 = l_option_get__or__else___main___rarg(x_420, x_401); -x_422 = l_lean_elaborator_to__pexpr___main___closed__28; -lean::inc(x_422); -x_424 = l_lean_kvmap_set__name(x_411, x_422, x_421); -x_425 = l_list_append___rarg(x_329, x_396); -x_426 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9(x_425); -x_427 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_427, 0, x_424); -lean::cnstr_set(x_427, 1, x_426); +x_416 = l_lean_elaborator_to__pexpr___main___closed__26; +lean::inc(x_416); +x_418 = l_option_map___rarg(x_416, x_413); +x_419 = l_lean_elaborator_to__pexpr___main___closed__27; +lean::inc(x_419); +x_421 = l_option_map___rarg(x_419, x_418); +x_422 = l_option_get__or__else___main___rarg(x_421, x_401); +x_423 = l_lean_elaborator_to__pexpr___main___closed__28; +lean::inc(x_423); +x_425 = l_lean_kvmap_set__name(x_412, x_423, x_422); +x_426 = l_list_append___rarg(x_329, x_396); +x_427 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9(x_426); +x_428 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_428, 0, x_425); +lean::cnstr_set(x_428, 1, x_427); if (lean::is_scalar(x_304)) { - x_428 = lean::alloc_cnstr(0, 2, 0); + x_429 = lean::alloc_cnstr(0, 2, 0); } else { - x_428 = x_304; + x_429 = x_304; } -lean::cnstr_set(x_428, 0, x_427); -lean::cnstr_set(x_428, 1, x_398); -x_16 = x_428; +lean::cnstr_set(x_429, 0, x_428); +lean::cnstr_set(x_429, 1, x_398); +x_16 = x_429; goto lbl_17; } } } else { -obj* x_429; obj* x_431; obj* x_433; obj* x_434; -x_429 = lean::cnstr_get(x_308, 0); -lean::inc(x_429); -x_431 = lean::cnstr_get(x_308, 1); -lean::inc(x_431); +obj* x_430; obj* x_432; obj* x_434; obj* x_435; +x_430 = lean::cnstr_get(x_308, 0); +lean::inc(x_430); +x_432 = lean::cnstr_get(x_308, 1); +lean::inc(x_432); if (lean::is_shared(x_308)) { lean::dec(x_308); - x_433 = lean::box(0); + x_434 = lean::box(0); } else { lean::cnstr_release(x_308, 0); lean::cnstr_release(x_308, 1); - x_433 = x_308; + x_434 = x_308; } -x_434 = lean::cnstr_get(x_429, 0); -lean::inc(x_434); -lean::dec(x_429); -if (lean::obj_tag(x_434) == 0) +x_435 = lean::cnstr_get(x_430, 0); +lean::inc(x_435); +lean::dec(x_430); +if (lean::obj_tag(x_435) == 0) { -obj* x_438; obj* x_439; obj* x_441; obj* x_442; obj* x_445; -lean::dec(x_431); -x_438 = l_lean_parser_term_struct__inst__item_has__view; -x_439 = lean::cnstr_get(x_438, 1); -lean::inc(x_439); -x_441 = lean::apply_1(x_439, x_434); -x_442 = l_lean_elaborator_to__pexpr___main___closed__29; +obj* x_439; obj* x_440; obj* x_442; obj* x_443; obj* x_446; +lean::dec(x_432); +x_439 = l_lean_parser_term_struct__inst__item_has__view; +x_440 = lean::cnstr_get(x_439, 1); +lean::inc(x_440); +x_442 = lean::apply_1(x_440, x_435); +x_443 = l_lean_elaborator_to__pexpr___main___closed__29; lean::inc(x_1); -lean::inc(x_442); -x_445 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_441, x_442, x_1, x_2); -if (lean::obj_tag(x_445) == 0) +lean::inc(x_443); +x_446 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_442, x_443, x_1, x_2); +if (lean::obj_tag(x_446) == 0) { -obj* x_455; obj* x_457; obj* x_458; +obj* x_456; obj* x_458; obj* x_459; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); @@ -8293,268 +8294,47 @@ lean::dec(x_304); lean::dec(x_310); lean::dec(x_300); lean::dec(x_306); -lean::dec(x_433); -x_455 = lean::cnstr_get(x_445, 0); -lean::inc(x_455); -if (lean::is_shared(x_445)) { - lean::dec(x_445); - x_457 = lean::box(0); -} else { - lean::cnstr_release(x_445, 0); - x_457 = x_445; -} -if (lean::is_scalar(x_457)) { - x_458 = lean::alloc_cnstr(0, 1, 0); -} else { - x_458 = x_457; -} -lean::cnstr_set(x_458, 0, x_455); -return x_458; -} -else -{ -obj* x_459; obj* x_461; obj* x_462; obj* x_464; obj* x_469; -x_459 = lean::cnstr_get(x_445, 0); -lean::inc(x_459); -if (lean::is_shared(x_445)) { - lean::dec(x_445); - x_461 = lean::box(0); -} else { - lean::cnstr_release(x_445, 0); - x_461 = x_445; -} -x_462 = lean::cnstr_get(x_459, 0); -lean::inc(x_462); -x_464 = lean::cnstr_get(x_459, 1); -lean::inc(x_464); -lean::dec(x_459); -lean::inc(x_1); -lean::inc(x_0); -x_469 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__11(x_0, x_300, x_1, x_464); -if (lean::obj_tag(x_469) == 0) -{ -obj* x_479; obj* x_482; -lean::dec(x_296); -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_304); -lean::dec(x_310); -lean::dec(x_306); -lean::dec(x_433); -lean::dec(x_462); -x_479 = lean::cnstr_get(x_469, 0); -lean::inc(x_479); -lean::dec(x_469); -if (lean::is_scalar(x_461)) { - x_482 = lean::alloc_cnstr(0, 1, 0); -} else { - x_482 = x_461; - lean::cnstr_set_tag(x_461, 0); -} -lean::cnstr_set(x_482, 0, x_479); -return x_482; -} -else -{ -obj* x_483; obj* x_486; obj* x_488; obj* x_491; obj* x_495; -x_483 = lean::cnstr_get(x_469, 0); -lean::inc(x_483); -lean::dec(x_469); -x_486 = lean::cnstr_get(x_483, 0); -lean::inc(x_486); -x_488 = lean::cnstr_get(x_483, 1); -lean::inc(x_488); -lean::dec(x_483); -lean::inc(x_1); -lean::inc(x_0); -x_495 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__13(x_0, x_306, x_1, x_488); -if (lean::obj_tag(x_495) == 0) -{ -obj* x_505; obj* x_508; -lean::dec(x_296); -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_304); -lean::dec(x_310); -lean::dec(x_433); -lean::dec(x_486); -lean::dec(x_462); -x_505 = lean::cnstr_get(x_495, 0); -lean::inc(x_505); -lean::dec(x_495); -if (lean::is_scalar(x_461)) { - x_508 = lean::alloc_cnstr(0, 1, 0); -} else { - x_508 = x_461; - lean::cnstr_set_tag(x_461, 0); -} -lean::cnstr_set(x_508, 0, x_505); -return x_508; -} -else -{ -obj* x_509; obj* x_512; obj* x_514; obj* x_517; -x_509 = lean::cnstr_get(x_495, 0); -lean::inc(x_509); -lean::dec(x_495); -x_512 = lean::cnstr_get(x_509, 0); -lean::inc(x_512); -x_514 = lean::cnstr_get(x_509, 1); -lean::inc(x_514); -lean::dec(x_509); -x_517 = lean::cnstr_get(x_296, 2); -lean::inc(x_517); -if (lean::obj_tag(x_517) == 0) -{ -obj* x_522; -lean::dec(x_433); -lean::dec(x_461); -lean::dec(x_517); -if (lean::is_scalar(x_310)) { - x_522 = lean::alloc_cnstr(0, 2, 0); -} else { - x_522 = x_310; -} -lean::cnstr_set(x_522, 0, x_512); -lean::cnstr_set(x_522, 1, x_514); -x_491 = x_522; -goto lbl_492; -} -else -{ -obj* x_523; obj* x_526; obj* x_530; -x_523 = lean::cnstr_get(x_517, 0); -lean::inc(x_523); -lean::dec(x_517); -x_526 = lean::cnstr_get(x_523, 0); -lean::inc(x_526); -lean::dec(x_523); -lean::inc(x_1); -x_530 = l_lean_elaborator_to__pexpr___main(x_526, x_1, x_514); -if (lean::obj_tag(x_530) == 0) -{ -obj* x_541; obj* x_544; -lean::dec(x_296); -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_304); -lean::dec(x_310); -lean::dec(x_433); -lean::dec(x_486); -lean::dec(x_462); -lean::dec(x_512); -x_541 = lean::cnstr_get(x_530, 0); -lean::inc(x_541); -lean::dec(x_530); -if (lean::is_scalar(x_461)) { - x_544 = lean::alloc_cnstr(0, 1, 0); -} else { - x_544 = x_461; - lean::cnstr_set_tag(x_461, 0); -} -lean::cnstr_set(x_544, 0, x_541); -return x_544; -} -else -{ -obj* x_546; obj* x_549; obj* x_551; obj* x_554; obj* x_555; obj* x_556; obj* x_557; -lean::dec(x_461); -x_546 = lean::cnstr_get(x_530, 0); -lean::inc(x_546); -lean::dec(x_530); -x_549 = lean::cnstr_get(x_546, 0); -lean::inc(x_549); -x_551 = lean::cnstr_get(x_546, 1); -lean::inc(x_551); -lean::dec(x_546); -x_554 = lean::box(0); -if (lean::is_scalar(x_433)) { - x_555 = lean::alloc_cnstr(1, 2, 0); -} else { - x_555 = x_433; -} -lean::cnstr_set(x_555, 0, x_549); -lean::cnstr_set(x_555, 1, x_554); -x_556 = l_list_append___rarg(x_512, x_555); -if (lean::is_scalar(x_310)) { - x_557 = lean::alloc_cnstr(0, 2, 0); -} else { - x_557 = x_310; -} -lean::cnstr_set(x_557, 0, x_556); -lean::cnstr_set(x_557, 1, x_551); -x_491 = x_557; -goto lbl_492; -} -} -} -lbl_492: -{ -obj* x_558; obj* x_560; obj* x_563; obj* x_565; obj* x_566; obj* x_569; obj* x_570; uint8 x_571; obj* x_574; obj* x_575; obj* x_578; obj* x_580; obj* x_581; obj* x_583; obj* x_584; obj* x_585; obj* x_587; obj* x_588; obj* x_589; obj* x_590; obj* x_591; -x_558 = lean::cnstr_get(x_491, 0); -lean::inc(x_558); -x_560 = lean::cnstr_get(x_491, 1); -lean::inc(x_560); -lean::dec(x_491); -x_563 = lean::box(0); -lean::inc(x_486); -x_565 = l_list_length___main___rarg(x_486); -x_566 = l_lean_elaborator_to__pexpr___main___closed__24; -lean::inc(x_566); -lean::inc(x_563); -x_569 = l_lean_kvmap_set__nat(x_563, x_566, x_565); -x_570 = l_lean_elaborator_to__pexpr___main___closed__25; -x_571 = lean::unbox(x_462); -lean::dec(x_462); -lean::inc(x_570); -x_574 = l_lean_kvmap_set__bool(x_569, x_570, x_571); -x_575 = lean::cnstr_get(x_296, 1); -lean::inc(x_575); -lean::dec(x_296); -x_578 = l_lean_elaborator_to__pexpr___main___closed__26; -lean::inc(x_578); -x_580 = l_option_map___rarg(x_578, x_575); -x_581 = l_lean_elaborator_to__pexpr___main___closed__27; -lean::inc(x_581); -x_583 = l_option_map___rarg(x_581, x_580); -x_584 = l_option_get__or__else___main___rarg(x_583, x_563); -x_585 = l_lean_elaborator_to__pexpr___main___closed__28; -lean::inc(x_585); -x_587 = l_lean_kvmap_set__name(x_574, x_585, x_584); -x_588 = l_list_append___rarg(x_486, x_558); -x_589 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__12(x_588); -x_590 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_590, 0, x_587); -lean::cnstr_set(x_590, 1, x_589); -if (lean::is_scalar(x_304)) { - x_591 = lean::alloc_cnstr(0, 2, 0); -} else { - x_591 = x_304; -} -lean::cnstr_set(x_591, 0, x_590); -lean::cnstr_set(x_591, 1, x_560); -x_16 = x_591; -goto lbl_17; -} -} -} -} -else -{ -if (lean::obj_tag(x_431) == 0) -{ -obj* x_596; lean::dec(x_434); -lean::dec(x_431); +x_456 = lean::cnstr_get(x_446, 0); +lean::inc(x_456); +if (lean::is_shared(x_446)) { + lean::dec(x_446); + x_458 = lean::box(0); +} else { + lean::cnstr_release(x_446, 0); + x_458 = x_446; +} +if (lean::is_scalar(x_458)) { + x_459 = lean::alloc_cnstr(0, 1, 0); +} else { + x_459 = x_458; +} +lean::cnstr_set(x_459, 0, x_456); +return x_459; +} +else +{ +obj* x_460; obj* x_462; obj* x_463; obj* x_465; obj* x_470; +x_460 = lean::cnstr_get(x_446, 0); +lean::inc(x_460); +if (lean::is_shared(x_446)) { + lean::dec(x_446); + x_462 = lean::box(0); +} else { + lean::cnstr_release(x_446, 0); + x_462 = x_446; +} +x_463 = lean::cnstr_get(x_460, 0); +lean::inc(x_463); +x_465 = lean::cnstr_get(x_460, 1); +lean::inc(x_465); +lean::dec(x_460); lean::inc(x_1); lean::inc(x_0); -x_596 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__14(x_0, x_300, x_1, x_2); -if (lean::obj_tag(x_596) == 0) +x_470 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__11(x_0, x_300, x_1, x_465); +if (lean::obj_tag(x_470) == 0) { -obj* x_605; obj* x_607; obj* x_608; +obj* x_480; obj* x_483; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); @@ -8562,228 +8342,451 @@ lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); lean::dec(x_306); -lean::dec(x_433); -x_605 = lean::cnstr_get(x_596, 0); -lean::inc(x_605); -if (lean::is_shared(x_596)) { - lean::dec(x_596); - x_607 = lean::box(0); +lean::dec(x_434); +lean::dec(x_463); +x_480 = lean::cnstr_get(x_470, 0); +lean::inc(x_480); +lean::dec(x_470); +if (lean::is_scalar(x_462)) { + x_483 = lean::alloc_cnstr(0, 1, 0); } else { - lean::cnstr_release(x_596, 0); - x_607 = x_596; + x_483 = x_462; + lean::cnstr_set_tag(x_462, 0); } -if (lean::is_scalar(x_607)) { - x_608 = lean::alloc_cnstr(0, 1, 0); -} else { - x_608 = x_607; -} -lean::cnstr_set(x_608, 0, x_605); -return x_608; +lean::cnstr_set(x_483, 0, x_480); +return x_483; } else { -obj* x_609; obj* x_611; obj* x_612; obj* x_614; obj* x_617; obj* x_621; -x_609 = lean::cnstr_get(x_596, 0); -lean::inc(x_609); -if (lean::is_shared(x_596)) { - lean::dec(x_596); - x_611 = lean::box(0); -} else { - lean::cnstr_release(x_596, 0); - x_611 = x_596; -} -x_612 = lean::cnstr_get(x_609, 0); -lean::inc(x_612); -x_614 = lean::cnstr_get(x_609, 1); -lean::inc(x_614); -lean::dec(x_609); +obj* x_484; obj* x_487; obj* x_489; obj* x_492; obj* x_496; +x_484 = lean::cnstr_get(x_470, 0); +lean::inc(x_484); +lean::dec(x_470); +x_487 = lean::cnstr_get(x_484, 0); +lean::inc(x_487); +x_489 = lean::cnstr_get(x_484, 1); +lean::inc(x_489); +lean::dec(x_484); lean::inc(x_1); lean::inc(x_0); -x_621 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__16(x_0, x_306, x_1, x_614); -if (lean::obj_tag(x_621) == 0) +x_496 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__13(x_0, x_306, x_1, x_489); +if (lean::obj_tag(x_496) == 0) { -obj* x_630; obj* x_633; -lean::dec(x_612); +obj* x_506; obj* x_509; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); -lean::dec(x_433); -x_630 = lean::cnstr_get(x_621, 0); -lean::inc(x_630); -lean::dec(x_621); -if (lean::is_scalar(x_611)) { - x_633 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_434); +lean::dec(x_463); +lean::dec(x_487); +x_506 = lean::cnstr_get(x_496, 0); +lean::inc(x_506); +lean::dec(x_496); +if (lean::is_scalar(x_462)) { + x_509 = lean::alloc_cnstr(0, 1, 0); } else { - x_633 = x_611; - lean::cnstr_set_tag(x_611, 0); + x_509 = x_462; + lean::cnstr_set_tag(x_462, 0); } -lean::cnstr_set(x_633, 0, x_630); -return x_633; +lean::cnstr_set(x_509, 0, x_506); +return x_509; } else { -obj* x_634; obj* x_637; obj* x_639; obj* x_642; -x_634 = lean::cnstr_get(x_621, 0); -lean::inc(x_634); -lean::dec(x_621); -x_637 = lean::cnstr_get(x_634, 0); -lean::inc(x_637); -x_639 = lean::cnstr_get(x_634, 1); -lean::inc(x_639); -lean::dec(x_634); -x_642 = lean::cnstr_get(x_296, 2); -lean::inc(x_642); -if (lean::obj_tag(x_642) == 0) +obj* x_510; obj* x_513; obj* x_515; obj* x_518; +x_510 = lean::cnstr_get(x_496, 0); +lean::inc(x_510); +lean::dec(x_496); +x_513 = lean::cnstr_get(x_510, 0); +lean::inc(x_513); +x_515 = lean::cnstr_get(x_510, 1); +lean::inc(x_515); +lean::dec(x_510); +x_518 = lean::cnstr_get(x_296, 2); +lean::inc(x_518); +if (lean::obj_tag(x_518) == 0) { -obj* x_647; -lean::dec(x_642); -lean::dec(x_611); -lean::dec(x_433); +obj* x_523; +lean::dec(x_434); +lean::dec(x_462); +lean::dec(x_518); if (lean::is_scalar(x_310)) { - x_647 = lean::alloc_cnstr(0, 2, 0); + x_523 = lean::alloc_cnstr(0, 2, 0); } else { - x_647 = x_310; + x_523 = x_310; } -lean::cnstr_set(x_647, 0, x_637); -lean::cnstr_set(x_647, 1, x_639); -x_617 = x_647; -goto lbl_618; +lean::cnstr_set(x_523, 0, x_513); +lean::cnstr_set(x_523, 1, x_515); +x_492 = x_523; +goto lbl_493; } else { -obj* x_648; obj* x_651; obj* x_655; -x_648 = lean::cnstr_get(x_642, 0); -lean::inc(x_648); -lean::dec(x_642); -x_651 = lean::cnstr_get(x_648, 0); -lean::inc(x_651); -lean::dec(x_648); +obj* x_524; obj* x_527; obj* x_531; +x_524 = lean::cnstr_get(x_518, 0); +lean::inc(x_524); +lean::dec(x_518); +x_527 = lean::cnstr_get(x_524, 0); +lean::inc(x_527); +lean::dec(x_524); lean::inc(x_1); -x_655 = l_lean_elaborator_to__pexpr___main(x_651, x_1, x_639); -if (lean::obj_tag(x_655) == 0) +x_531 = l_lean_elaborator_to__pexpr___main(x_527, x_1, x_515); +if (lean::obj_tag(x_531) == 0) { -obj* x_665; obj* x_668; -lean::dec(x_637); -lean::dec(x_612); +obj* x_542; obj* x_545; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); -lean::dec(x_433); -x_665 = lean::cnstr_get(x_655, 0); -lean::inc(x_665); -lean::dec(x_655); -if (lean::is_scalar(x_611)) { - x_668 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_434); +lean::dec(x_463); +lean::dec(x_513); +lean::dec(x_487); +x_542 = lean::cnstr_get(x_531, 0); +lean::inc(x_542); +lean::dec(x_531); +if (lean::is_scalar(x_462)) { + x_545 = lean::alloc_cnstr(0, 1, 0); } else { - x_668 = x_611; - lean::cnstr_set_tag(x_611, 0); + x_545 = x_462; + lean::cnstr_set_tag(x_462, 0); } -lean::cnstr_set(x_668, 0, x_665); -return x_668; +lean::cnstr_set(x_545, 0, x_542); +return x_545; } else { -obj* x_670; obj* x_673; obj* x_675; obj* x_678; obj* x_679; obj* x_680; obj* x_681; -lean::dec(x_611); -x_670 = lean::cnstr_get(x_655, 0); -lean::inc(x_670); -lean::dec(x_655); -x_673 = lean::cnstr_get(x_670, 0); -lean::inc(x_673); -x_675 = lean::cnstr_get(x_670, 1); -lean::inc(x_675); -lean::dec(x_670); -x_678 = lean::box(0); -if (lean::is_scalar(x_433)) { - x_679 = lean::alloc_cnstr(1, 2, 0); +obj* x_547; obj* x_550; obj* x_552; obj* x_555; obj* x_556; obj* x_557; obj* x_558; +lean::dec(x_462); +x_547 = lean::cnstr_get(x_531, 0); +lean::inc(x_547); +lean::dec(x_531); +x_550 = lean::cnstr_get(x_547, 0); +lean::inc(x_550); +x_552 = lean::cnstr_get(x_547, 1); +lean::inc(x_552); +lean::dec(x_547); +x_555 = lean::box(0); +if (lean::is_scalar(x_434)) { + x_556 = lean::alloc_cnstr(1, 2, 0); } else { - x_679 = x_433; + x_556 = x_434; } -lean::cnstr_set(x_679, 0, x_673); -lean::cnstr_set(x_679, 1, x_678); -x_680 = l_list_append___rarg(x_637, x_679); +lean::cnstr_set(x_556, 0, x_550); +lean::cnstr_set(x_556, 1, x_555); +x_557 = l_list_append___rarg(x_513, x_556); if (lean::is_scalar(x_310)) { - x_681 = lean::alloc_cnstr(0, 2, 0); + x_558 = lean::alloc_cnstr(0, 2, 0); } else { - x_681 = x_310; + x_558 = x_310; } -lean::cnstr_set(x_681, 0, x_680); -lean::cnstr_set(x_681, 1, x_675); -x_617 = x_681; -goto lbl_618; +lean::cnstr_set(x_558, 0, x_557); +lean::cnstr_set(x_558, 1, x_552); +x_492 = x_558; +goto lbl_493; } } } -lbl_618: +lbl_493: { -obj* x_682; obj* x_684; obj* x_687; obj* x_689; obj* x_690; obj* x_693; obj* x_694; uint8 x_695; obj* x_697; obj* x_698; obj* x_701; obj* x_703; obj* x_704; obj* x_706; obj* x_707; obj* x_708; obj* x_710; obj* x_711; obj* x_712; obj* x_713; obj* x_714; -x_682 = lean::cnstr_get(x_617, 0); -lean::inc(x_682); -x_684 = lean::cnstr_get(x_617, 1); -lean::inc(x_684); -lean::dec(x_617); -x_687 = lean::box(0); -lean::inc(x_612); -x_689 = l_list_length___main___rarg(x_612); -x_690 = l_lean_elaborator_to__pexpr___main___closed__24; -lean::inc(x_690); -lean::inc(x_687); -x_693 = l_lean_kvmap_set__nat(x_687, x_690, x_689); -x_694 = l_lean_elaborator_to__pexpr___main___closed__25; -x_695 = 1; -lean::inc(x_694); -x_697 = l_lean_kvmap_set__bool(x_693, x_694, x_695); -x_698 = lean::cnstr_get(x_296, 1); -lean::inc(x_698); +obj* x_559; obj* x_561; obj* x_564; obj* x_565; obj* x_567; obj* x_568; obj* x_571; obj* x_572; uint8 x_573; obj* x_576; obj* x_577; obj* x_580; obj* x_582; obj* x_583; obj* x_585; obj* x_586; obj* x_587; obj* x_589; obj* x_590; obj* x_591; obj* x_592; obj* x_593; +x_559 = lean::cnstr_get(x_492, 0); +lean::inc(x_559); +x_561 = lean::cnstr_get(x_492, 1); +lean::inc(x_561); +lean::dec(x_492); +x_564 = lean::box(0); +x_565 = lean::mk_nat_obj(0u); +lean::inc(x_487); +x_567 = l_list_length__aux___main___rarg(x_487, x_565); +x_568 = l_lean_elaborator_to__pexpr___main___closed__24; +lean::inc(x_568); +lean::inc(x_564); +x_571 = l_lean_kvmap_set__nat(x_564, x_568, x_567); +x_572 = l_lean_elaborator_to__pexpr___main___closed__25; +x_573 = lean::unbox(x_463); +lean::dec(x_463); +lean::inc(x_572); +x_576 = l_lean_kvmap_set__bool(x_571, x_572, x_573); +x_577 = lean::cnstr_get(x_296, 1); +lean::inc(x_577); lean::dec(x_296); -x_701 = l_lean_elaborator_to__pexpr___main___closed__26; -lean::inc(x_701); -x_703 = l_option_map___rarg(x_701, x_698); -x_704 = l_lean_elaborator_to__pexpr___main___closed__27; -lean::inc(x_704); -x_706 = l_option_map___rarg(x_704, x_703); -x_707 = l_option_get__or__else___main___rarg(x_706, x_687); -x_708 = l_lean_elaborator_to__pexpr___main___closed__28; -lean::inc(x_708); -x_710 = l_lean_kvmap_set__name(x_697, x_708, x_707); -x_711 = l_list_append___rarg(x_612, x_682); -x_712 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__15(x_711); -x_713 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_713, 0, x_710); -lean::cnstr_set(x_713, 1, x_712); +x_580 = l_lean_elaborator_to__pexpr___main___closed__26; +lean::inc(x_580); +x_582 = l_option_map___rarg(x_580, x_577); +x_583 = l_lean_elaborator_to__pexpr___main___closed__27; +lean::inc(x_583); +x_585 = l_option_map___rarg(x_583, x_582); +x_586 = l_option_get__or__else___main___rarg(x_585, x_564); +x_587 = l_lean_elaborator_to__pexpr___main___closed__28; +lean::inc(x_587); +x_589 = l_lean_kvmap_set__name(x_576, x_587, x_586); +x_590 = l_list_append___rarg(x_487, x_559); +x_591 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__12(x_590); +x_592 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_592, 0, x_589); +lean::cnstr_set(x_592, 1, x_591); if (lean::is_scalar(x_304)) { - x_714 = lean::alloc_cnstr(0, 2, 0); + x_593 = lean::alloc_cnstr(0, 2, 0); } else { - x_714 = x_304; + x_593 = x_304; } -lean::cnstr_set(x_714, 0, x_713); -lean::cnstr_set(x_714, 1, x_684); -x_16 = x_714; +lean::cnstr_set(x_593, 0, x_592); +lean::cnstr_set(x_593, 1, x_561); +x_16 = x_593; +goto lbl_17; +} +} +} +} +else +{ +if (lean::obj_tag(x_432) == 0) +{ +obj* x_598; +lean::dec(x_435); +lean::dec(x_432); +lean::inc(x_1); +lean::inc(x_0); +x_598 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__14(x_0, x_300, x_1, x_2); +if (lean::obj_tag(x_598) == 0) +{ +obj* x_607; obj* x_609; obj* x_610; +lean::dec(x_296); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_304); +lean::dec(x_310); +lean::dec(x_306); +lean::dec(x_434); +x_607 = lean::cnstr_get(x_598, 0); +lean::inc(x_607); +if (lean::is_shared(x_598)) { + lean::dec(x_598); + x_609 = lean::box(0); +} else { + lean::cnstr_release(x_598, 0); + x_609 = x_598; +} +if (lean::is_scalar(x_609)) { + x_610 = lean::alloc_cnstr(0, 1, 0); +} else { + x_610 = x_609; +} +lean::cnstr_set(x_610, 0, x_607); +return x_610; +} +else +{ +obj* x_611; obj* x_613; obj* x_614; obj* x_616; obj* x_619; obj* x_623; +x_611 = lean::cnstr_get(x_598, 0); +lean::inc(x_611); +if (lean::is_shared(x_598)) { + lean::dec(x_598); + x_613 = lean::box(0); +} else { + lean::cnstr_release(x_598, 0); + x_613 = x_598; +} +x_614 = lean::cnstr_get(x_611, 0); +lean::inc(x_614); +x_616 = lean::cnstr_get(x_611, 1); +lean::inc(x_616); +lean::dec(x_611); +lean::inc(x_1); +lean::inc(x_0); +x_623 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__16(x_0, x_306, x_1, x_616); +if (lean::obj_tag(x_623) == 0) +{ +obj* x_632; obj* x_635; +lean::dec(x_614); +lean::dec(x_296); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_304); +lean::dec(x_310); +lean::dec(x_434); +x_632 = lean::cnstr_get(x_623, 0); +lean::inc(x_632); +lean::dec(x_623); +if (lean::is_scalar(x_613)) { + x_635 = lean::alloc_cnstr(0, 1, 0); +} else { + x_635 = x_613; + lean::cnstr_set_tag(x_613, 0); +} +lean::cnstr_set(x_635, 0, x_632); +return x_635; +} +else +{ +obj* x_636; obj* x_639; obj* x_641; obj* x_644; +x_636 = lean::cnstr_get(x_623, 0); +lean::inc(x_636); +lean::dec(x_623); +x_639 = lean::cnstr_get(x_636, 0); +lean::inc(x_639); +x_641 = lean::cnstr_get(x_636, 1); +lean::inc(x_641); +lean::dec(x_636); +x_644 = lean::cnstr_get(x_296, 2); +lean::inc(x_644); +if (lean::obj_tag(x_644) == 0) +{ +obj* x_649; +lean::dec(x_613); +lean::dec(x_644); +lean::dec(x_434); +if (lean::is_scalar(x_310)) { + x_649 = lean::alloc_cnstr(0, 2, 0); +} else { + x_649 = x_310; +} +lean::cnstr_set(x_649, 0, x_639); +lean::cnstr_set(x_649, 1, x_641); +x_619 = x_649; +goto lbl_620; +} +else +{ +obj* x_650; obj* x_653; obj* x_657; +x_650 = lean::cnstr_get(x_644, 0); +lean::inc(x_650); +lean::dec(x_644); +x_653 = lean::cnstr_get(x_650, 0); +lean::inc(x_653); +lean::dec(x_650); +lean::inc(x_1); +x_657 = l_lean_elaborator_to__pexpr___main(x_653, x_1, x_641); +if (lean::obj_tag(x_657) == 0) +{ +obj* x_667; obj* x_670; +lean::dec(x_639); +lean::dec(x_614); +lean::dec(x_296); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_304); +lean::dec(x_310); +lean::dec(x_434); +x_667 = lean::cnstr_get(x_657, 0); +lean::inc(x_667); +lean::dec(x_657); +if (lean::is_scalar(x_613)) { + x_670 = lean::alloc_cnstr(0, 1, 0); +} else { + x_670 = x_613; + lean::cnstr_set_tag(x_613, 0); +} +lean::cnstr_set(x_670, 0, x_667); +return x_670; +} +else +{ +obj* x_672; obj* x_675; obj* x_677; obj* x_680; obj* x_681; obj* x_682; obj* x_683; +lean::dec(x_613); +x_672 = lean::cnstr_get(x_657, 0); +lean::inc(x_672); +lean::dec(x_657); +x_675 = lean::cnstr_get(x_672, 0); +lean::inc(x_675); +x_677 = lean::cnstr_get(x_672, 1); +lean::inc(x_677); +lean::dec(x_672); +x_680 = lean::box(0); +if (lean::is_scalar(x_434)) { + x_681 = lean::alloc_cnstr(1, 2, 0); +} else { + x_681 = x_434; +} +lean::cnstr_set(x_681, 0, x_675); +lean::cnstr_set(x_681, 1, x_680); +x_682 = l_list_append___rarg(x_639, x_681); +if (lean::is_scalar(x_310)) { + x_683 = lean::alloc_cnstr(0, 2, 0); +} else { + x_683 = x_310; +} +lean::cnstr_set(x_683, 0, x_682); +lean::cnstr_set(x_683, 1, x_677); +x_619 = x_683; +goto lbl_620; +} +} +} +lbl_620: +{ +obj* x_684; obj* x_686; obj* x_689; obj* x_690; obj* x_692; obj* x_693; obj* x_696; obj* x_697; uint8 x_698; obj* x_700; obj* x_701; obj* x_704; obj* x_706; obj* x_707; obj* x_709; obj* x_710; obj* x_711; obj* x_713; obj* x_714; obj* x_715; obj* x_716; obj* x_717; +x_684 = lean::cnstr_get(x_619, 0); +lean::inc(x_684); +x_686 = lean::cnstr_get(x_619, 1); +lean::inc(x_686); +lean::dec(x_619); +x_689 = lean::box(0); +x_690 = lean::mk_nat_obj(0u); +lean::inc(x_614); +x_692 = l_list_length__aux___main___rarg(x_614, x_690); +x_693 = l_lean_elaborator_to__pexpr___main___closed__24; +lean::inc(x_693); +lean::inc(x_689); +x_696 = l_lean_kvmap_set__nat(x_689, x_693, x_692); +x_697 = l_lean_elaborator_to__pexpr___main___closed__25; +x_698 = 1; +lean::inc(x_697); +x_700 = l_lean_kvmap_set__bool(x_696, x_697, x_698); +x_701 = lean::cnstr_get(x_296, 1); +lean::inc(x_701); +lean::dec(x_296); +x_704 = l_lean_elaborator_to__pexpr___main___closed__26; +lean::inc(x_704); +x_706 = l_option_map___rarg(x_704, x_701); +x_707 = l_lean_elaborator_to__pexpr___main___closed__27; +lean::inc(x_707); +x_709 = l_option_map___rarg(x_707, x_706); +x_710 = l_option_get__or__else___main___rarg(x_709, x_689); +x_711 = l_lean_elaborator_to__pexpr___main___closed__28; +lean::inc(x_711); +x_713 = l_lean_kvmap_set__name(x_700, x_711, x_710); +x_714 = l_list_append___rarg(x_614, x_684); +x_715 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__15(x_714); +x_716 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_716, 0, x_713); +lean::cnstr_set(x_716, 1, x_715); +if (lean::is_scalar(x_304)) { + x_717 = lean::alloc_cnstr(0, 2, 0); +} else { + x_717 = x_304; +} +lean::cnstr_set(x_717, 0, x_716); +lean::cnstr_set(x_717, 1, x_686); +x_16 = x_717; goto lbl_17; } } } else { -obj* x_716; obj* x_717; obj* x_719; obj* x_720; obj* x_723; -lean::dec(x_431); -x_716 = l_lean_parser_term_struct__inst__item_has__view; -x_717 = lean::cnstr_get(x_716, 1); -lean::inc(x_717); -x_719 = lean::apply_1(x_717, x_434); -x_720 = l_lean_elaborator_to__pexpr___main___closed__29; -lean::inc(x_1); +obj* x_719; obj* x_720; obj* x_722; obj* x_723; obj* x_726; +lean::dec(x_432); +x_719 = l_lean_parser_term_struct__inst__item_has__view; +x_720 = lean::cnstr_get(x_719, 1); lean::inc(x_720); -x_723 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_719, x_720, x_1, x_2); -if (lean::obj_tag(x_723) == 0) +x_722 = lean::apply_1(x_720, x_435); +x_723 = l_lean_elaborator_to__pexpr___main___closed__29; +lean::inc(x_1); +lean::inc(x_723); +x_726 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_722, x_723, x_1, x_2); +if (lean::obj_tag(x_726) == 0) { -obj* x_733; obj* x_735; obj* x_736; +obj* x_736; obj* x_738; obj* x_739; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); @@ -8792,47 +8795,47 @@ lean::dec(x_304); lean::dec(x_310); lean::dec(x_300); lean::dec(x_306); -lean::dec(x_433); -x_733 = lean::cnstr_get(x_723, 0); -lean::inc(x_733); -if (lean::is_shared(x_723)) { - lean::dec(x_723); - x_735 = lean::box(0); +lean::dec(x_434); +x_736 = lean::cnstr_get(x_726, 0); +lean::inc(x_736); +if (lean::is_shared(x_726)) { + lean::dec(x_726); + x_738 = lean::box(0); } else { - lean::cnstr_release(x_723, 0); - x_735 = x_723; + lean::cnstr_release(x_726, 0); + x_738 = x_726; } -if (lean::is_scalar(x_735)) { - x_736 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_738)) { + x_739 = lean::alloc_cnstr(0, 1, 0); } else { - x_736 = x_735; + x_739 = x_738; } -lean::cnstr_set(x_736, 0, x_733); -return x_736; +lean::cnstr_set(x_739, 0, x_736); +return x_739; } else { -obj* x_737; obj* x_739; obj* x_740; obj* x_742; obj* x_747; -x_737 = lean::cnstr_get(x_723, 0); -lean::inc(x_737); -if (lean::is_shared(x_723)) { - lean::dec(x_723); - x_739 = lean::box(0); -} else { - lean::cnstr_release(x_723, 0); - x_739 = x_723; -} -x_740 = lean::cnstr_get(x_737, 0); +obj* x_740; obj* x_742; obj* x_743; obj* x_745; obj* x_750; +x_740 = lean::cnstr_get(x_726, 0); lean::inc(x_740); -x_742 = lean::cnstr_get(x_737, 1); -lean::inc(x_742); -lean::dec(x_737); +if (lean::is_shared(x_726)) { + lean::dec(x_726); + x_742 = lean::box(0); +} else { + lean::cnstr_release(x_726, 0); + x_742 = x_726; +} +x_743 = lean::cnstr_get(x_740, 0); +lean::inc(x_743); +x_745 = lean::cnstr_get(x_740, 1); +lean::inc(x_745); +lean::dec(x_740); lean::inc(x_1); lean::inc(x_0); -x_747 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__17(x_0, x_300, x_1, x_742); -if (lean::obj_tag(x_747) == 0) +x_750 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__17(x_0, x_300, x_1, x_745); +if (lean::obj_tag(x_750) == 0) { -obj* x_757; obj* x_760; +obj* x_760; obj* x_763; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); @@ -8840,202 +8843,203 @@ lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); lean::dec(x_306); -lean::dec(x_433); -lean::dec(x_740); -x_757 = lean::cnstr_get(x_747, 0); -lean::inc(x_757); -lean::dec(x_747); -if (lean::is_scalar(x_739)) { - x_760 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_434); +lean::dec(x_743); +x_760 = lean::cnstr_get(x_750, 0); +lean::inc(x_760); +lean::dec(x_750); +if (lean::is_scalar(x_742)) { + x_763 = lean::alloc_cnstr(0, 1, 0); } else { - x_760 = x_739; - lean::cnstr_set_tag(x_739, 0); + x_763 = x_742; + lean::cnstr_set_tag(x_742, 0); } -lean::cnstr_set(x_760, 0, x_757); -return x_760; +lean::cnstr_set(x_763, 0, x_760); +return x_763; } else { -obj* x_761; obj* x_764; obj* x_766; obj* x_769; obj* x_773; -x_761 = lean::cnstr_get(x_747, 0); -lean::inc(x_761); -lean::dec(x_747); -x_764 = lean::cnstr_get(x_761, 0); +obj* x_764; obj* x_767; obj* x_769; obj* x_772; obj* x_776; +x_764 = lean::cnstr_get(x_750, 0); lean::inc(x_764); -x_766 = lean::cnstr_get(x_761, 1); -lean::inc(x_766); -lean::dec(x_761); +lean::dec(x_750); +x_767 = lean::cnstr_get(x_764, 0); +lean::inc(x_767); +x_769 = lean::cnstr_get(x_764, 1); +lean::inc(x_769); +lean::dec(x_764); lean::inc(x_1); lean::inc(x_0); -x_773 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__19(x_0, x_306, x_1, x_766); -if (lean::obj_tag(x_773) == 0) +x_776 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__19(x_0, x_306, x_1, x_769); +if (lean::obj_tag(x_776) == 0) { -obj* x_783; obj* x_786; +obj* x_786; obj* x_789; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); +lean::dec(x_767); lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); -lean::dec(x_433); -lean::dec(x_740); -lean::dec(x_764); -x_783 = lean::cnstr_get(x_773, 0); -lean::inc(x_783); -lean::dec(x_773); -if (lean::is_scalar(x_739)) { - x_786 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_434); +lean::dec(x_743); +x_786 = lean::cnstr_get(x_776, 0); +lean::inc(x_786); +lean::dec(x_776); +if (lean::is_scalar(x_742)) { + x_789 = lean::alloc_cnstr(0, 1, 0); } else { - x_786 = x_739; - lean::cnstr_set_tag(x_739, 0); + x_789 = x_742; + lean::cnstr_set_tag(x_742, 0); } -lean::cnstr_set(x_786, 0, x_783); -return x_786; +lean::cnstr_set(x_789, 0, x_786); +return x_789; } else { -obj* x_787; obj* x_790; obj* x_792; obj* x_795; -x_787 = lean::cnstr_get(x_773, 0); -lean::inc(x_787); -lean::dec(x_773); -x_790 = lean::cnstr_get(x_787, 0); +obj* x_790; obj* x_793; obj* x_795; obj* x_798; +x_790 = lean::cnstr_get(x_776, 0); lean::inc(x_790); -x_792 = lean::cnstr_get(x_787, 1); -lean::inc(x_792); -lean::dec(x_787); -x_795 = lean::cnstr_get(x_296, 2); +lean::dec(x_776); +x_793 = lean::cnstr_get(x_790, 0); +lean::inc(x_793); +x_795 = lean::cnstr_get(x_790, 1); lean::inc(x_795); -if (lean::obj_tag(x_795) == 0) +lean::dec(x_790); +x_798 = lean::cnstr_get(x_296, 2); +lean::inc(x_798); +if (lean::obj_tag(x_798) == 0) { -obj* x_800; -lean::dec(x_795); -lean::dec(x_433); -lean::dec(x_739); +obj* x_803; +lean::dec(x_798); +lean::dec(x_434); +lean::dec(x_742); if (lean::is_scalar(x_310)) { - x_800 = lean::alloc_cnstr(0, 2, 0); + x_803 = lean::alloc_cnstr(0, 2, 0); } else { - x_800 = x_310; + x_803 = x_310; } -lean::cnstr_set(x_800, 0, x_790); -lean::cnstr_set(x_800, 1, x_792); -x_769 = x_800; -goto lbl_770; +lean::cnstr_set(x_803, 0, x_793); +lean::cnstr_set(x_803, 1, x_795); +x_772 = x_803; +goto lbl_773; } else { -obj* x_801; obj* x_804; obj* x_808; -x_801 = lean::cnstr_get(x_795, 0); -lean::inc(x_801); -lean::dec(x_795); -x_804 = lean::cnstr_get(x_801, 0); +obj* x_804; obj* x_807; obj* x_811; +x_804 = lean::cnstr_get(x_798, 0); lean::inc(x_804); -lean::dec(x_801); +lean::dec(x_798); +x_807 = lean::cnstr_get(x_804, 0); +lean::inc(x_807); +lean::dec(x_804); lean::inc(x_1); -x_808 = l_lean_elaborator_to__pexpr___main(x_804, x_1, x_792); -if (lean::obj_tag(x_808) == 0) +x_811 = l_lean_elaborator_to__pexpr___main(x_807, x_1, x_795); +if (lean::obj_tag(x_811) == 0) { -obj* x_819; obj* x_822; +obj* x_822; obj* x_825; lean::dec(x_296); lean::dec(x_9); lean::dec(x_1); +lean::dec(x_767); lean::dec(x_0); lean::dec(x_304); lean::dec(x_310); -lean::dec(x_433); -lean::dec(x_740); -lean::dec(x_764); -lean::dec(x_790); -x_819 = lean::cnstr_get(x_808, 0); -lean::inc(x_819); -lean::dec(x_808); -if (lean::is_scalar(x_739)) { - x_822 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_793); +lean::dec(x_434); +lean::dec(x_743); +x_822 = lean::cnstr_get(x_811, 0); +lean::inc(x_822); +lean::dec(x_811); +if (lean::is_scalar(x_742)) { + x_825 = lean::alloc_cnstr(0, 1, 0); } else { - x_822 = x_739; - lean::cnstr_set_tag(x_739, 0); + x_825 = x_742; + lean::cnstr_set_tag(x_742, 0); } -lean::cnstr_set(x_822, 0, x_819); -return x_822; +lean::cnstr_set(x_825, 0, x_822); +return x_825; } else { -obj* x_824; obj* x_827; obj* x_829; obj* x_832; obj* x_833; obj* x_834; obj* x_835; -lean::dec(x_739); -x_824 = lean::cnstr_get(x_808, 0); -lean::inc(x_824); -lean::dec(x_808); -x_827 = lean::cnstr_get(x_824, 0); +obj* x_827; obj* x_830; obj* x_832; obj* x_835; obj* x_836; obj* x_837; obj* x_838; +lean::dec(x_742); +x_827 = lean::cnstr_get(x_811, 0); lean::inc(x_827); -x_829 = lean::cnstr_get(x_824, 1); -lean::inc(x_829); -lean::dec(x_824); -x_832 = lean::box(0); -if (lean::is_scalar(x_433)) { - x_833 = lean::alloc_cnstr(1, 2, 0); +lean::dec(x_811); +x_830 = lean::cnstr_get(x_827, 0); +lean::inc(x_830); +x_832 = lean::cnstr_get(x_827, 1); +lean::inc(x_832); +lean::dec(x_827); +x_835 = lean::box(0); +if (lean::is_scalar(x_434)) { + x_836 = lean::alloc_cnstr(1, 2, 0); } else { - x_833 = x_433; + x_836 = x_434; } -lean::cnstr_set(x_833, 0, x_827); -lean::cnstr_set(x_833, 1, x_832); -x_834 = l_list_append___rarg(x_790, x_833); +lean::cnstr_set(x_836, 0, x_830); +lean::cnstr_set(x_836, 1, x_835); +x_837 = l_list_append___rarg(x_793, x_836); if (lean::is_scalar(x_310)) { - x_835 = lean::alloc_cnstr(0, 2, 0); + x_838 = lean::alloc_cnstr(0, 2, 0); } else { - x_835 = x_310; + x_838 = x_310; } -lean::cnstr_set(x_835, 0, x_834); -lean::cnstr_set(x_835, 1, x_829); -x_769 = x_835; -goto lbl_770; +lean::cnstr_set(x_838, 0, x_837); +lean::cnstr_set(x_838, 1, x_832); +x_772 = x_838; +goto lbl_773; } } } -lbl_770: +lbl_773: { -obj* x_836; obj* x_838; obj* x_841; obj* x_843; obj* x_844; obj* x_847; obj* x_848; uint8 x_849; obj* x_852; obj* x_853; obj* x_856; obj* x_858; obj* x_859; obj* x_861; obj* x_862; obj* x_863; obj* x_865; obj* x_866; obj* x_867; obj* x_868; obj* x_869; -x_836 = lean::cnstr_get(x_769, 0); -lean::inc(x_836); -x_838 = lean::cnstr_get(x_769, 1); -lean::inc(x_838); -lean::dec(x_769); -x_841 = lean::box(0); -lean::inc(x_764); -x_843 = l_list_length___main___rarg(x_764); -x_844 = l_lean_elaborator_to__pexpr___main___closed__24; -lean::inc(x_844); +obj* x_839; obj* x_841; obj* x_844; obj* x_845; obj* x_847; obj* x_848; obj* x_851; obj* x_852; uint8 x_853; obj* x_856; obj* x_857; obj* x_860; obj* x_862; obj* x_863; obj* x_865; obj* x_866; obj* x_867; obj* x_869; obj* x_870; obj* x_871; obj* x_872; obj* x_873; +x_839 = lean::cnstr_get(x_772, 0); +lean::inc(x_839); +x_841 = lean::cnstr_get(x_772, 1); lean::inc(x_841); -x_847 = l_lean_kvmap_set__nat(x_841, x_844, x_843); -x_848 = l_lean_elaborator_to__pexpr___main___closed__25; -x_849 = lean::unbox(x_740); -lean::dec(x_740); +lean::dec(x_772); +x_844 = lean::box(0); +x_845 = lean::mk_nat_obj(0u); +lean::inc(x_767); +x_847 = l_list_length__aux___main___rarg(x_767, x_845); +x_848 = l_lean_elaborator_to__pexpr___main___closed__24; lean::inc(x_848); -x_852 = l_lean_kvmap_set__bool(x_847, x_848, x_849); -x_853 = lean::cnstr_get(x_296, 1); -lean::inc(x_853); +lean::inc(x_844); +x_851 = l_lean_kvmap_set__nat(x_844, x_848, x_847); +x_852 = l_lean_elaborator_to__pexpr___main___closed__25; +x_853 = lean::unbox(x_743); +lean::dec(x_743); +lean::inc(x_852); +x_856 = l_lean_kvmap_set__bool(x_851, x_852, x_853); +x_857 = lean::cnstr_get(x_296, 1); +lean::inc(x_857); lean::dec(x_296); -x_856 = l_lean_elaborator_to__pexpr___main___closed__26; -lean::inc(x_856); -x_858 = l_option_map___rarg(x_856, x_853); -x_859 = l_lean_elaborator_to__pexpr___main___closed__27; -lean::inc(x_859); -x_861 = l_option_map___rarg(x_859, x_858); -x_862 = l_option_get__or__else___main___rarg(x_861, x_841); -x_863 = l_lean_elaborator_to__pexpr___main___closed__28; +x_860 = l_lean_elaborator_to__pexpr___main___closed__26; +lean::inc(x_860); +x_862 = l_option_map___rarg(x_860, x_857); +x_863 = l_lean_elaborator_to__pexpr___main___closed__27; lean::inc(x_863); -x_865 = l_lean_kvmap_set__name(x_852, x_863, x_862); -x_866 = l_list_append___rarg(x_764, x_836); -x_867 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__18(x_866); -x_868 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_868, 0, x_865); -lean::cnstr_set(x_868, 1, x_867); +x_865 = l_option_map___rarg(x_863, x_862); +x_866 = l_option_get__or__else___main___rarg(x_865, x_844); +x_867 = l_lean_elaborator_to__pexpr___main___closed__28; +lean::inc(x_867); +x_869 = l_lean_kvmap_set__name(x_856, x_867, x_866); +x_870 = l_list_append___rarg(x_767, x_839); +x_871 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__18(x_870); +x_872 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_872, 0, x_869); +lean::cnstr_set(x_872, 1, x_871); if (lean::is_scalar(x_304)) { - x_869 = lean::alloc_cnstr(0, 2, 0); + x_873 = lean::alloc_cnstr(0, 2, 0); } else { - x_869 = x_304; + x_873 = x_304; } -lean::cnstr_set(x_869, 0, x_868); -lean::cnstr_set(x_869, 1, x_838); -x_16 = x_869; +lean::cnstr_set(x_873, 0, x_872); +lean::cnstr_set(x_873, 1, x_841); +x_16 = x_873; goto lbl_17; } } @@ -9047,353 +9051,353 @@ goto lbl_17; } else { -obj* x_872; +obj* x_876; lean::inc(x_1); lean::inc(x_11); -x_872 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__20(x_11, x_1, x_2); -if (lean::obj_tag(x_872) == 0) +x_876 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__20(x_11, x_1, x_2); +if (lean::obj_tag(x_876) == 0) { -obj* x_877; obj* x_879; obj* x_880; +obj* x_881; obj* x_883; obj* x_884; lean::dec(x_11); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_877 = lean::cnstr_get(x_872, 0); -lean::inc(x_877); -if (lean::is_shared(x_872)) { - lean::dec(x_872); - x_879 = lean::box(0); +x_881 = lean::cnstr_get(x_876, 0); +lean::inc(x_881); +if (lean::is_shared(x_876)) { + lean::dec(x_876); + x_883 = lean::box(0); } else { - lean::cnstr_release(x_872, 0); - x_879 = x_872; + lean::cnstr_release(x_876, 0); + x_883 = x_876; } -if (lean::is_scalar(x_879)) { - x_880 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_883)) { + x_884 = lean::alloc_cnstr(0, 1, 0); } else { - x_880 = x_879; + x_884 = x_883; } -lean::cnstr_set(x_880, 0, x_877); -return x_880; +lean::cnstr_set(x_884, 0, x_881); +return x_884; } else { -obj* x_881; obj* x_884; obj* x_886; obj* x_888; obj* x_889; obj* x_890; -x_881 = lean::cnstr_get(x_872, 0); -lean::inc(x_881); -lean::dec(x_872); -x_884 = lean::cnstr_get(x_881, 0); -lean::inc(x_884); -x_886 = lean::cnstr_get(x_881, 1); -lean::inc(x_886); -if (lean::is_shared(x_881)) { - lean::dec(x_881); - x_888 = lean::box(0); +obj* x_885; obj* x_888; obj* x_890; obj* x_892; obj* x_893; obj* x_894; +x_885 = lean::cnstr_get(x_876, 0); +lean::inc(x_885); +lean::dec(x_876); +x_888 = lean::cnstr_get(x_885, 0); +lean::inc(x_888); +x_890 = lean::cnstr_get(x_885, 1); +lean::inc(x_890); +if (lean::is_shared(x_885)) { + lean::dec(x_885); + x_892 = lean::box(0); } else { - lean::cnstr_release(x_881, 0); - lean::cnstr_release(x_881, 1); - x_888 = x_881; + lean::cnstr_release(x_885, 0); + lean::cnstr_release(x_885, 1); + x_892 = x_885; } -x_889 = l_list_reverse___rarg(x_884); -if (lean::is_scalar(x_888)) { - x_890 = lean::alloc_cnstr(0, 2, 0); +x_893 = l_list_reverse___rarg(x_888); +if (lean::is_scalar(x_892)) { + x_894 = lean::alloc_cnstr(0, 2, 0); } else { - x_890 = x_888; + x_894 = x_892; } -lean::cnstr_set(x_890, 0, x_889); -lean::cnstr_set(x_890, 1, x_886); -x_18 = x_890; +lean::cnstr_set(x_894, 0, x_893); +lean::cnstr_set(x_894, 1, x_890); +x_18 = x_894; goto lbl_19; } } } else { -obj* x_893; obj* x_894; obj* x_897; obj* x_898; obj* x_899; obj* x_900; +obj* x_897; obj* x_898; obj* x_901; obj* x_902; obj* x_903; obj* x_904; lean::dec(x_11); lean::dec(x_9); -x_893 = l_lean_parser_number_has__view; -x_894 = lean::cnstr_get(x_893, 0); -lean::inc(x_894); +x_897 = l_lean_parser_number_has__view; +x_898 = lean::cnstr_get(x_897, 0); +lean::inc(x_898); lean::inc(x_0); -x_897 = lean::apply_1(x_894, x_0); -x_898 = l_lean_parser_number_view_to__nat___main(x_897); -x_899 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_899, 0, x_898); -x_900 = lean::alloc_cnstr(9, 1, 0); -lean::cnstr_set(x_900, 0, x_899); +x_901 = lean::apply_1(x_898, x_0); +x_902 = l_lean_parser_number_view_to__nat___main(x_901); +x_903 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_903, 0, x_902); +x_904 = lean::alloc_cnstr(9, 1, 0); +lean::cnstr_set(x_904, 0, x_903); if (x_23 == 0) { -obj* x_901; -x_901 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_901) == 0) +obj* x_905; +x_905 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_905) == 0) { -obj* x_904; obj* x_905; -lean::dec(x_901); +obj* x_908; obj* x_909; lean::dec(x_1); -x_904 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_904, 0, x_900); -lean::cnstr_set(x_904, 1, x_2); -x_905 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_905, 0, x_904); -return x_905; +lean::dec(x_905); +x_908 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_908, 0, x_904); +lean::cnstr_set(x_908, 1, x_2); +x_909 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_909, 0, x_908); +return x_909; } else { -obj* x_906; obj* x_909; obj* x_912; obj* x_915; obj* x_916; obj* x_917; obj* x_919; obj* x_921; obj* x_922; obj* x_925; obj* x_927; obj* x_928; obj* x_929; obj* x_930; -x_906 = lean::cnstr_get(x_901, 0); -lean::inc(x_906); -lean::dec(x_901); -x_909 = lean::cnstr_get(x_1, 0); -lean::inc(x_909); +obj* x_910; obj* x_913; obj* x_916; obj* x_919; obj* x_920; obj* x_921; obj* x_923; obj* x_925; obj* x_926; obj* x_929; obj* x_931; obj* x_932; obj* x_933; obj* x_934; +x_910 = lean::cnstr_get(x_905, 0); +lean::inc(x_910); +lean::dec(x_905); +x_913 = lean::cnstr_get(x_1, 0); +lean::inc(x_913); lean::dec(x_1); -x_912 = lean::cnstr_get(x_909, 2); -lean::inc(x_912); -lean::dec(x_909); -x_915 = l_lean_file__map_to__position(x_912, x_906); -x_916 = lean::box(0); -x_917 = lean::cnstr_get(x_915, 1); -lean::inc(x_917); -x_919 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_919); -x_921 = l_lean_kvmap_set__nat(x_916, x_919, x_917); -x_922 = lean::cnstr_get(x_915, 0); -lean::inc(x_922); -lean::dec(x_915); -x_925 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_925); -x_927 = l_lean_kvmap_set__nat(x_921, x_925, x_922); -x_928 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_928, 0, x_927); -lean::cnstr_set(x_928, 1, x_900); -x_929 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_929, 0, x_928); -lean::cnstr_set(x_929, 1, x_2); -x_930 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_930, 0, x_929); -return x_930; -} -} -else -{ -obj* x_933; obj* x_934; -lean::dec(x_1); -lean::dec(x_0); +x_916 = lean::cnstr_get(x_913, 2); +lean::inc(x_916); +lean::dec(x_913); +x_919 = l_lean_file__map_to__position(x_916, x_910); +x_920 = lean::box(0); +x_921 = lean::cnstr_get(x_919, 1); +lean::inc(x_921); +x_923 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_923); +x_925 = l_lean_kvmap_set__nat(x_920, x_923, x_921); +x_926 = lean::cnstr_get(x_919, 0); +lean::inc(x_926); +lean::dec(x_919); +x_929 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_929); +x_931 = l_lean_kvmap_set__nat(x_925, x_929, x_926); +x_932 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_932, 0, x_931); +lean::cnstr_set(x_932, 1, x_904); x_933 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_933, 0, x_900); +lean::cnstr_set(x_933, 0, x_932); lean::cnstr_set(x_933, 1, x_2); x_934 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_934, 0, x_933); return x_934; } } +else +{ +obj* x_937; obj* x_938; +lean::dec(x_1); +lean::dec(x_0); +x_937 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_937, 0, x_904); +lean::cnstr_set(x_937, 1, x_2); +x_938 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_938, 0, x_937); +return x_938; +} +} } else { -obj* x_936; obj* x_937; obj* x_940; obj* x_941; obj* x_945; +obj* x_940; obj* x_941; obj* x_944; obj* x_945; obj* x_949; lean::dec(x_11); -x_936 = l_lean_parser_term_inaccessible_has__view; -x_937 = lean::cnstr_get(x_936, 0); -lean::inc(x_937); -lean::inc(x_0); -x_940 = lean::apply_1(x_937, x_0); -x_941 = lean::cnstr_get(x_940, 1); +x_940 = l_lean_parser_term_inaccessible_has__view; +x_941 = lean::cnstr_get(x_940, 0); lean::inc(x_941); -lean::dec(x_940); +lean::inc(x_0); +x_944 = lean::apply_1(x_941, x_0); +x_945 = lean::cnstr_get(x_944, 1); +lean::inc(x_945); +lean::dec(x_944); lean::inc(x_1); -x_945 = l_lean_elaborator_to__pexpr___main(x_941, x_1, x_2); -if (lean::obj_tag(x_945) == 0) +x_949 = l_lean_elaborator_to__pexpr___main(x_945, x_1, x_2); +if (lean::obj_tag(x_949) == 0) { -obj* x_949; obj* x_951; obj* x_952; +obj* x_953; obj* x_955; obj* x_956; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_949 = lean::cnstr_get(x_945, 0); -lean::inc(x_949); -if (lean::is_shared(x_945)) { - lean::dec(x_945); - x_951 = lean::box(0); +x_953 = lean::cnstr_get(x_949, 0); +lean::inc(x_953); +if (lean::is_shared(x_949)) { + lean::dec(x_949); + x_955 = lean::box(0); } else { - lean::cnstr_release(x_945, 0); - x_951 = x_945; + lean::cnstr_release(x_949, 0); + x_955 = x_949; } -if (lean::is_scalar(x_951)) { - x_952 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_955)) { + x_956 = lean::alloc_cnstr(0, 1, 0); } else { - x_952 = x_951; + x_956 = x_955; } -lean::cnstr_set(x_952, 0, x_949); -return x_952; +lean::cnstr_set(x_956, 0, x_953); +return x_956; } else { -obj* x_953; obj* x_956; obj* x_958; obj* x_960; obj* x_961; obj* x_963; obj* x_964; -x_953 = lean::cnstr_get(x_945, 0); -lean::inc(x_953); -lean::dec(x_945); -x_956 = lean::cnstr_get(x_953, 0); -lean::inc(x_956); -x_958 = lean::cnstr_get(x_953, 1); -lean::inc(x_958); -if (lean::is_shared(x_953)) { - lean::dec(x_953); - x_960 = lean::box(0); +obj* x_957; obj* x_960; obj* x_962; obj* x_964; obj* x_965; obj* x_967; obj* x_968; +x_957 = lean::cnstr_get(x_949, 0); +lean::inc(x_957); +lean::dec(x_949); +x_960 = lean::cnstr_get(x_957, 0); +lean::inc(x_960); +x_962 = lean::cnstr_get(x_957, 1); +lean::inc(x_962); +if (lean::is_shared(x_957)) { + lean::dec(x_957); + x_964 = lean::box(0); } else { - lean::cnstr_release(x_953, 0); - lean::cnstr_release(x_953, 1); - x_960 = x_953; + lean::cnstr_release(x_957, 0); + lean::cnstr_release(x_957, 1); + x_964 = x_957; } -x_961 = l_lean_elaborator_to__pexpr___main___closed__30; -lean::inc(x_961); -x_963 = l_lean_elaborator_expr_mk__annotation(x_961, x_956); -if (lean::is_scalar(x_960)) { - x_964 = lean::alloc_cnstr(0, 2, 0); +x_965 = l_lean_elaborator_to__pexpr___main___closed__30; +lean::inc(x_965); +x_967 = l_lean_elaborator_expr_mk__annotation(x_965, x_960); +if (lean::is_scalar(x_964)) { + x_968 = lean::alloc_cnstr(0, 2, 0); } else { - x_964 = x_960; + x_968 = x_964; } -lean::cnstr_set(x_964, 0, x_963); -lean::cnstr_set(x_964, 1, x_958); -x_16 = x_964; +lean::cnstr_set(x_968, 0, x_967); +lean::cnstr_set(x_968, 1, x_962); +x_16 = x_968; goto lbl_17; } } } else { -obj* x_966; obj* x_967; obj* x_970; obj* x_971; obj* x_973; obj* x_974; obj* x_976; obj* x_979; +obj* x_970; obj* x_971; obj* x_974; obj* x_975; obj* x_977; obj* x_978; obj* x_980; obj* x_983; lean::dec(x_11); -x_966 = l_lean_parser_term_explicit_has__view; -x_967 = lean::cnstr_get(x_966, 0); -lean::inc(x_967); -lean::inc(x_0); -x_970 = lean::apply_1(x_967, x_0); +x_970 = l_lean_parser_term_explicit_has__view; x_971 = lean::cnstr_get(x_970, 0); lean::inc(x_971); -x_973 = l_lean_parser_ident__univs_has__view; -x_974 = lean::cnstr_get(x_973, 1); -lean::inc(x_974); -x_976 = lean::cnstr_get(x_970, 1); -lean::inc(x_976); -lean::dec(x_970); -x_979 = lean::apply_1(x_974, x_976); -if (lean::obj_tag(x_971) == 0) +lean::inc(x_0); +x_974 = lean::apply_1(x_971, x_0); +x_975 = lean::cnstr_get(x_974, 0); +lean::inc(x_975); +x_977 = l_lean_parser_ident__univs_has__view; +x_978 = lean::cnstr_get(x_977, 1); +lean::inc(x_978); +x_980 = lean::cnstr_get(x_974, 1); +lean::inc(x_980); +lean::dec(x_974); +x_983 = lean::apply_1(x_978, x_980); +if (lean::obj_tag(x_975) == 0) { -obj* x_982; -lean::dec(x_971); +obj* x_986; +lean::dec(x_975); lean::inc(x_1); -x_982 = l_lean_elaborator_to__pexpr___main(x_979, x_1, x_2); -if (lean::obj_tag(x_982) == 0) +x_986 = l_lean_elaborator_to__pexpr___main(x_983, x_1, x_2); +if (lean::obj_tag(x_986) == 0) { -obj* x_986; obj* x_988; obj* x_989; +obj* x_990; obj* x_992; obj* x_993; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_986 = lean::cnstr_get(x_982, 0); -lean::inc(x_986); -if (lean::is_shared(x_982)) { - lean::dec(x_982); - x_988 = lean::box(0); -} else { - lean::cnstr_release(x_982, 0); - x_988 = x_982; -} -if (lean::is_scalar(x_988)) { - x_989 = lean::alloc_cnstr(0, 1, 0); -} else { - x_989 = x_988; -} -lean::cnstr_set(x_989, 0, x_986); -return x_989; -} -else -{ -obj* x_990; obj* x_993; obj* x_995; obj* x_997; obj* x_998; obj* x_1000; obj* x_1001; -x_990 = lean::cnstr_get(x_982, 0); +x_990 = lean::cnstr_get(x_986, 0); lean::inc(x_990); -lean::dec(x_982); -x_993 = lean::cnstr_get(x_990, 0); -lean::inc(x_993); -x_995 = lean::cnstr_get(x_990, 1); -lean::inc(x_995); -if (lean::is_shared(x_990)) { - lean::dec(x_990); - x_997 = lean::box(0); +if (lean::is_shared(x_986)) { + lean::dec(x_986); + x_992 = lean::box(0); } else { - lean::cnstr_release(x_990, 0); - lean::cnstr_release(x_990, 1); - x_997 = x_990; + lean::cnstr_release(x_986, 0); + x_992 = x_986; } -x_998 = l_list_map___main___at_lean_elaborator_mk__eqns___spec__1___closed__1; -lean::inc(x_998); -x_1000 = l_lean_elaborator_expr_mk__annotation(x_998, x_993); -if (lean::is_scalar(x_997)) { - x_1001 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_992)) { + x_993 = lean::alloc_cnstr(0, 1, 0); } else { - x_1001 = x_997; + x_993 = x_992; } -lean::cnstr_set(x_1001, 0, x_1000); -lean::cnstr_set(x_1001, 1, x_995); -x_16 = x_1001; +lean::cnstr_set(x_993, 0, x_990); +return x_993; +} +else +{ +obj* x_994; obj* x_997; obj* x_999; obj* x_1001; obj* x_1002; obj* x_1004; obj* x_1005; +x_994 = lean::cnstr_get(x_986, 0); +lean::inc(x_994); +lean::dec(x_986); +x_997 = lean::cnstr_get(x_994, 0); +lean::inc(x_997); +x_999 = lean::cnstr_get(x_994, 1); +lean::inc(x_999); +if (lean::is_shared(x_994)) { + lean::dec(x_994); + x_1001 = lean::box(0); +} else { + lean::cnstr_release(x_994, 0); + lean::cnstr_release(x_994, 1); + x_1001 = x_994; +} +x_1002 = l_list_map___main___at_lean_elaborator_mk__eqns___spec__1___closed__1; +lean::inc(x_1002); +x_1004 = l_lean_elaborator_expr_mk__annotation(x_1002, x_997); +if (lean::is_scalar(x_1001)) { + x_1005 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1005 = x_1001; +} +lean::cnstr_set(x_1005, 0, x_1004); +lean::cnstr_set(x_1005, 1, x_999); +x_16 = x_1005; goto lbl_17; } } else { -obj* x_1004; -lean::dec(x_971); +obj* x_1008; +lean::dec(x_975); lean::inc(x_1); -x_1004 = l_lean_elaborator_to__pexpr___main(x_979, x_1, x_2); -if (lean::obj_tag(x_1004) == 0) +x_1008 = l_lean_elaborator_to__pexpr___main(x_983, x_1, x_2); +if (lean::obj_tag(x_1008) == 0) { -obj* x_1008; obj* x_1010; obj* x_1011; +obj* x_1012; obj* x_1014; obj* x_1015; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1008 = lean::cnstr_get(x_1004, 0); -lean::inc(x_1008); -if (lean::is_shared(x_1004)) { - lean::dec(x_1004); - x_1010 = lean::box(0); -} else { - lean::cnstr_release(x_1004, 0); - x_1010 = x_1004; -} -if (lean::is_scalar(x_1010)) { - x_1011 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1011 = x_1010; -} -lean::cnstr_set(x_1011, 0, x_1008); -return x_1011; -} -else -{ -obj* x_1012; obj* x_1015; obj* x_1017; obj* x_1019; obj* x_1020; obj* x_1022; obj* x_1023; -x_1012 = lean::cnstr_get(x_1004, 0); +x_1012 = lean::cnstr_get(x_1008, 0); lean::inc(x_1012); -lean::dec(x_1004); -x_1015 = lean::cnstr_get(x_1012, 0); -lean::inc(x_1015); -x_1017 = lean::cnstr_get(x_1012, 1); -lean::inc(x_1017); -if (lean::is_shared(x_1012)) { - lean::dec(x_1012); - x_1019 = lean::box(0); +if (lean::is_shared(x_1008)) { + lean::dec(x_1008); + x_1014 = lean::box(0); } else { - lean::cnstr_release(x_1012, 0); - lean::cnstr_release(x_1012, 1); - x_1019 = x_1012; + lean::cnstr_release(x_1008, 0); + x_1014 = x_1008; } -x_1020 = l_lean_elaborator_to__pexpr___main___closed__31; -lean::inc(x_1020); -x_1022 = l_lean_elaborator_expr_mk__annotation(x_1020, x_1015); -if (lean::is_scalar(x_1019)) { - x_1023 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1014)) { + x_1015 = lean::alloc_cnstr(0, 1, 0); } else { - x_1023 = x_1019; + x_1015 = x_1014; } -lean::cnstr_set(x_1023, 0, x_1022); -lean::cnstr_set(x_1023, 1, x_1017); -x_16 = x_1023; +lean::cnstr_set(x_1015, 0, x_1012); +return x_1015; +} +else +{ +obj* x_1016; obj* x_1019; obj* x_1021; obj* x_1023; obj* x_1024; obj* x_1026; obj* x_1027; +x_1016 = lean::cnstr_get(x_1008, 0); +lean::inc(x_1016); +lean::dec(x_1008); +x_1019 = lean::cnstr_get(x_1016, 0); +lean::inc(x_1019); +x_1021 = lean::cnstr_get(x_1016, 1); +lean::inc(x_1021); +if (lean::is_shared(x_1016)) { + lean::dec(x_1016); + x_1023 = lean::box(0); +} else { + lean::cnstr_release(x_1016, 0); + lean::cnstr_release(x_1016, 1); + x_1023 = x_1016; +} +x_1024 = l_lean_elaborator_to__pexpr___main___closed__31; +lean::inc(x_1024); +x_1026 = l_lean_elaborator_expr_mk__annotation(x_1024, x_1019); +if (lean::is_scalar(x_1023)) { + x_1027 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1027 = x_1023; +} +lean::cnstr_set(x_1027, 0, x_1026); +lean::cnstr_set(x_1027, 1, x_1021); +x_16 = x_1027; goto lbl_17; } } @@ -9401,159 +9405,159 @@ goto lbl_17; } else { -obj* x_1025; obj* x_1026; obj* x_1029; obj* x_1030; obj* x_1032; +obj* x_1029; obj* x_1030; obj* x_1033; obj* x_1034; obj* x_1036; lean::dec(x_11); -x_1025 = l_lean_parser_term_projection_has__view; -x_1026 = lean::cnstr_get(x_1025, 0); -lean::inc(x_1026); -lean::inc(x_0); -x_1029 = lean::apply_1(x_1026, x_0); -x_1030 = lean::cnstr_get(x_1029, 2); +x_1029 = l_lean_parser_term_projection_has__view; +x_1030 = lean::cnstr_get(x_1029, 0); lean::inc(x_1030); -x_1032 = lean::cnstr_get(x_1029, 0); -lean::inc(x_1032); -lean::dec(x_1029); -if (lean::obj_tag(x_1030) == 0) +lean::inc(x_0); +x_1033 = lean::apply_1(x_1030, x_0); +x_1034 = lean::cnstr_get(x_1033, 2); +lean::inc(x_1034); +x_1036 = lean::cnstr_get(x_1033, 0); +lean::inc(x_1036); +lean::dec(x_1033); +if (lean::obj_tag(x_1034) == 0) { -obj* x_1035; obj* x_1039; -x_1035 = lean::cnstr_get(x_1030, 0); -lean::inc(x_1035); -lean::dec(x_1030); +obj* x_1039; obj* x_1043; +x_1039 = lean::cnstr_get(x_1034, 0); +lean::inc(x_1039); +lean::dec(x_1034); lean::inc(x_1); -x_1039 = l_lean_elaborator_to__pexpr___main(x_1032, x_1, x_2); -if (lean::obj_tag(x_1039) == 0) +x_1043 = l_lean_elaborator_to__pexpr___main(x_1036, x_1, x_2); +if (lean::obj_tag(x_1043) == 0) { -obj* x_1044; obj* x_1046; obj* x_1047; +obj* x_1048; obj* x_1050; obj* x_1051; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1035); -x_1044 = lean::cnstr_get(x_1039, 0); -lean::inc(x_1044); -if (lean::is_shared(x_1039)) { - lean::dec(x_1039); - x_1046 = lean::box(0); -} else { - lean::cnstr_release(x_1039, 0); - x_1046 = x_1039; -} -if (lean::is_scalar(x_1046)) { - x_1047 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1047 = x_1046; -} -lean::cnstr_set(x_1047, 0, x_1044); -return x_1047; -} -else -{ -obj* x_1048; obj* x_1051; obj* x_1053; obj* x_1055; obj* x_1056; obj* x_1059; obj* x_1060; obj* x_1061; obj* x_1063; obj* x_1064; obj* x_1065; -x_1048 = lean::cnstr_get(x_1039, 0); -lean::inc(x_1048); lean::dec(x_1039); -x_1051 = lean::cnstr_get(x_1048, 0); -lean::inc(x_1051); -x_1053 = lean::cnstr_get(x_1048, 1); -lean::inc(x_1053); -if (lean::is_shared(x_1048)) { - lean::dec(x_1048); - x_1055 = lean::box(0); +x_1048 = lean::cnstr_get(x_1043, 0); +lean::inc(x_1048); +if (lean::is_shared(x_1043)) { + lean::dec(x_1043); + x_1050 = lean::box(0); } else { - lean::cnstr_release(x_1048, 0); - lean::cnstr_release(x_1048, 1); - x_1055 = x_1048; + lean::cnstr_release(x_1043, 0); + x_1050 = x_1043; } -x_1056 = lean::cnstr_get(x_1035, 2); -lean::inc(x_1056); -lean::dec(x_1035); -x_1059 = lean::alloc_cnstr(3, 1, 0); -lean::cnstr_set(x_1059, 0, x_1056); -x_1060 = lean::box(0); -x_1061 = l_lean_elaborator_to__pexpr___main___closed__32; -lean::inc(x_1061); -x_1063 = l_lean_kvmap_insert__core___main(x_1060, x_1061, x_1059); -x_1064 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1064, 0, x_1063); -lean::cnstr_set(x_1064, 1, x_1051); -if (lean::is_scalar(x_1055)) { - x_1065 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1050)) { + x_1051 = lean::alloc_cnstr(0, 1, 0); } else { - x_1065 = x_1055; + x_1051 = x_1050; } -lean::cnstr_set(x_1065, 0, x_1064); -lean::cnstr_set(x_1065, 1, x_1053); -x_16 = x_1065; +lean::cnstr_set(x_1051, 0, x_1048); +return x_1051; +} +else +{ +obj* x_1052; obj* x_1055; obj* x_1057; obj* x_1059; obj* x_1060; obj* x_1063; obj* x_1064; obj* x_1065; obj* x_1067; obj* x_1068; obj* x_1069; +x_1052 = lean::cnstr_get(x_1043, 0); +lean::inc(x_1052); +lean::dec(x_1043); +x_1055 = lean::cnstr_get(x_1052, 0); +lean::inc(x_1055); +x_1057 = lean::cnstr_get(x_1052, 1); +lean::inc(x_1057); +if (lean::is_shared(x_1052)) { + lean::dec(x_1052); + x_1059 = lean::box(0); +} else { + lean::cnstr_release(x_1052, 0); + lean::cnstr_release(x_1052, 1); + x_1059 = x_1052; +} +x_1060 = lean::cnstr_get(x_1039, 2); +lean::inc(x_1060); +lean::dec(x_1039); +x_1063 = lean::alloc_cnstr(3, 1, 0); +lean::cnstr_set(x_1063, 0, x_1060); +x_1064 = lean::box(0); +x_1065 = l_lean_elaborator_to__pexpr___main___closed__32; +lean::inc(x_1065); +x_1067 = l_lean_kvmap_insert__core___main(x_1064, x_1065, x_1063); +x_1068 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1068, 0, x_1067); +lean::cnstr_set(x_1068, 1, x_1055); +if (lean::is_scalar(x_1059)) { + x_1069 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1069 = x_1059; +} +lean::cnstr_set(x_1069, 0, x_1068); +lean::cnstr_set(x_1069, 1, x_1057); +x_16 = x_1069; goto lbl_17; } } else { -obj* x_1066; obj* x_1070; -x_1066 = lean::cnstr_get(x_1030, 0); -lean::inc(x_1066); -lean::dec(x_1030); +obj* x_1070; obj* x_1074; +x_1070 = lean::cnstr_get(x_1034, 0); +lean::inc(x_1070); +lean::dec(x_1034); lean::inc(x_1); -x_1070 = l_lean_elaborator_to__pexpr___main(x_1032, x_1, x_2); -if (lean::obj_tag(x_1070) == 0) +x_1074 = l_lean_elaborator_to__pexpr___main(x_1036, x_1, x_2); +if (lean::obj_tag(x_1074) == 0) { -obj* x_1075; obj* x_1077; obj* x_1078; +obj* x_1079; obj* x_1081; obj* x_1082; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1066); -x_1075 = lean::cnstr_get(x_1070, 0); -lean::inc(x_1075); -if (lean::is_shared(x_1070)) { - lean::dec(x_1070); - x_1077 = lean::box(0); -} else { - lean::cnstr_release(x_1070, 0); - x_1077 = x_1070; -} -if (lean::is_scalar(x_1077)) { - x_1078 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1078 = x_1077; -} -lean::cnstr_set(x_1078, 0, x_1075); -return x_1078; -} -else -{ -obj* x_1079; obj* x_1082; obj* x_1084; obj* x_1086; obj* x_1087; obj* x_1088; obj* x_1089; obj* x_1090; obj* x_1092; obj* x_1093; obj* x_1094; -x_1079 = lean::cnstr_get(x_1070, 0); -lean::inc(x_1079); lean::dec(x_1070); -x_1082 = lean::cnstr_get(x_1079, 0); -lean::inc(x_1082); -x_1084 = lean::cnstr_get(x_1079, 1); -lean::inc(x_1084); -if (lean::is_shared(x_1079)) { - lean::dec(x_1079); - x_1086 = lean::box(0); +x_1079 = lean::cnstr_get(x_1074, 0); +lean::inc(x_1079); +if (lean::is_shared(x_1074)) { + lean::dec(x_1074); + x_1081 = lean::box(0); } else { - lean::cnstr_release(x_1079, 0); - lean::cnstr_release(x_1079, 1); - x_1086 = x_1079; + lean::cnstr_release(x_1074, 0); + x_1081 = x_1074; } -x_1087 = l_lean_parser_number_view_to__nat___main(x_1066); -x_1088 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1088, 0, x_1087); -x_1089 = lean::box(0); -x_1090 = l_lean_elaborator_to__pexpr___main___closed__32; -lean::inc(x_1090); -x_1092 = l_lean_kvmap_insert__core___main(x_1089, x_1090, x_1088); -x_1093 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1093, 0, x_1092); -lean::cnstr_set(x_1093, 1, x_1082); -if (lean::is_scalar(x_1086)) { - x_1094 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1081)) { + x_1082 = lean::alloc_cnstr(0, 1, 0); } else { - x_1094 = x_1086; + x_1082 = x_1081; } -lean::cnstr_set(x_1094, 0, x_1093); -lean::cnstr_set(x_1094, 1, x_1084); -x_16 = x_1094; +lean::cnstr_set(x_1082, 0, x_1079); +return x_1082; +} +else +{ +obj* x_1083; obj* x_1086; obj* x_1088; obj* x_1090; obj* x_1091; obj* x_1092; obj* x_1093; obj* x_1094; obj* x_1096; obj* x_1097; obj* x_1098; +x_1083 = lean::cnstr_get(x_1074, 0); +lean::inc(x_1083); +lean::dec(x_1074); +x_1086 = lean::cnstr_get(x_1083, 0); +lean::inc(x_1086); +x_1088 = lean::cnstr_get(x_1083, 1); +lean::inc(x_1088); +if (lean::is_shared(x_1083)) { + lean::dec(x_1083); + x_1090 = lean::box(0); +} else { + lean::cnstr_release(x_1083, 0); + lean::cnstr_release(x_1083, 1); + x_1090 = x_1083; +} +x_1091 = l_lean_parser_number_view_to__nat___main(x_1070); +x_1092 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1092, 0, x_1091); +x_1093 = lean::box(0); +x_1094 = l_lean_elaborator_to__pexpr___main___closed__32; +lean::inc(x_1094); +x_1096 = l_lean_kvmap_insert__core___main(x_1093, x_1094, x_1092); +x_1097 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1097, 0, x_1096); +lean::cnstr_set(x_1097, 1, x_1086); +if (lean::is_scalar(x_1090)) { + x_1098 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1098 = x_1090; +} +lean::cnstr_set(x_1098, 0, x_1097); +lean::cnstr_set(x_1098, 1, x_1088); +x_16 = x_1098; goto lbl_17; } } @@ -9561,317 +9565,317 @@ goto lbl_17; } else { -obj* x_1096; obj* x_1097; obj* x_1100; obj* x_1101; +obj* x_1100; obj* x_1101; obj* x_1104; obj* x_1105; lean::dec(x_11); -x_1096 = l_lean_parser_term_let_has__view; -x_1097 = lean::cnstr_get(x_1096, 0); -lean::inc(x_1097); -lean::inc(x_0); -x_1100 = lean::apply_1(x_1097, x_0); -x_1101 = lean::cnstr_get(x_1100, 1); +x_1100 = l_lean_parser_term_let_has__view; +x_1101 = lean::cnstr_get(x_1100, 0); lean::inc(x_1101); -if (lean::obj_tag(x_1101) == 0) -{ -obj* x_1103; obj* x_1106; obj* x_1108; obj* x_1110; -x_1103 = lean::cnstr_get(x_1101, 0); -lean::inc(x_1103); -lean::dec(x_1101); -x_1106 = lean::cnstr_get(x_1103, 0); -lean::inc(x_1106); -x_1108 = lean::cnstr_get(x_1103, 1); -lean::inc(x_1108); -x_1110 = lean::cnstr_get(x_1103, 2); -lean::inc(x_1110); -lean::dec(x_1103); -if (lean::obj_tag(x_1108) == 0) -{ -lean::dec(x_1108); -if (lean::obj_tag(x_1110) == 0) -{ -obj* x_1117; obj* x_1121; -lean::dec(x_1100); -lean::dec(x_1106); -lean::dec(x_1110); -x_1117 = l_lean_elaborator_to__pexpr___main___closed__33; -lean::inc(x_1); -lean::inc(x_1117); lean::inc(x_0); -x_1121 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1117, x_1, x_2); -if (lean::obj_tag(x_1121) == 0) +x_1104 = lean::apply_1(x_1101, x_0); +x_1105 = lean::cnstr_get(x_1104, 1); +lean::inc(x_1105); +if (lean::obj_tag(x_1105) == 0) { -obj* x_1125; obj* x_1127; obj* x_1128; +obj* x_1107; obj* x_1110; obj* x_1112; obj* x_1114; +x_1107 = lean::cnstr_get(x_1105, 0); +lean::inc(x_1107); +lean::dec(x_1105); +x_1110 = lean::cnstr_get(x_1107, 0); +lean::inc(x_1110); +x_1112 = lean::cnstr_get(x_1107, 1); +lean::inc(x_1112); +x_1114 = lean::cnstr_get(x_1107, 2); +lean::inc(x_1114); +lean::dec(x_1107); +if (lean::obj_tag(x_1112) == 0) +{ +lean::dec(x_1112); +if (lean::obj_tag(x_1114) == 0) +{ +obj* x_1121; obj* x_1125; +lean::dec(x_1114); +lean::dec(x_1110); +lean::dec(x_1104); +x_1121 = l_lean_elaborator_to__pexpr___main___closed__33; +lean::inc(x_1); +lean::inc(x_1121); +lean::inc(x_0); +x_1125 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1121, x_1, x_2); +if (lean::obj_tag(x_1125) == 0) +{ +obj* x_1129; obj* x_1131; obj* x_1132; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1125 = lean::cnstr_get(x_1121, 0); -lean::inc(x_1125); -if (lean::is_shared(x_1121)) { - lean::dec(x_1121); - x_1127 = lean::box(0); +x_1129 = lean::cnstr_get(x_1125, 0); +lean::inc(x_1129); +if (lean::is_shared(x_1125)) { + lean::dec(x_1125); + x_1131 = lean::box(0); } else { - lean::cnstr_release(x_1121, 0); - x_1127 = x_1121; + lean::cnstr_release(x_1125, 0); + x_1131 = x_1125; } -if (lean::is_scalar(x_1127)) { - x_1128 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_1131)) { + x_1132 = lean::alloc_cnstr(0, 1, 0); } else { - x_1128 = x_1127; + x_1132 = x_1131; } -lean::cnstr_set(x_1128, 0, x_1125); -return x_1128; +lean::cnstr_set(x_1132, 0, x_1129); +return x_1132; } else { -obj* x_1129; -x_1129 = lean::cnstr_get(x_1121, 0); -lean::inc(x_1129); -lean::dec(x_1121); -x_16 = x_1129; +obj* x_1133; +x_1133 = lean::cnstr_get(x_1125, 0); +lean::inc(x_1133); +lean::dec(x_1125); +x_16 = x_1133; goto lbl_17; } } else { -obj* x_1132; obj* x_1135; obj* x_1139; -x_1132 = lean::cnstr_get(x_1110, 0); -lean::inc(x_1132); -lean::dec(x_1110); -x_1135 = lean::cnstr_get(x_1132, 1); -lean::inc(x_1135); -lean::dec(x_1132); +obj* x_1136; obj* x_1139; obj* x_1143; +x_1136 = lean::cnstr_get(x_1114, 0); +lean::inc(x_1136); +lean::dec(x_1114); +x_1139 = lean::cnstr_get(x_1136, 1); +lean::inc(x_1139); +lean::dec(x_1136); lean::inc(x_1); -x_1139 = l_lean_elaborator_to__pexpr___main(x_1135, x_1, x_2); -if (lean::obj_tag(x_1139) == 0) +x_1143 = l_lean_elaborator_to__pexpr___main(x_1139, x_1, x_2); +if (lean::obj_tag(x_1143) == 0) { -obj* x_1145; obj* x_1147; obj* x_1148; +obj* x_1149; obj* x_1151; obj* x_1152; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1100); -lean::dec(x_1106); -x_1145 = lean::cnstr_get(x_1139, 0); -lean::inc(x_1145); -if (lean::is_shared(x_1139)) { - lean::dec(x_1139); - x_1147 = lean::box(0); -} else { - lean::cnstr_release(x_1139, 0); - x_1147 = x_1139; -} -if (lean::is_scalar(x_1147)) { - x_1148 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1148 = x_1147; -} -lean::cnstr_set(x_1148, 0, x_1145); -return x_1148; -} -else -{ -obj* x_1149; obj* x_1151; obj* x_1152; obj* x_1154; obj* x_1156; obj* x_1157; obj* x_1160; -x_1149 = lean::cnstr_get(x_1139, 0); +lean::dec(x_1110); +lean::dec(x_1104); +x_1149 = lean::cnstr_get(x_1143, 0); lean::inc(x_1149); -if (lean::is_shared(x_1139)) { - lean::dec(x_1139); +if (lean::is_shared(x_1143)) { + lean::dec(x_1143); x_1151 = lean::box(0); } else { - lean::cnstr_release(x_1139, 0); - x_1151 = x_1139; + lean::cnstr_release(x_1143, 0); + x_1151 = x_1143; } -x_1152 = lean::cnstr_get(x_1149, 0); -lean::inc(x_1152); -x_1154 = lean::cnstr_get(x_1149, 1); -lean::inc(x_1154); -if (lean::is_shared(x_1149)) { - lean::dec(x_1149); - x_1156 = lean::box(0); +if (lean::is_scalar(x_1151)) { + x_1152 = lean::alloc_cnstr(0, 1, 0); } else { - lean::cnstr_release(x_1149, 0); - lean::cnstr_release(x_1149, 1); - x_1156 = x_1149; + x_1152 = x_1151; } -x_1157 = lean::cnstr_get(x_1100, 3); -lean::inc(x_1157); -lean::inc(x_1); -x_1160 = l_lean_elaborator_to__pexpr___main(x_1157, x_1, x_1154); -if (lean::obj_tag(x_1160) == 0) +lean::cnstr_set(x_1152, 0, x_1149); +return x_1152; +} +else { -obj* x_1168; obj* x_1171; +obj* x_1153; obj* x_1155; obj* x_1156; obj* x_1158; obj* x_1160; obj* x_1161; obj* x_1164; +x_1153 = lean::cnstr_get(x_1143, 0); +lean::inc(x_1153); +if (lean::is_shared(x_1143)) { + lean::dec(x_1143); + x_1155 = lean::box(0); +} else { + lean::cnstr_release(x_1143, 0); + x_1155 = x_1143; +} +x_1156 = lean::cnstr_get(x_1153, 0); +lean::inc(x_1156); +x_1158 = lean::cnstr_get(x_1153, 1); +lean::inc(x_1158); +if (lean::is_shared(x_1153)) { + lean::dec(x_1153); + x_1160 = lean::box(0); +} else { + lean::cnstr_release(x_1153, 0); + lean::cnstr_release(x_1153, 1); + x_1160 = x_1153; +} +x_1161 = lean::cnstr_get(x_1104, 3); +lean::inc(x_1161); +lean::inc(x_1); +x_1164 = l_lean_elaborator_to__pexpr___main(x_1161, x_1, x_1158); +if (lean::obj_tag(x_1164) == 0) +{ +obj* x_1172; obj* x_1175; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1156); -lean::dec(x_1100); -lean::dec(x_1106); -lean::dec(x_1152); -x_1168 = lean::cnstr_get(x_1160, 0); -lean::inc(x_1168); lean::dec(x_1160); -if (lean::is_scalar(x_1151)) { - x_1171 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1171 = x_1151; - lean::cnstr_set_tag(x_1151, 0); -} -lean::cnstr_set(x_1171, 0, x_1168); -return x_1171; -} -else -{ -obj* x_1172; obj* x_1175; obj* x_1177; obj* x_1180; obj* x_1184; -x_1172 = lean::cnstr_get(x_1160, 0); -lean::inc(x_1172); -lean::dec(x_1160); -x_1175 = lean::cnstr_get(x_1172, 0); -lean::inc(x_1175); -x_1177 = lean::cnstr_get(x_1172, 1); -lean::inc(x_1177); -lean::dec(x_1172); -x_1180 = lean::cnstr_get(x_1100, 5); -lean::inc(x_1180); -lean::dec(x_1100); -lean::inc(x_1); -x_1184 = l_lean_elaborator_to__pexpr___main(x_1180, x_1, x_1177); -if (lean::obj_tag(x_1184) == 0) -{ -obj* x_1192; obj* x_1195; -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); lean::dec(x_1156); -lean::dec(x_1175); -lean::dec(x_1106); -lean::dec(x_1152); -x_1192 = lean::cnstr_get(x_1184, 0); -lean::inc(x_1192); -lean::dec(x_1184); -if (lean::is_scalar(x_1151)) { - x_1195 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1195 = x_1151; - lean::cnstr_set_tag(x_1151, 0); -} -lean::cnstr_set(x_1195, 0, x_1192); -return x_1195; -} -else -{ -obj* x_1197; obj* x_1200; obj* x_1202; obj* x_1205; obj* x_1206; obj* x_1207; -lean::dec(x_1151); -x_1197 = lean::cnstr_get(x_1184, 0); -lean::inc(x_1197); -lean::dec(x_1184); -x_1200 = lean::cnstr_get(x_1197, 0); -lean::inc(x_1200); -x_1202 = lean::cnstr_get(x_1197, 1); -lean::inc(x_1202); -lean::dec(x_1197); -x_1205 = l_lean_elaborator_mangle__ident(x_1106); -x_1206 = lean::alloc_cnstr(8, 4, 0); -lean::cnstr_set(x_1206, 0, x_1205); -lean::cnstr_set(x_1206, 1, x_1152); -lean::cnstr_set(x_1206, 2, x_1175); -lean::cnstr_set(x_1206, 3, x_1200); -if (lean::is_scalar(x_1156)) { - x_1207 = lean::alloc_cnstr(0, 2, 0); -} else { - x_1207 = x_1156; -} -lean::cnstr_set(x_1207, 0, x_1206); -lean::cnstr_set(x_1207, 1, x_1202); -x_16 = x_1207; -goto lbl_17; -} -} -} -} -} -else -{ -obj* x_1212; obj* x_1216; -lean::dec(x_1100); -lean::dec(x_1106); lean::dec(x_1110); -lean::dec(x_1108); -x_1212 = l_lean_elaborator_to__pexpr___main___closed__33; -lean::inc(x_1); -lean::inc(x_1212); -lean::inc(x_0); -x_1216 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1212, x_1, x_2); -if (lean::obj_tag(x_1216) == 0) -{ -obj* x_1220; obj* x_1222; obj* x_1223; -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -x_1220 = lean::cnstr_get(x_1216, 0); -lean::inc(x_1220); -if (lean::is_shared(x_1216)) { - lean::dec(x_1216); - x_1222 = lean::box(0); +lean::dec(x_1104); +x_1172 = lean::cnstr_get(x_1164, 0); +lean::inc(x_1172); +lean::dec(x_1164); +if (lean::is_scalar(x_1155)) { + x_1175 = lean::alloc_cnstr(0, 1, 0); } else { - lean::cnstr_release(x_1216, 0); - x_1222 = x_1216; + x_1175 = x_1155; + lean::cnstr_set_tag(x_1155, 0); } -if (lean::is_scalar(x_1222)) { - x_1223 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1223 = x_1222; -} -lean::cnstr_set(x_1223, 0, x_1220); -return x_1223; +lean::cnstr_set(x_1175, 0, x_1172); +return x_1175; } else { -obj* x_1224; -x_1224 = lean::cnstr_get(x_1216, 0); +obj* x_1176; obj* x_1179; obj* x_1181; obj* x_1184; obj* x_1188; +x_1176 = lean::cnstr_get(x_1164, 0); +lean::inc(x_1176); +lean::dec(x_1164); +x_1179 = lean::cnstr_get(x_1176, 0); +lean::inc(x_1179); +x_1181 = lean::cnstr_get(x_1176, 1); +lean::inc(x_1181); +lean::dec(x_1176); +x_1184 = lean::cnstr_get(x_1104, 5); +lean::inc(x_1184); +lean::dec(x_1104); +lean::inc(x_1); +x_1188 = l_lean_elaborator_to__pexpr___main(x_1184, x_1, x_1181); +if (lean::obj_tag(x_1188) == 0) +{ +obj* x_1196; obj* x_1199; +lean::dec(x_1179); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_1160); +lean::dec(x_1156); +lean::dec(x_1110); +x_1196 = lean::cnstr_get(x_1188, 0); +lean::inc(x_1196); +lean::dec(x_1188); +if (lean::is_scalar(x_1155)) { + x_1199 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1199 = x_1155; + lean::cnstr_set_tag(x_1155, 0); +} +lean::cnstr_set(x_1199, 0, x_1196); +return x_1199; +} +else +{ +obj* x_1201; obj* x_1204; obj* x_1206; obj* x_1209; obj* x_1210; obj* x_1211; +lean::dec(x_1155); +x_1201 = lean::cnstr_get(x_1188, 0); +lean::inc(x_1201); +lean::dec(x_1188); +x_1204 = lean::cnstr_get(x_1201, 0); +lean::inc(x_1204); +x_1206 = lean::cnstr_get(x_1201, 1); +lean::inc(x_1206); +lean::dec(x_1201); +x_1209 = l_lean_elaborator_mangle__ident(x_1110); +x_1210 = lean::alloc_cnstr(8, 4, 0); +lean::cnstr_set(x_1210, 0, x_1209); +lean::cnstr_set(x_1210, 1, x_1156); +lean::cnstr_set(x_1210, 2, x_1179); +lean::cnstr_set(x_1210, 3, x_1204); +if (lean::is_scalar(x_1160)) { + x_1211 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1211 = x_1160; +} +lean::cnstr_set(x_1211, 0, x_1210); +lean::cnstr_set(x_1211, 1, x_1206); +x_16 = x_1211; +goto lbl_17; +} +} +} +} +} +else +{ +obj* x_1216; obj* x_1220; +lean::dec(x_1114); +lean::dec(x_1112); +lean::dec(x_1110); +lean::dec(x_1104); +x_1216 = l_lean_elaborator_to__pexpr___main___closed__33; +lean::inc(x_1); +lean::inc(x_1216); +lean::inc(x_0); +x_1220 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1216, x_1, x_2); +if (lean::obj_tag(x_1220) == 0) +{ +obj* x_1224; obj* x_1226; obj* x_1227; +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +x_1224 = lean::cnstr_get(x_1220, 0); lean::inc(x_1224); -lean::dec(x_1216); -x_16 = x_1224; +if (lean::is_shared(x_1220)) { + lean::dec(x_1220); + x_1226 = lean::box(0); +} else { + lean::cnstr_release(x_1220, 0); + x_1226 = x_1220; +} +if (lean::is_scalar(x_1226)) { + x_1227 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1227 = x_1226; +} +lean::cnstr_set(x_1227, 0, x_1224); +return x_1227; +} +else +{ +obj* x_1228; +x_1228 = lean::cnstr_get(x_1220, 0); +lean::inc(x_1228); +lean::dec(x_1220); +x_16 = x_1228; goto lbl_17; } } } else { -obj* x_1229; obj* x_1233; -lean::dec(x_1101); -lean::dec(x_1100); -x_1229 = l_lean_elaborator_to__pexpr___main___closed__33; +obj* x_1233; obj* x_1237; +lean::dec(x_1105); +lean::dec(x_1104); +x_1233 = l_lean_elaborator_to__pexpr___main___closed__33; lean::inc(x_1); -lean::inc(x_1229); +lean::inc(x_1233); lean::inc(x_0); -x_1233 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1229, x_1, x_2); -if (lean::obj_tag(x_1233) == 0) +x_1237 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1233, x_1, x_2); +if (lean::obj_tag(x_1237) == 0) { -obj* x_1237; obj* x_1239; obj* x_1240; +obj* x_1241; obj* x_1243; obj* x_1244; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1237 = lean::cnstr_get(x_1233, 0); -lean::inc(x_1237); -if (lean::is_shared(x_1233)) { - lean::dec(x_1233); - x_1239 = lean::box(0); -} else { - lean::cnstr_release(x_1233, 0); - x_1239 = x_1233; -} -if (lean::is_scalar(x_1239)) { - x_1240 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1240 = x_1239; -} -lean::cnstr_set(x_1240, 0, x_1237); -return x_1240; -} -else -{ -obj* x_1241; -x_1241 = lean::cnstr_get(x_1233, 0); +x_1241 = lean::cnstr_get(x_1237, 0); lean::inc(x_1241); -lean::dec(x_1233); -x_16 = x_1241; +if (lean::is_shared(x_1237)) { + lean::dec(x_1237); + x_1243 = lean::box(0); +} else { + lean::cnstr_release(x_1237, 0); + x_1243 = x_1237; +} +if (lean::is_scalar(x_1243)) { + x_1244 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1244 = x_1243; +} +lean::cnstr_set(x_1244, 0, x_1241); +return x_1244; +} +else +{ +obj* x_1245; +x_1245 = lean::cnstr_get(x_1237, 0); +lean::inc(x_1245); +lean::dec(x_1237); +x_16 = x_1245; goto lbl_17; } } @@ -9879,130 +9883,130 @@ goto lbl_17; } else { -obj* x_1245; obj* x_1246; obj* x_1249; obj* x_1250; obj* x_1253; +obj* x_1249; obj* x_1250; obj* x_1253; obj* x_1254; obj* x_1257; lean::dec(x_11); -x_1245 = l_lean_parser_term_show_has__view; -x_1246 = lean::cnstr_get(x_1245, 0); -lean::inc(x_1246); -lean::inc(x_0); -x_1249 = lean::apply_1(x_1246, x_0); -x_1250 = lean::cnstr_get(x_1249, 1); +x_1249 = l_lean_parser_term_show_has__view; +x_1250 = lean::cnstr_get(x_1249, 0); lean::inc(x_1250); +lean::inc(x_0); +x_1253 = lean::apply_1(x_1250, x_0); +x_1254 = lean::cnstr_get(x_1253, 1); +lean::inc(x_1254); lean::inc(x_1); -x_1253 = l_lean_elaborator_to__pexpr___main(x_1250, x_1, x_2); -if (lean::obj_tag(x_1253) == 0) +x_1257 = l_lean_elaborator_to__pexpr___main(x_1254, x_1, x_2); +if (lean::obj_tag(x_1257) == 0) { -obj* x_1258; obj* x_1260; obj* x_1261; -lean::dec(x_1249); +obj* x_1262; obj* x_1264; obj* x_1265; +lean::dec(x_1253); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1258 = lean::cnstr_get(x_1253, 0); -lean::inc(x_1258); -if (lean::is_shared(x_1253)) { - lean::dec(x_1253); - x_1260 = lean::box(0); -} else { - lean::cnstr_release(x_1253, 0); - x_1260 = x_1253; -} -if (lean::is_scalar(x_1260)) { - x_1261 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1261 = x_1260; -} -lean::cnstr_set(x_1261, 0, x_1258); -return x_1261; -} -else -{ -obj* x_1262; obj* x_1264; obj* x_1265; obj* x_1267; obj* x_1269; obj* x_1270; obj* x_1273; obj* x_1277; -x_1262 = lean::cnstr_get(x_1253, 0); +x_1262 = lean::cnstr_get(x_1257, 0); lean::inc(x_1262); -if (lean::is_shared(x_1253)) { - lean::dec(x_1253); +if (lean::is_shared(x_1257)) { + lean::dec(x_1257); x_1264 = lean::box(0); } else { - lean::cnstr_release(x_1253, 0); - x_1264 = x_1253; + lean::cnstr_release(x_1257, 0); + x_1264 = x_1257; } -x_1265 = lean::cnstr_get(x_1262, 0); -lean::inc(x_1265); -x_1267 = lean::cnstr_get(x_1262, 1); -lean::inc(x_1267); -if (lean::is_shared(x_1262)) { - lean::dec(x_1262); - x_1269 = lean::box(0); +if (lean::is_scalar(x_1264)) { + x_1265 = lean::alloc_cnstr(0, 1, 0); } else { - lean::cnstr_release(x_1262, 0); - lean::cnstr_release(x_1262, 1); - x_1269 = x_1262; + x_1265 = x_1264; } -x_1270 = lean::cnstr_get(x_1249, 3); -lean::inc(x_1270); -lean::dec(x_1249); -x_1273 = lean::cnstr_get(x_1270, 1); -lean::inc(x_1273); -lean::dec(x_1270); -lean::inc(x_1); -x_1277 = l_lean_elaborator_to__pexpr___main(x_1273, x_1, x_1267); -if (lean::obj_tag(x_1277) == 0) +lean::cnstr_set(x_1265, 0, x_1262); +return x_1265; +} +else { -obj* x_1283; obj* x_1286; -lean::dec(x_1265); +obj* x_1266; obj* x_1268; obj* x_1269; obj* x_1271; obj* x_1273; obj* x_1274; obj* x_1277; obj* x_1281; +x_1266 = lean::cnstr_get(x_1257, 0); +lean::inc(x_1266); +if (lean::is_shared(x_1257)) { + lean::dec(x_1257); + x_1268 = lean::box(0); +} else { + lean::cnstr_release(x_1257, 0); + x_1268 = x_1257; +} +x_1269 = lean::cnstr_get(x_1266, 0); +lean::inc(x_1269); +x_1271 = lean::cnstr_get(x_1266, 1); +lean::inc(x_1271); +if (lean::is_shared(x_1266)) { + lean::dec(x_1266); + x_1273 = lean::box(0); +} else { + lean::cnstr_release(x_1266, 0); + lean::cnstr_release(x_1266, 1); + x_1273 = x_1266; +} +x_1274 = lean::cnstr_get(x_1253, 3); +lean::inc(x_1274); +lean::dec(x_1253); +x_1277 = lean::cnstr_get(x_1274, 1); +lean::inc(x_1277); +lean::dec(x_1274); +lean::inc(x_1); +x_1281 = l_lean_elaborator_to__pexpr___main(x_1277, x_1, x_1271); +if (lean::obj_tag(x_1281) == 0) +{ +obj* x_1287; obj* x_1290; +lean::dec(x_1273); lean::dec(x_1269); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1283 = lean::cnstr_get(x_1277, 0); -lean::inc(x_1283); -lean::dec(x_1277); -if (lean::is_scalar(x_1264)) { - x_1286 = lean::alloc_cnstr(0, 1, 0); +x_1287 = lean::cnstr_get(x_1281, 0); +lean::inc(x_1287); +lean::dec(x_1281); +if (lean::is_scalar(x_1268)) { + x_1290 = lean::alloc_cnstr(0, 1, 0); } else { - x_1286 = x_1264; - lean::cnstr_set_tag(x_1264, 0); + x_1290 = x_1268; + lean::cnstr_set_tag(x_1268, 0); } -lean::cnstr_set(x_1286, 0, x_1283); -return x_1286; +lean::cnstr_set(x_1290, 0, x_1287); +return x_1290; } else { -obj* x_1288; obj* x_1291; obj* x_1293; obj* x_1296; uint8 x_1297; obj* x_1298; obj* x_1301; obj* x_1302; obj* x_1303; obj* x_1304; obj* x_1306; obj* x_1307; -lean::dec(x_1264); -x_1288 = lean::cnstr_get(x_1277, 0); -lean::inc(x_1288); -lean::dec(x_1277); -x_1291 = lean::cnstr_get(x_1288, 0); -lean::inc(x_1291); -x_1293 = lean::cnstr_get(x_1288, 1); -lean::inc(x_1293); -lean::dec(x_1288); -x_1296 = l_lean_elaborator_to__pexpr___main___closed__34; -x_1297 = 0; -x_1298 = l_lean_elaborator_to__pexpr___main___closed__35; -lean::inc(x_1298); -lean::inc(x_1296); -x_1301 = lean::alloc_cnstr(6, 3, 1); -lean::cnstr_set(x_1301, 0, x_1296); -lean::cnstr_set(x_1301, 1, x_1265); -lean::cnstr_set(x_1301, 2, x_1298); -lean::cnstr_set_scalar(x_1301, sizeof(void*)*3, x_1297); -x_1302 = x_1301; -x_1303 = lean::alloc_cnstr(5, 2, 0); -lean::cnstr_set(x_1303, 0, x_1302); -lean::cnstr_set(x_1303, 1, x_1291); -x_1304 = l_lean_elaborator_to__pexpr___main___closed__36; -lean::inc(x_1304); -x_1306 = l_lean_elaborator_expr_mk__annotation(x_1304, x_1303); -if (lean::is_scalar(x_1269)) { - x_1307 = lean::alloc_cnstr(0, 2, 0); -} else { - x_1307 = x_1269; -} +obj* x_1292; obj* x_1295; obj* x_1297; obj* x_1300; uint8 x_1301; obj* x_1302; obj* x_1305; obj* x_1306; obj* x_1307; obj* x_1308; obj* x_1310; obj* x_1311; +lean::dec(x_1268); +x_1292 = lean::cnstr_get(x_1281, 0); +lean::inc(x_1292); +lean::dec(x_1281); +x_1295 = lean::cnstr_get(x_1292, 0); +lean::inc(x_1295); +x_1297 = lean::cnstr_get(x_1292, 1); +lean::inc(x_1297); +lean::dec(x_1292); +x_1300 = l_lean_elaborator_to__pexpr___main___closed__34; +x_1301 = 0; +x_1302 = l_lean_elaborator_to__pexpr___main___closed__35; +lean::inc(x_1302); +lean::inc(x_1300); +x_1305 = lean::alloc_cnstr(6, 3, 1); +lean::cnstr_set(x_1305, 0, x_1300); +lean::cnstr_set(x_1305, 1, x_1269); +lean::cnstr_set(x_1305, 2, x_1302); +lean::cnstr_set_scalar(x_1305, sizeof(void*)*3, x_1301); +x_1306 = x_1305; +x_1307 = lean::alloc_cnstr(5, 2, 0); lean::cnstr_set(x_1307, 0, x_1306); -lean::cnstr_set(x_1307, 1, x_1293); -x_16 = x_1307; +lean::cnstr_set(x_1307, 1, x_1295); +x_1308 = l_lean_elaborator_to__pexpr___main___closed__36; +lean::inc(x_1308); +x_1310 = l_lean_elaborator_expr_mk__annotation(x_1308, x_1307); +if (lean::is_scalar(x_1273)) { + x_1311 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1311 = x_1273; +} +lean::cnstr_set(x_1311, 0, x_1310); +lean::cnstr_set(x_1311, 1, x_1297); +x_16 = x_1311; goto lbl_17; } } @@ -10010,277 +10014,277 @@ goto lbl_17; } else { -obj* x_1309; obj* x_1310; obj* x_1313; obj* x_1314; obj* x_1316; obj* x_1319; +obj* x_1313; obj* x_1314; obj* x_1317; obj* x_1318; obj* x_1320; obj* x_1323; lean::dec(x_11); -x_1309 = l_lean_parser_term_have_has__view; -x_1310 = lean::cnstr_get(x_1309, 0); -lean::inc(x_1310); +x_1313 = l_lean_parser_term_have_has__view; +x_1314 = lean::cnstr_get(x_1313, 0); +lean::inc(x_1314); lean::inc(x_0); -x_1313 = lean::apply_1(x_1310, x_0); -x_1316 = lean::cnstr_get(x_1313, 2); -lean::inc(x_1316); +x_1317 = lean::apply_1(x_1314, x_0); +x_1320 = lean::cnstr_get(x_1317, 2); +lean::inc(x_1320); lean::inc(x_1); -x_1319 = l_lean_elaborator_to__pexpr___main(x_1316, x_1, x_2); -if (lean::obj_tag(x_1319) == 0) +x_1323 = l_lean_elaborator_to__pexpr___main(x_1320, x_1, x_2); +if (lean::obj_tag(x_1323) == 0) { -obj* x_1324; obj* x_1326; obj* x_1327; -lean::dec(x_1313); +obj* x_1328; obj* x_1330; obj* x_1331; +lean::dec(x_1317); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1324 = lean::cnstr_get(x_1319, 0); -lean::inc(x_1324); -if (lean::is_shared(x_1319)) { - lean::dec(x_1319); - x_1326 = lean::box(0); -} else { - lean::cnstr_release(x_1319, 0); - x_1326 = x_1319; -} -if (lean::is_scalar(x_1326)) { - x_1327 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1327 = x_1326; -} -lean::cnstr_set(x_1327, 0, x_1324); -return x_1327; -} -else -{ -obj* x_1328; obj* x_1330; obj* x_1331; obj* x_1333; obj* x_1335; obj* x_1336; obj* x_1339; -x_1328 = lean::cnstr_get(x_1319, 0); +x_1328 = lean::cnstr_get(x_1323, 0); lean::inc(x_1328); -if (lean::is_shared(x_1319)) { - lean::dec(x_1319); +if (lean::is_shared(x_1323)) { + lean::dec(x_1323); x_1330 = lean::box(0); } else { - lean::cnstr_release(x_1319, 0); - x_1330 = x_1319; + lean::cnstr_release(x_1323, 0); + x_1330 = x_1323; } -x_1331 = lean::cnstr_get(x_1328, 0); -lean::inc(x_1331); -x_1333 = lean::cnstr_get(x_1328, 1); -lean::inc(x_1333); -if (lean::is_shared(x_1328)) { - lean::dec(x_1328); - x_1335 = lean::box(0); -} else { - lean::cnstr_release(x_1328, 0); - lean::cnstr_release(x_1328, 1); - x_1335 = x_1328; -} -x_1336 = lean::cnstr_get(x_1313, 5); -lean::inc(x_1336); -lean::inc(x_1); -x_1339 = l_lean_elaborator_to__pexpr___main(x_1336, x_1, x_1333); -if (lean::obj_tag(x_1339) == 0) -{ -obj* x_1346; obj* x_1349; -lean::dec(x_1313); -lean::dec(x_1335); -lean::dec(x_1331); -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -x_1346 = lean::cnstr_get(x_1339, 0); -lean::inc(x_1346); -lean::dec(x_1339); if (lean::is_scalar(x_1330)) { - x_1349 = lean::alloc_cnstr(0, 1, 0); + x_1331 = lean::alloc_cnstr(0, 1, 0); } else { - x_1349 = x_1330; - lean::cnstr_set_tag(x_1330, 0); + x_1331 = x_1330; } -lean::cnstr_set(x_1349, 0, x_1346); -return x_1349; +lean::cnstr_set(x_1331, 0, x_1328); +return x_1331; } else { -obj* x_1351; obj* x_1354; obj* x_1356; obj* x_1359; obj* x_1361; obj* x_1363; obj* x_1364; obj* x_1366; obj* x_1367; obj* x_1369; uint8 x_1370; obj* x_1371; obj* x_1372; obj* x_1373; -lean::dec(x_1330); -x_1351 = lean::cnstr_get(x_1339, 0); -lean::inc(x_1351); +obj* x_1332; obj* x_1334; obj* x_1335; obj* x_1337; obj* x_1339; obj* x_1340; obj* x_1343; +x_1332 = lean::cnstr_get(x_1323, 0); +lean::inc(x_1332); +if (lean::is_shared(x_1323)) { + lean::dec(x_1323); + x_1334 = lean::box(0); +} else { + lean::cnstr_release(x_1323, 0); + x_1334 = x_1323; +} +x_1335 = lean::cnstr_get(x_1332, 0); +lean::inc(x_1335); +x_1337 = lean::cnstr_get(x_1332, 1); +lean::inc(x_1337); +if (lean::is_shared(x_1332)) { + lean::dec(x_1332); + x_1339 = lean::box(0); +} else { + lean::cnstr_release(x_1332, 0); + lean::cnstr_release(x_1332, 1); + x_1339 = x_1332; +} +x_1340 = lean::cnstr_get(x_1317, 5); +lean::inc(x_1340); +lean::inc(x_1); +x_1343 = l_lean_elaborator_to__pexpr___main(x_1340, x_1, x_1337); +if (lean::obj_tag(x_1343) == 0) +{ +obj* x_1350; obj* x_1353; +lean::dec(x_1335); lean::dec(x_1339); -x_1354 = lean::cnstr_get(x_1351, 0); -lean::inc(x_1354); -x_1356 = lean::cnstr_get(x_1351, 1); -lean::inc(x_1356); -lean::dec(x_1351); -x_1359 = lean::cnstr_get(x_1313, 1); -lean::inc(x_1359); -x_1361 = l_lean_elaborator_to__pexpr___main___closed__38; -lean::inc(x_1361); -x_1363 = l_option_map___rarg(x_1361, x_1359); -x_1364 = l_lean_elaborator_to__pexpr___main___closed__27; -lean::inc(x_1364); -x_1366 = l_option_map___rarg(x_1364, x_1363); -x_1367 = l_lean_elaborator_to__pexpr___main___closed__34; -lean::inc(x_1367); -x_1369 = l_option_get__or__else___main___rarg(x_1366, x_1367); -x_1370 = 0; -x_1371 = lean::alloc_cnstr(6, 3, 1); -lean::cnstr_set(x_1371, 0, x_1369); -lean::cnstr_set(x_1371, 1, x_1331); -lean::cnstr_set(x_1371, 2, x_1354); -lean::cnstr_set_scalar(x_1371, sizeof(void*)*3, x_1370); -x_1372 = x_1371; -if (lean::is_scalar(x_1335)) { - x_1373 = lean::alloc_cnstr(0, 2, 0); +lean::dec(x_1317); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +x_1350 = lean::cnstr_get(x_1343, 0); +lean::inc(x_1350); +lean::dec(x_1343); +if (lean::is_scalar(x_1334)) { + x_1353 = lean::alloc_cnstr(0, 1, 0); } else { - x_1373 = x_1335; + x_1353 = x_1334; + lean::cnstr_set_tag(x_1334, 0); } -lean::cnstr_set(x_1373, 0, x_1372); -lean::cnstr_set(x_1373, 1, x_1356); -x_1314 = x_1373; -goto lbl_1315; +lean::cnstr_set(x_1353, 0, x_1350); +return x_1353; } -} -lbl_1315: +else { -obj* x_1374; obj* x_1376; obj* x_1378; obj* x_1379; -x_1374 = lean::cnstr_get(x_1314, 0); -lean::inc(x_1374); -x_1376 = lean::cnstr_get(x_1314, 1); -lean::inc(x_1376); -if (lean::is_shared(x_1314)) { - lean::dec(x_1314); - x_1378 = lean::box(0); +obj* x_1355; obj* x_1358; obj* x_1360; obj* x_1363; obj* x_1365; obj* x_1367; obj* x_1368; obj* x_1370; obj* x_1371; obj* x_1373; uint8 x_1374; obj* x_1375; obj* x_1376; obj* x_1377; +lean::dec(x_1334); +x_1355 = lean::cnstr_get(x_1343, 0); +lean::inc(x_1355); +lean::dec(x_1343); +x_1358 = lean::cnstr_get(x_1355, 0); +lean::inc(x_1358); +x_1360 = lean::cnstr_get(x_1355, 1); +lean::inc(x_1360); +lean::dec(x_1355); +x_1363 = lean::cnstr_get(x_1317, 1); +lean::inc(x_1363); +x_1365 = l_lean_elaborator_to__pexpr___main___closed__38; +lean::inc(x_1365); +x_1367 = l_option_map___rarg(x_1365, x_1363); +x_1368 = l_lean_elaborator_to__pexpr___main___closed__27; +lean::inc(x_1368); +x_1370 = l_option_map___rarg(x_1368, x_1367); +x_1371 = l_lean_elaborator_to__pexpr___main___closed__34; +lean::inc(x_1371); +x_1373 = l_option_get__or__else___main___rarg(x_1370, x_1371); +x_1374 = 0; +x_1375 = lean::alloc_cnstr(6, 3, 1); +lean::cnstr_set(x_1375, 0, x_1373); +lean::cnstr_set(x_1375, 1, x_1335); +lean::cnstr_set(x_1375, 2, x_1358); +lean::cnstr_set_scalar(x_1375, sizeof(void*)*3, x_1374); +x_1376 = x_1375; +if (lean::is_scalar(x_1339)) { + x_1377 = lean::alloc_cnstr(0, 2, 0); } else { - lean::cnstr_release(x_1314, 0); - lean::cnstr_release(x_1314, 1); - x_1378 = x_1314; + x_1377 = x_1339; } -x_1379 = lean::cnstr_get(x_1313, 3); -lean::inc(x_1379); -lean::dec(x_1313); -if (lean::obj_tag(x_1379) == 0) +lean::cnstr_set(x_1377, 0, x_1376); +lean::cnstr_set(x_1377, 1, x_1360); +x_1318 = x_1377; +goto lbl_1319; +} +} +lbl_1319: { -obj* x_1382; obj* x_1385; obj* x_1389; -x_1382 = lean::cnstr_get(x_1379, 0); -lean::inc(x_1382); -lean::dec(x_1379); -x_1385 = lean::cnstr_get(x_1382, 1); -lean::inc(x_1385); +obj* x_1378; obj* x_1380; obj* x_1382; obj* x_1383; +x_1378 = lean::cnstr_get(x_1318, 0); +lean::inc(x_1378); +x_1380 = lean::cnstr_get(x_1318, 1); +lean::inc(x_1380); +if (lean::is_shared(x_1318)) { + lean::dec(x_1318); + x_1382 = lean::box(0); +} else { + lean::cnstr_release(x_1318, 0); + lean::cnstr_release(x_1318, 1); + x_1382 = x_1318; +} +x_1383 = lean::cnstr_get(x_1317, 3); +lean::inc(x_1383); +lean::dec(x_1317); +if (lean::obj_tag(x_1383) == 0) +{ +obj* x_1386; obj* x_1389; obj* x_1393; +x_1386 = lean::cnstr_get(x_1383, 0); +lean::inc(x_1386); +lean::dec(x_1383); +x_1389 = lean::cnstr_get(x_1386, 1); +lean::inc(x_1389); +lean::dec(x_1386); +lean::inc(x_1); +x_1393 = l_lean_elaborator_to__pexpr___main(x_1389, x_1, x_1380); +if (lean::obj_tag(x_1393) == 0) +{ +obj* x_1399; obj* x_1401; obj* x_1402; +lean::dec(x_1378); lean::dec(x_1382); -lean::inc(x_1); -x_1389 = l_lean_elaborator_to__pexpr___main(x_1385, x_1, x_1376); -if (lean::obj_tag(x_1389) == 0) -{ -obj* x_1395; obj* x_1397; obj* x_1398; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1378); -lean::dec(x_1374); -x_1395 = lean::cnstr_get(x_1389, 0); -lean::inc(x_1395); -if (lean::is_shared(x_1389)) { - lean::dec(x_1389); - x_1397 = lean::box(0); -} else { - lean::cnstr_release(x_1389, 0); - x_1397 = x_1389; -} -if (lean::is_scalar(x_1397)) { - x_1398 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1398 = x_1397; -} -lean::cnstr_set(x_1398, 0, x_1395); -return x_1398; -} -else -{ -obj* x_1399; obj* x_1402; obj* x_1404; obj* x_1407; obj* x_1409; obj* x_1410; obj* x_1411; -x_1399 = lean::cnstr_get(x_1389, 0); +x_1399 = lean::cnstr_get(x_1393, 0); lean::inc(x_1399); -lean::dec(x_1389); -x_1402 = lean::cnstr_get(x_1399, 0); -lean::inc(x_1402); -x_1404 = lean::cnstr_get(x_1399, 1); -lean::inc(x_1404); -lean::dec(x_1399); -x_1407 = l_lean_elaborator_to__pexpr___main___closed__37; -lean::inc(x_1407); -x_1409 = l_lean_elaborator_expr_mk__annotation(x_1407, x_1374); -x_1410 = lean::alloc_cnstr(5, 2, 0); -lean::cnstr_set(x_1410, 0, x_1409); -lean::cnstr_set(x_1410, 1, x_1402); -if (lean::is_scalar(x_1378)) { - x_1411 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_shared(x_1393)) { + lean::dec(x_1393); + x_1401 = lean::box(0); } else { - x_1411 = x_1378; + lean::cnstr_release(x_1393, 0); + x_1401 = x_1393; } -lean::cnstr_set(x_1411, 0, x_1410); -lean::cnstr_set(x_1411, 1, x_1404); -x_16 = x_1411; +if (lean::is_scalar(x_1401)) { + x_1402 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1402 = x_1401; +} +lean::cnstr_set(x_1402, 0, x_1399); +return x_1402; +} +else +{ +obj* x_1403; obj* x_1406; obj* x_1408; obj* x_1411; obj* x_1413; obj* x_1414; obj* x_1415; +x_1403 = lean::cnstr_get(x_1393, 0); +lean::inc(x_1403); +lean::dec(x_1393); +x_1406 = lean::cnstr_get(x_1403, 0); +lean::inc(x_1406); +x_1408 = lean::cnstr_get(x_1403, 1); +lean::inc(x_1408); +lean::dec(x_1403); +x_1411 = l_lean_elaborator_to__pexpr___main___closed__37; +lean::inc(x_1411); +x_1413 = l_lean_elaborator_expr_mk__annotation(x_1411, x_1378); +x_1414 = lean::alloc_cnstr(5, 2, 0); +lean::cnstr_set(x_1414, 0, x_1413); +lean::cnstr_set(x_1414, 1, x_1406); +if (lean::is_scalar(x_1382)) { + x_1415 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1415 = x_1382; +} +lean::cnstr_set(x_1415, 0, x_1414); +lean::cnstr_set(x_1415, 1, x_1408); +x_16 = x_1415; goto lbl_17; } } else { -obj* x_1412; obj* x_1415; obj* x_1418; obj* x_1422; -x_1412 = lean::cnstr_get(x_1379, 0); -lean::inc(x_1412); -lean::dec(x_1379); -x_1415 = lean::cnstr_get(x_1412, 1); -lean::inc(x_1415); -lean::dec(x_1412); -x_1418 = lean::cnstr_get(x_1415, 1); -lean::inc(x_1418); -lean::dec(x_1415); +obj* x_1416; obj* x_1419; obj* x_1422; obj* x_1426; +x_1416 = lean::cnstr_get(x_1383, 0); +lean::inc(x_1416); +lean::dec(x_1383); +x_1419 = lean::cnstr_get(x_1416, 1); +lean::inc(x_1419); +lean::dec(x_1416); +x_1422 = lean::cnstr_get(x_1419, 1); +lean::inc(x_1422); +lean::dec(x_1419); lean::inc(x_1); -x_1422 = l_lean_elaborator_to__pexpr___main(x_1418, x_1, x_1376); -if (lean::obj_tag(x_1422) == 0) +x_1426 = l_lean_elaborator_to__pexpr___main(x_1422, x_1, x_1380); +if (lean::obj_tag(x_1426) == 0) { -obj* x_1428; obj* x_1430; obj* x_1431; -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); +obj* x_1432; obj* x_1434; obj* x_1435; lean::dec(x_1378); -lean::dec(x_1374); -x_1428 = lean::cnstr_get(x_1422, 0); -lean::inc(x_1428); -if (lean::is_shared(x_1422)) { - lean::dec(x_1422); - x_1430 = lean::box(0); -} else { - lean::cnstr_release(x_1422, 0); - x_1430 = x_1422; -} -if (lean::is_scalar(x_1430)) { - x_1431 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1431 = x_1430; -} -lean::cnstr_set(x_1431, 0, x_1428); -return x_1431; -} -else -{ -obj* x_1432; obj* x_1435; obj* x_1437; obj* x_1440; obj* x_1442; obj* x_1443; obj* x_1444; -x_1432 = lean::cnstr_get(x_1422, 0); +lean::dec(x_1382); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +x_1432 = lean::cnstr_get(x_1426, 0); lean::inc(x_1432); -lean::dec(x_1422); -x_1435 = lean::cnstr_get(x_1432, 0); -lean::inc(x_1435); -x_1437 = lean::cnstr_get(x_1432, 1); -lean::inc(x_1437); -lean::dec(x_1432); -x_1440 = l_lean_elaborator_to__pexpr___main___closed__37; -lean::inc(x_1440); -x_1442 = l_lean_elaborator_expr_mk__annotation(x_1440, x_1374); -x_1443 = lean::alloc_cnstr(5, 2, 0); -lean::cnstr_set(x_1443, 0, x_1442); -lean::cnstr_set(x_1443, 1, x_1435); -if (lean::is_scalar(x_1378)) { - x_1444 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_shared(x_1426)) { + lean::dec(x_1426); + x_1434 = lean::box(0); } else { - x_1444 = x_1378; + lean::cnstr_release(x_1426, 0); + x_1434 = x_1426; } -lean::cnstr_set(x_1444, 0, x_1443); -lean::cnstr_set(x_1444, 1, x_1437); -x_16 = x_1444; +if (lean::is_scalar(x_1434)) { + x_1435 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1435 = x_1434; +} +lean::cnstr_set(x_1435, 0, x_1432); +return x_1435; +} +else +{ +obj* x_1436; obj* x_1439; obj* x_1441; obj* x_1444; obj* x_1446; obj* x_1447; obj* x_1448; +x_1436 = lean::cnstr_get(x_1426, 0); +lean::inc(x_1436); +lean::dec(x_1426); +x_1439 = lean::cnstr_get(x_1436, 0); +lean::inc(x_1439); +x_1441 = lean::cnstr_get(x_1436, 1); +lean::inc(x_1441); +lean::dec(x_1436); +x_1444 = l_lean_elaborator_to__pexpr___main___closed__37; +lean::inc(x_1444); +x_1446 = l_lean_elaborator_expr_mk__annotation(x_1444, x_1378); +x_1447 = lean::alloc_cnstr(5, 2, 0); +lean::cnstr_set(x_1447, 0, x_1446); +lean::cnstr_set(x_1447, 1, x_1439); +if (lean::is_scalar(x_1382)) { + x_1448 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1448 = x_1382; +} +lean::cnstr_set(x_1448, 0, x_1447); +lean::cnstr_set(x_1448, 1, x_1441); +x_16 = x_1448; goto lbl_17; } } @@ -10293,290 +10297,290 @@ lean::dec(x_11); lean::dec(x_9); if (x_23 == 0) { -obj* x_1447; -x_1447 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_1447) == 0) +obj* x_1451; +x_1451 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_1451) == 0) { -obj* x_1450; obj* x_1452; obj* x_1453; +obj* x_1454; obj* x_1456; obj* x_1457; lean::dec(x_1); -lean::dec(x_1447); -x_1450 = l_lean_elaborator_to__pexpr___main___closed__39; -lean::inc(x_1450); -x_1452 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1452, 0, x_1450); -lean::cnstr_set(x_1452, 1, x_2); -x_1453 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1453, 0, x_1452); -return x_1453; -} -else -{ -obj* x_1454; obj* x_1457; obj* x_1460; obj* x_1463; obj* x_1464; obj* x_1465; obj* x_1467; obj* x_1469; obj* x_1470; obj* x_1473; obj* x_1475; obj* x_1476; obj* x_1478; obj* x_1479; obj* x_1480; -x_1454 = lean::cnstr_get(x_1447, 0); +lean::dec(x_1451); +x_1454 = l_lean_elaborator_to__pexpr___main___closed__39; lean::inc(x_1454); -lean::dec(x_1447); -x_1457 = lean::cnstr_get(x_1, 0); -lean::inc(x_1457); +x_1456 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1456, 0, x_1454); +lean::cnstr_set(x_1456, 1, x_2); +x_1457 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1457, 0, x_1456); +return x_1457; +} +else +{ +obj* x_1458; obj* x_1461; obj* x_1464; obj* x_1467; obj* x_1468; obj* x_1469; obj* x_1471; obj* x_1473; obj* x_1474; obj* x_1477; obj* x_1479; obj* x_1480; obj* x_1482; obj* x_1483; obj* x_1484; +x_1458 = lean::cnstr_get(x_1451, 0); +lean::inc(x_1458); +lean::dec(x_1451); +x_1461 = lean::cnstr_get(x_1, 0); +lean::inc(x_1461); lean::dec(x_1); -x_1460 = lean::cnstr_get(x_1457, 2); -lean::inc(x_1460); -lean::dec(x_1457); -x_1463 = l_lean_file__map_to__position(x_1460, x_1454); -x_1464 = lean::box(0); -x_1465 = lean::cnstr_get(x_1463, 1); -lean::inc(x_1465); -x_1467 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_1467); -x_1469 = l_lean_kvmap_set__nat(x_1464, x_1467, x_1465); -x_1470 = lean::cnstr_get(x_1463, 0); -lean::inc(x_1470); -lean::dec(x_1463); -x_1473 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_1473); -x_1475 = l_lean_kvmap_set__nat(x_1469, x_1473, x_1470); -x_1476 = l_lean_elaborator_to__pexpr___main___closed__39; -lean::inc(x_1476); -x_1478 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1478, 0, x_1475); -lean::cnstr_set(x_1478, 1, x_1476); -x_1479 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1479, 0, x_1478); -lean::cnstr_set(x_1479, 1, x_2); -x_1480 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1480, 0, x_1479); -return x_1480; +x_1464 = lean::cnstr_get(x_1461, 2); +lean::inc(x_1464); +lean::dec(x_1461); +x_1467 = l_lean_file__map_to__position(x_1464, x_1458); +x_1468 = lean::box(0); +x_1469 = lean::cnstr_get(x_1467, 1); +lean::inc(x_1469); +x_1471 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_1471); +x_1473 = l_lean_kvmap_set__nat(x_1468, x_1471, x_1469); +x_1474 = lean::cnstr_get(x_1467, 0); +lean::inc(x_1474); +lean::dec(x_1467); +x_1477 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_1477); +x_1479 = l_lean_kvmap_set__nat(x_1473, x_1477, x_1474); +x_1480 = l_lean_elaborator_to__pexpr___main___closed__39; +lean::inc(x_1480); +x_1482 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1482, 0, x_1479); +lean::cnstr_set(x_1482, 1, x_1480); +x_1483 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1483, 0, x_1482); +lean::cnstr_set(x_1483, 1, x_2); +x_1484 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1484, 0, x_1483); +return x_1484; } } else { -obj* x_1483; obj* x_1485; obj* x_1486; +obj* x_1487; obj* x_1489; obj* x_1490; lean::dec(x_1); lean::dec(x_0); -x_1483 = l_lean_elaborator_to__pexpr___main___closed__39; -lean::inc(x_1483); -x_1485 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1485, 0, x_1483); -lean::cnstr_set(x_1485, 1, x_2); -x_1486 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1486, 0, x_1485); -return x_1486; +x_1487 = l_lean_elaborator_to__pexpr___main___closed__39; +lean::inc(x_1487); +x_1489 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1489, 0, x_1487); +lean::cnstr_set(x_1489, 1, x_2); +x_1490 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1490, 0, x_1489); +return x_1490; } } } else { -obj* x_1488; obj* x_1489; obj* x_1492; obj* x_1493; obj* x_1496; obj* x_1497; obj* x_1499; obj* x_1501; +obj* x_1492; obj* x_1493; obj* x_1496; obj* x_1497; obj* x_1500; obj* x_1501; obj* x_1503; obj* x_1505; lean::dec(x_11); -x_1488 = l_lean_parser_term_anonymous__constructor_has__view; -x_1489 = lean::cnstr_get(x_1488, 0); -lean::inc(x_1489); -lean::inc(x_0); -x_1492 = lean::apply_1(x_1489, x_0); -x_1493 = lean::cnstr_get(x_1492, 1); +x_1492 = l_lean_parser_term_anonymous__constructor_has__view; +x_1493 = lean::cnstr_get(x_1492, 0); lean::inc(x_1493); -lean::dec(x_1492); -x_1496 = l_list_map___main___at_lean_elaborator_to__pexpr___main___spec__21(x_1493); -x_1497 = l_lean_expander_get__opt__type___main___closed__1; +lean::inc(x_0); +x_1496 = lean::apply_1(x_1493, x_0); +x_1497 = lean::cnstr_get(x_1496, 1); lean::inc(x_1497); -x_1499 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_1497, x_1496); +lean::dec(x_1496); +x_1500 = l_list_map___main___at_lean_elaborator_to__pexpr___main___spec__21(x_1497); +x_1501 = l_lean_expander_get__opt__type___main___closed__1; +lean::inc(x_1501); +x_1503 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_1501, x_1500); lean::inc(x_1); -x_1501 = l_lean_elaborator_to__pexpr___main(x_1499, x_1, x_2); -if (lean::obj_tag(x_1501) == 0) +x_1505 = l_lean_elaborator_to__pexpr___main(x_1503, x_1, x_2); +if (lean::obj_tag(x_1505) == 0) { -obj* x_1505; obj* x_1507; obj* x_1508; +obj* x_1509; obj* x_1511; obj* x_1512; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1505 = lean::cnstr_get(x_1501, 0); -lean::inc(x_1505); -if (lean::is_shared(x_1501)) { - lean::dec(x_1501); - x_1507 = lean::box(0); -} else { - lean::cnstr_release(x_1501, 0); - x_1507 = x_1501; -} -if (lean::is_scalar(x_1507)) { - x_1508 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1508 = x_1507; -} -lean::cnstr_set(x_1508, 0, x_1505); -return x_1508; -} -else -{ -obj* x_1509; obj* x_1512; obj* x_1514; obj* x_1516; obj* x_1517; obj* x_1519; obj* x_1520; -x_1509 = lean::cnstr_get(x_1501, 0); +x_1509 = lean::cnstr_get(x_1505, 0); lean::inc(x_1509); -lean::dec(x_1501); -x_1512 = lean::cnstr_get(x_1509, 0); -lean::inc(x_1512); -x_1514 = lean::cnstr_get(x_1509, 1); -lean::inc(x_1514); -if (lean::is_shared(x_1509)) { - lean::dec(x_1509); - x_1516 = lean::box(0); +if (lean::is_shared(x_1505)) { + lean::dec(x_1505); + x_1511 = lean::box(0); } else { - lean::cnstr_release(x_1509, 0); - lean::cnstr_release(x_1509, 1); - x_1516 = x_1509; + lean::cnstr_release(x_1505, 0); + x_1511 = x_1505; } -x_1517 = l_lean_elaborator_to__pexpr___main___closed__40; -lean::inc(x_1517); -x_1519 = l_lean_elaborator_expr_mk__annotation(x_1517, x_1512); -if (lean::is_scalar(x_1516)) { - x_1520 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1511)) { + x_1512 = lean::alloc_cnstr(0, 1, 0); } else { - x_1520 = x_1516; + x_1512 = x_1511; } -lean::cnstr_set(x_1520, 0, x_1519); -lean::cnstr_set(x_1520, 1, x_1514); -x_16 = x_1520; +lean::cnstr_set(x_1512, 0, x_1509); +return x_1512; +} +else +{ +obj* x_1513; obj* x_1516; obj* x_1518; obj* x_1520; obj* x_1521; obj* x_1523; obj* x_1524; +x_1513 = lean::cnstr_get(x_1505, 0); +lean::inc(x_1513); +lean::dec(x_1505); +x_1516 = lean::cnstr_get(x_1513, 0); +lean::inc(x_1516); +x_1518 = lean::cnstr_get(x_1513, 1); +lean::inc(x_1518); +if (lean::is_shared(x_1513)) { + lean::dec(x_1513); + x_1520 = lean::box(0); +} else { + lean::cnstr_release(x_1513, 0); + lean::cnstr_release(x_1513, 1); + x_1520 = x_1513; +} +x_1521 = l_lean_elaborator_to__pexpr___main___closed__40; +lean::inc(x_1521); +x_1523 = l_lean_elaborator_expr_mk__annotation(x_1521, x_1516); +if (lean::is_scalar(x_1520)) { + x_1524 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1524 = x_1520; +} +lean::cnstr_set(x_1524, 0, x_1523); +lean::cnstr_set(x_1524, 1, x_1518); +x_16 = x_1524; goto lbl_17; } } } else { -obj* x_1522; obj* x_1523; obj* x_1526; obj* x_1527; obj* x_1528; obj* x_1530; obj* x_1532; +obj* x_1526; obj* x_1527; obj* x_1530; obj* x_1531; obj* x_1532; obj* x_1534; obj* x_1536; lean::dec(x_11); -x_1522 = l_lean_parser_term_sort__app_has__view; -x_1523 = lean::cnstr_get(x_1522, 0); -lean::inc(x_1523); +x_1526 = l_lean_parser_term_sort__app_has__view; +x_1527 = lean::cnstr_get(x_1526, 0); +lean::inc(x_1527); lean::inc(x_0); -x_1526 = lean::apply_1(x_1523, x_0); -x_1527 = l_lean_parser_term_sort_has__view; -x_1528 = lean::cnstr_get(x_1527, 0); -lean::inc(x_1528); -x_1530 = lean::cnstr_get(x_1526, 0); -lean::inc(x_1530); -x_1532 = lean::apply_1(x_1528, x_1530); -if (lean::obj_tag(x_1532) == 0) -{ -obj* x_1534; obj* x_1538; -lean::dec(x_1532); -x_1534 = lean::cnstr_get(x_1526, 1); +x_1530 = lean::apply_1(x_1527, x_0); +x_1531 = l_lean_parser_term_sort_has__view; +x_1532 = lean::cnstr_get(x_1531, 0); +lean::inc(x_1532); +x_1534 = lean::cnstr_get(x_1530, 0); lean::inc(x_1534); -lean::dec(x_1526); -lean::inc(x_1); -x_1538 = l_lean_elaborator_to__level___main(x_1534, x_1, x_2); -if (lean::obj_tag(x_1538) == 0) +x_1536 = lean::apply_1(x_1532, x_1534); +if (lean::obj_tag(x_1536) == 0) { -obj* x_1542; obj* x_1544; obj* x_1545; +obj* x_1538; obj* x_1542; +lean::dec(x_1536); +x_1538 = lean::cnstr_get(x_1530, 1); +lean::inc(x_1538); +lean::dec(x_1530); +lean::inc(x_1); +x_1542 = l_lean_elaborator_to__level___main(x_1538, x_1, x_2); +if (lean::obj_tag(x_1542) == 0) +{ +obj* x_1546; obj* x_1548; obj* x_1549; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1542 = lean::cnstr_get(x_1538, 0); -lean::inc(x_1542); -if (lean::is_shared(x_1538)) { - lean::dec(x_1538); - x_1544 = lean::box(0); -} else { - lean::cnstr_release(x_1538, 0); - x_1544 = x_1538; -} -if (lean::is_scalar(x_1544)) { - x_1545 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1545 = x_1544; -} -lean::cnstr_set(x_1545, 0, x_1542); -return x_1545; -} -else -{ -obj* x_1546; obj* x_1549; obj* x_1551; obj* x_1553; obj* x_1554; obj* x_1555; -x_1546 = lean::cnstr_get(x_1538, 0); +x_1546 = lean::cnstr_get(x_1542, 0); lean::inc(x_1546); -lean::dec(x_1538); -x_1549 = lean::cnstr_get(x_1546, 0); -lean::inc(x_1549); -x_1551 = lean::cnstr_get(x_1546, 1); -lean::inc(x_1551); -if (lean::is_shared(x_1546)) { - lean::dec(x_1546); - x_1553 = lean::box(0); +if (lean::is_shared(x_1542)) { + lean::dec(x_1542); + x_1548 = lean::box(0); } else { - lean::cnstr_release(x_1546, 0); - lean::cnstr_release(x_1546, 1); - x_1553 = x_1546; + lean::cnstr_release(x_1542, 0); + x_1548 = x_1542; } -x_1554 = lean::alloc_cnstr(3, 1, 0); -lean::cnstr_set(x_1554, 0, x_1549); -if (lean::is_scalar(x_1553)) { - x_1555 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1548)) { + x_1549 = lean::alloc_cnstr(0, 1, 0); } else { - x_1555 = x_1553; + x_1549 = x_1548; } -lean::cnstr_set(x_1555, 0, x_1554); -lean::cnstr_set(x_1555, 1, x_1551); -x_16 = x_1555; +lean::cnstr_set(x_1549, 0, x_1546); +return x_1549; +} +else +{ +obj* x_1550; obj* x_1553; obj* x_1555; obj* x_1557; obj* x_1558; obj* x_1559; +x_1550 = lean::cnstr_get(x_1542, 0); +lean::inc(x_1550); +lean::dec(x_1542); +x_1553 = lean::cnstr_get(x_1550, 0); +lean::inc(x_1553); +x_1555 = lean::cnstr_get(x_1550, 1); +lean::inc(x_1555); +if (lean::is_shared(x_1550)) { + lean::dec(x_1550); + x_1557 = lean::box(0); +} else { + lean::cnstr_release(x_1550, 0); + lean::cnstr_release(x_1550, 1); + x_1557 = x_1550; +} +x_1558 = lean::alloc_cnstr(3, 1, 0); +lean::cnstr_set(x_1558, 0, x_1553); +if (lean::is_scalar(x_1557)) { + x_1559 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1559 = x_1557; +} +lean::cnstr_set(x_1559, 0, x_1558); +lean::cnstr_set(x_1559, 1, x_1555); +x_16 = x_1559; goto lbl_17; } } else { -obj* x_1557; obj* x_1561; -lean::dec(x_1532); -x_1557 = lean::cnstr_get(x_1526, 1); -lean::inc(x_1557); -lean::dec(x_1526); +obj* x_1561; obj* x_1565; +lean::dec(x_1536); +x_1561 = lean::cnstr_get(x_1530, 1); +lean::inc(x_1561); +lean::dec(x_1530); lean::inc(x_1); -x_1561 = l_lean_elaborator_to__level___main(x_1557, x_1, x_2); -if (lean::obj_tag(x_1561) == 0) +x_1565 = l_lean_elaborator_to__level___main(x_1561, x_1, x_2); +if (lean::obj_tag(x_1565) == 0) { -obj* x_1565; obj* x_1567; obj* x_1568; +obj* x_1569; obj* x_1571; obj* x_1572; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1565 = lean::cnstr_get(x_1561, 0); -lean::inc(x_1565); -if (lean::is_shared(x_1561)) { - lean::dec(x_1561); - x_1567 = lean::box(0); -} else { - lean::cnstr_release(x_1561, 0); - x_1567 = x_1561; -} -if (lean::is_scalar(x_1567)) { - x_1568 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1568 = x_1567; -} -lean::cnstr_set(x_1568, 0, x_1565); -return x_1568; -} -else -{ -obj* x_1569; obj* x_1572; obj* x_1574; obj* x_1576; obj* x_1577; obj* x_1578; obj* x_1579; -x_1569 = lean::cnstr_get(x_1561, 0); +x_1569 = lean::cnstr_get(x_1565, 0); lean::inc(x_1569); -lean::dec(x_1561); -x_1572 = lean::cnstr_get(x_1569, 0); -lean::inc(x_1572); -x_1574 = lean::cnstr_get(x_1569, 1); -lean::inc(x_1574); -if (lean::is_shared(x_1569)) { - lean::dec(x_1569); - x_1576 = lean::box(0); +if (lean::is_shared(x_1565)) { + lean::dec(x_1565); + x_1571 = lean::box(0); } else { - lean::cnstr_release(x_1569, 0); - lean::cnstr_release(x_1569, 1); - x_1576 = x_1569; + lean::cnstr_release(x_1565, 0); + x_1571 = x_1565; } -x_1577 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1577, 0, x_1572); -x_1578 = lean::alloc_cnstr(3, 1, 0); -lean::cnstr_set(x_1578, 0, x_1577); -if (lean::is_scalar(x_1576)) { - x_1579 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_1571)) { + x_1572 = lean::alloc_cnstr(0, 1, 0); } else { - x_1579 = x_1576; + x_1572 = x_1571; } -lean::cnstr_set(x_1579, 0, x_1578); -lean::cnstr_set(x_1579, 1, x_1574); -x_16 = x_1579; +lean::cnstr_set(x_1572, 0, x_1569); +return x_1572; +} +else +{ +obj* x_1573; obj* x_1576; obj* x_1578; obj* x_1580; obj* x_1581; obj* x_1582; obj* x_1583; +x_1573 = lean::cnstr_get(x_1565, 0); +lean::inc(x_1573); +lean::dec(x_1565); +x_1576 = lean::cnstr_get(x_1573, 0); +lean::inc(x_1576); +x_1578 = lean::cnstr_get(x_1573, 1); +lean::inc(x_1578); +if (lean::is_shared(x_1573)) { + lean::dec(x_1573); + x_1580 = lean::box(0); +} else { + lean::cnstr_release(x_1573, 0); + lean::cnstr_release(x_1573, 1); + x_1580 = x_1573; +} +x_1581 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1581, 0, x_1576); +x_1582 = lean::alloc_cnstr(3, 1, 0); +lean::cnstr_set(x_1582, 0, x_1581); +if (lean::is_scalar(x_1580)) { + x_1583 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1583 = x_1580; +} +lean::cnstr_set(x_1583, 0, x_1582); +lean::cnstr_set(x_1583, 1, x_1578); +x_16 = x_1583; goto lbl_17; } } @@ -10584,344 +10588,344 @@ goto lbl_17; } else { -obj* x_1582; obj* x_1583; obj* x_1586; +obj* x_1586; obj* x_1587; obj* x_1590; lean::dec(x_11); lean::dec(x_9); -x_1582 = l_lean_parser_term_sort_has__view; -x_1583 = lean::cnstr_get(x_1582, 0); -lean::inc(x_1583); +x_1586 = l_lean_parser_term_sort_has__view; +x_1587 = lean::cnstr_get(x_1586, 0); +lean::inc(x_1587); lean::inc(x_0); -x_1586 = lean::apply_1(x_1583, x_0); -if (lean::obj_tag(x_1586) == 0) +x_1590 = lean::apply_1(x_1587, x_0); +if (lean::obj_tag(x_1590) == 0) { -lean::dec(x_1586); +lean::dec(x_1590); if (x_23 == 0) { -obj* x_1588; -x_1588 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_1588) == 0) +obj* x_1592; +x_1592 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_1592) == 0) { -obj* x_1591; obj* x_1593; obj* x_1594; +obj* x_1595; obj* x_1597; obj* x_1598; lean::dec(x_1); -lean::dec(x_1588); -x_1591 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; -lean::inc(x_1591); -x_1593 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1593, 0, x_1591); -lean::cnstr_set(x_1593, 1, x_2); -x_1594 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1594, 0, x_1593); -return x_1594; -} -else -{ -obj* x_1595; obj* x_1598; obj* x_1601; obj* x_1604; obj* x_1605; obj* x_1606; obj* x_1608; obj* x_1610; obj* x_1611; obj* x_1614; obj* x_1616; obj* x_1617; obj* x_1619; obj* x_1620; obj* x_1621; -x_1595 = lean::cnstr_get(x_1588, 0); +lean::dec(x_1592); +x_1595 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; lean::inc(x_1595); -lean::dec(x_1588); -x_1598 = lean::cnstr_get(x_1, 0); -lean::inc(x_1598); +x_1597 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1597, 0, x_1595); +lean::cnstr_set(x_1597, 1, x_2); +x_1598 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1598, 0, x_1597); +return x_1598; +} +else +{ +obj* x_1599; obj* x_1602; obj* x_1605; obj* x_1608; obj* x_1609; obj* x_1610; obj* x_1612; obj* x_1614; obj* x_1615; obj* x_1618; obj* x_1620; obj* x_1621; obj* x_1623; obj* x_1624; obj* x_1625; +x_1599 = lean::cnstr_get(x_1592, 0); +lean::inc(x_1599); +lean::dec(x_1592); +x_1602 = lean::cnstr_get(x_1, 0); +lean::inc(x_1602); lean::dec(x_1); -x_1601 = lean::cnstr_get(x_1598, 2); -lean::inc(x_1601); -lean::dec(x_1598); -x_1604 = l_lean_file__map_to__position(x_1601, x_1595); -x_1605 = lean::box(0); -x_1606 = lean::cnstr_get(x_1604, 1); -lean::inc(x_1606); -x_1608 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_1608); -x_1610 = l_lean_kvmap_set__nat(x_1605, x_1608, x_1606); -x_1611 = lean::cnstr_get(x_1604, 0); -lean::inc(x_1611); -lean::dec(x_1604); -x_1614 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_1614); -x_1616 = l_lean_kvmap_set__nat(x_1610, x_1614, x_1611); -x_1617 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; -lean::inc(x_1617); -x_1619 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1619, 0, x_1616); -lean::cnstr_set(x_1619, 1, x_1617); -x_1620 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1620, 0, x_1619); -lean::cnstr_set(x_1620, 1, x_2); -x_1621 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1621, 0, x_1620); -return x_1621; +x_1605 = lean::cnstr_get(x_1602, 2); +lean::inc(x_1605); +lean::dec(x_1602); +x_1608 = l_lean_file__map_to__position(x_1605, x_1599); +x_1609 = lean::box(0); +x_1610 = lean::cnstr_get(x_1608, 1); +lean::inc(x_1610); +x_1612 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_1612); +x_1614 = l_lean_kvmap_set__nat(x_1609, x_1612, x_1610); +x_1615 = lean::cnstr_get(x_1608, 0); +lean::inc(x_1615); +lean::dec(x_1608); +x_1618 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_1618); +x_1620 = l_lean_kvmap_set__nat(x_1614, x_1618, x_1615); +x_1621 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; +lean::inc(x_1621); +x_1623 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1623, 0, x_1620); +lean::cnstr_set(x_1623, 1, x_1621); +x_1624 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1624, 0, x_1623); +lean::cnstr_set(x_1624, 1, x_2); +x_1625 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1625, 0, x_1624); +return x_1625; } } else { -obj* x_1624; obj* x_1626; obj* x_1627; +obj* x_1628; obj* x_1630; obj* x_1631; lean::dec(x_1); lean::dec(x_0); -x_1624 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; -lean::inc(x_1624); -x_1626 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1626, 0, x_1624); -lean::cnstr_set(x_1626, 1, x_2); -x_1627 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1627, 0, x_1626); -return x_1627; +x_1628 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__9___closed__1; +lean::inc(x_1628); +x_1630 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1630, 0, x_1628); +lean::cnstr_set(x_1630, 1, x_2); +x_1631 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1631, 0, x_1630); +return x_1631; } } else { -lean::dec(x_1586); +lean::dec(x_1590); if (x_23 == 0) { -obj* x_1629; -x_1629 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_1629) == 0) +obj* x_1633; +x_1633 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_1633) == 0) { -obj* x_1632; obj* x_1634; obj* x_1635; +obj* x_1636; obj* x_1638; obj* x_1639; lean::dec(x_1); -lean::dec(x_1629); -x_1632 = l_lean_elaborator_to__pexpr___main___closed__41; -lean::inc(x_1632); -x_1634 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1634, 0, x_1632); -lean::cnstr_set(x_1634, 1, x_2); -x_1635 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1635, 0, x_1634); -return x_1635; -} -else -{ -obj* x_1636; obj* x_1639; obj* x_1642; obj* x_1645; obj* x_1646; obj* x_1647; obj* x_1649; obj* x_1651; obj* x_1652; obj* x_1655; obj* x_1657; obj* x_1658; obj* x_1660; obj* x_1661; obj* x_1662; -x_1636 = lean::cnstr_get(x_1629, 0); +lean::dec(x_1633); +x_1636 = l_lean_elaborator_to__pexpr___main___closed__41; lean::inc(x_1636); -lean::dec(x_1629); -x_1639 = lean::cnstr_get(x_1, 0); -lean::inc(x_1639); +x_1638 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1638, 0, x_1636); +lean::cnstr_set(x_1638, 1, x_2); +x_1639 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1639, 0, x_1638); +return x_1639; +} +else +{ +obj* x_1640; obj* x_1643; obj* x_1646; obj* x_1649; obj* x_1650; obj* x_1651; obj* x_1653; obj* x_1655; obj* x_1656; obj* x_1659; obj* x_1661; obj* x_1662; obj* x_1664; obj* x_1665; obj* x_1666; +x_1640 = lean::cnstr_get(x_1633, 0); +lean::inc(x_1640); +lean::dec(x_1633); +x_1643 = lean::cnstr_get(x_1, 0); +lean::inc(x_1643); lean::dec(x_1); -x_1642 = lean::cnstr_get(x_1639, 2); -lean::inc(x_1642); -lean::dec(x_1639); -x_1645 = l_lean_file__map_to__position(x_1642, x_1636); -x_1646 = lean::box(0); -x_1647 = lean::cnstr_get(x_1645, 1); -lean::inc(x_1647); -x_1649 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_1649); -x_1651 = l_lean_kvmap_set__nat(x_1646, x_1649, x_1647); -x_1652 = lean::cnstr_get(x_1645, 0); -lean::inc(x_1652); -lean::dec(x_1645); -x_1655 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_1655); -x_1657 = l_lean_kvmap_set__nat(x_1651, x_1655, x_1652); -x_1658 = l_lean_elaborator_to__pexpr___main___closed__41; -lean::inc(x_1658); -x_1660 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1660, 0, x_1657); -lean::cnstr_set(x_1660, 1, x_1658); -x_1661 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1661, 0, x_1660); -lean::cnstr_set(x_1661, 1, x_2); -x_1662 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1662, 0, x_1661); -return x_1662; +x_1646 = lean::cnstr_get(x_1643, 2); +lean::inc(x_1646); +lean::dec(x_1643); +x_1649 = l_lean_file__map_to__position(x_1646, x_1640); +x_1650 = lean::box(0); +x_1651 = lean::cnstr_get(x_1649, 1); +lean::inc(x_1651); +x_1653 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_1653); +x_1655 = l_lean_kvmap_set__nat(x_1650, x_1653, x_1651); +x_1656 = lean::cnstr_get(x_1649, 0); +lean::inc(x_1656); +lean::dec(x_1649); +x_1659 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_1659); +x_1661 = l_lean_kvmap_set__nat(x_1655, x_1659, x_1656); +x_1662 = l_lean_elaborator_to__pexpr___main___closed__41; +lean::inc(x_1662); +x_1664 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1664, 0, x_1661); +lean::cnstr_set(x_1664, 1, x_1662); +x_1665 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1665, 0, x_1664); +lean::cnstr_set(x_1665, 1, x_2); +x_1666 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1666, 0, x_1665); +return x_1666; } } else { -obj* x_1665; obj* x_1667; obj* x_1668; +obj* x_1669; obj* x_1671; obj* x_1672; lean::dec(x_1); lean::dec(x_0); -x_1665 = l_lean_elaborator_to__pexpr___main___closed__41; -lean::inc(x_1665); -x_1667 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1667, 0, x_1665); -lean::cnstr_set(x_1667, 1, x_2); -x_1668 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1668, 0, x_1667); -return x_1668; +x_1669 = l_lean_elaborator_to__pexpr___main___closed__41; +lean::inc(x_1669); +x_1671 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1671, 0, x_1669); +lean::cnstr_set(x_1671, 1, x_2); +x_1672 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1672, 0, x_1671); +return x_1672; } } } } else { -obj* x_1670; obj* x_1671; obj* x_1674; obj* x_1675; +obj* x_1674; obj* x_1675; obj* x_1678; obj* x_1679; lean::dec(x_11); -x_1670 = l_lean_parser_term_pi_has__view; -x_1671 = lean::cnstr_get(x_1670, 0); -lean::inc(x_1671); -lean::inc(x_0); -x_1674 = lean::apply_1(x_1671, x_0); -x_1675 = lean::cnstr_get(x_1674, 1); +x_1674 = l_lean_parser_term_pi_has__view; +x_1675 = lean::cnstr_get(x_1674, 0); lean::inc(x_1675); -if (lean::obj_tag(x_1675) == 0) -{ -obj* x_1679; obj* x_1683; -lean::dec(x_1674); -lean::dec(x_1675); -x_1679 = l_lean_elaborator_to__pexpr___main___closed__42; -lean::inc(x_1); -lean::inc(x_1679); lean::inc(x_0); -x_1683 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1679, x_1, x_2); -if (lean::obj_tag(x_1683) == 0) +x_1678 = lean::apply_1(x_1675, x_0); +x_1679 = lean::cnstr_get(x_1678, 1); +lean::inc(x_1679); +if (lean::obj_tag(x_1679) == 0) { -obj* x_1687; obj* x_1689; obj* x_1690; +obj* x_1683; obj* x_1687; +lean::dec(x_1678); +lean::dec(x_1679); +x_1683 = l_lean_elaborator_to__pexpr___main___closed__42; +lean::inc(x_1); +lean::inc(x_1683); +lean::inc(x_0); +x_1687 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1683, x_1, x_2); +if (lean::obj_tag(x_1687) == 0) +{ +obj* x_1691; obj* x_1693; obj* x_1694; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1687 = lean::cnstr_get(x_1683, 0); -lean::inc(x_1687); -if (lean::is_shared(x_1683)) { - lean::dec(x_1683); - x_1689 = lean::box(0); +x_1691 = lean::cnstr_get(x_1687, 0); +lean::inc(x_1691); +if (lean::is_shared(x_1687)) { + lean::dec(x_1687); + x_1693 = lean::box(0); } else { - lean::cnstr_release(x_1683, 0); - x_1689 = x_1683; + lean::cnstr_release(x_1687, 0); + x_1693 = x_1687; } -if (lean::is_scalar(x_1689)) { - x_1690 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_1693)) { + x_1694 = lean::alloc_cnstr(0, 1, 0); } else { - x_1690 = x_1689; + x_1694 = x_1693; } -lean::cnstr_set(x_1690, 0, x_1687); -return x_1690; +lean::cnstr_set(x_1694, 0, x_1691); +return x_1694; } else { -obj* x_1691; -x_1691 = lean::cnstr_get(x_1683, 0); -lean::inc(x_1691); -lean::dec(x_1683); -x_16 = x_1691; +obj* x_1695; +x_1695 = lean::cnstr_get(x_1687, 0); +lean::inc(x_1695); +lean::dec(x_1687); +x_16 = x_1695; goto lbl_17; } } else { -obj* x_1694; obj* x_1697; obj* x_1698; obj* x_1700; obj* x_1702; obj* x_1703; obj* x_1705; obj* x_1709; -x_1694 = lean::cnstr_get(x_1675, 0); -lean::inc(x_1694); -lean::dec(x_1675); -x_1697 = l_lean_parser_term_simple__binder_view_to__binder__info___main(x_1694); -x_1698 = lean::cnstr_get(x_1697, 0); +obj* x_1698; obj* x_1701; obj* x_1702; obj* x_1704; obj* x_1706; obj* x_1707; obj* x_1709; obj* x_1713; +x_1698 = lean::cnstr_get(x_1679, 0); lean::inc(x_1698); -x_1700 = lean::cnstr_get(x_1697, 1); -lean::inc(x_1700); -if (lean::is_shared(x_1697)) { - lean::dec(x_1697); - x_1702 = lean::box(0); +lean::dec(x_1679); +x_1701 = l_lean_parser_term_simple__binder_view_to__binder__info___main(x_1698); +x_1702 = lean::cnstr_get(x_1701, 0); +lean::inc(x_1702); +x_1704 = lean::cnstr_get(x_1701, 1); +lean::inc(x_1704); +if (lean::is_shared(x_1701)) { + lean::dec(x_1701); + x_1706 = lean::box(0); } else { - lean::cnstr_release(x_1697, 0); - lean::cnstr_release(x_1697, 1); - x_1702 = x_1697; + lean::cnstr_release(x_1701, 0); + lean::cnstr_release(x_1701, 1); + x_1706 = x_1701; } -x_1703 = lean::cnstr_get(x_1700, 0); -lean::inc(x_1703); -x_1705 = lean::cnstr_get(x_1700, 1); -lean::inc(x_1705); -lean::dec(x_1700); +x_1707 = lean::cnstr_get(x_1704, 0); +lean::inc(x_1707); +x_1709 = lean::cnstr_get(x_1704, 1); +lean::inc(x_1709); +lean::dec(x_1704); lean::inc(x_1); -x_1709 = l_lean_elaborator_to__pexpr___main(x_1705, x_1, x_2); -if (lean::obj_tag(x_1709) == 0) +x_1713 = l_lean_elaborator_to__pexpr___main(x_1709, x_1, x_2); +if (lean::obj_tag(x_1713) == 0) { -obj* x_1717; obj* x_1719; obj* x_1720; -lean::dec(x_1674); +obj* x_1721; obj* x_1723; obj* x_1724; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1698); -lean::dec(x_1703); +lean::dec(x_1678); lean::dec(x_1702); -x_1717 = lean::cnstr_get(x_1709, 0); -lean::inc(x_1717); -if (lean::is_shared(x_1709)) { - lean::dec(x_1709); - x_1719 = lean::box(0); -} else { - lean::cnstr_release(x_1709, 0); - x_1719 = x_1709; -} -if (lean::is_scalar(x_1719)) { - x_1720 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1720 = x_1719; -} -lean::cnstr_set(x_1720, 0, x_1717); -return x_1720; -} -else -{ -obj* x_1721; obj* x_1723; obj* x_1724; obj* x_1726; obj* x_1729; obj* x_1733; -x_1721 = lean::cnstr_get(x_1709, 0); +lean::dec(x_1707); +lean::dec(x_1706); +x_1721 = lean::cnstr_get(x_1713, 0); lean::inc(x_1721); -if (lean::is_shared(x_1709)) { - lean::dec(x_1709); +if (lean::is_shared(x_1713)) { + lean::dec(x_1713); x_1723 = lean::box(0); } else { - lean::cnstr_release(x_1709, 0); - x_1723 = x_1709; + lean::cnstr_release(x_1713, 0); + x_1723 = x_1713; } -x_1724 = lean::cnstr_get(x_1721, 0); -lean::inc(x_1724); -x_1726 = lean::cnstr_get(x_1721, 1); -lean::inc(x_1726); -lean::dec(x_1721); -x_1729 = lean::cnstr_get(x_1674, 3); -lean::inc(x_1729); -lean::dec(x_1674); -lean::inc(x_1); -x_1733 = l_lean_elaborator_to__pexpr___main(x_1729, x_1, x_1726); -if (lean::obj_tag(x_1733) == 0) -{ -obj* x_1741; obj* x_1744; -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_1698); -lean::dec(x_1724); -lean::dec(x_1703); -lean::dec(x_1702); -x_1741 = lean::cnstr_get(x_1733, 0); -lean::inc(x_1741); -lean::dec(x_1733); if (lean::is_scalar(x_1723)) { - x_1744 = lean::alloc_cnstr(0, 1, 0); + x_1724 = lean::alloc_cnstr(0, 1, 0); } else { - x_1744 = x_1723; - lean::cnstr_set_tag(x_1723, 0); + x_1724 = x_1723; } -lean::cnstr_set(x_1744, 0, x_1741); -return x_1744; +lean::cnstr_set(x_1724, 0, x_1721); +return x_1724; } else { -obj* x_1746; obj* x_1749; obj* x_1751; obj* x_1754; obj* x_1755; uint8 x_1756; obj* x_1758; obj* x_1759; -lean::dec(x_1723); -x_1746 = lean::cnstr_get(x_1733, 0); -lean::inc(x_1746); -lean::dec(x_1733); -x_1749 = lean::cnstr_get(x_1746, 0); -lean::inc(x_1749); -x_1751 = lean::cnstr_get(x_1746, 1); -lean::inc(x_1751); -lean::dec(x_1746); -x_1754 = l_lean_elaborator_mangle__ident(x_1703); -x_1755 = lean::alloc_cnstr(7, 3, 1); -lean::cnstr_set(x_1755, 0, x_1754); -lean::cnstr_set(x_1755, 1, x_1724); -lean::cnstr_set(x_1755, 2, x_1749); -x_1756 = lean::unbox(x_1698); -lean::dec(x_1698); -lean::cnstr_set_scalar(x_1755, sizeof(void*)*3, x_1756); -x_1758 = x_1755; -if (lean::is_scalar(x_1702)) { - x_1759 = lean::alloc_cnstr(0, 2, 0); +obj* x_1725; obj* x_1727; obj* x_1728; obj* x_1730; obj* x_1733; obj* x_1737; +x_1725 = lean::cnstr_get(x_1713, 0); +lean::inc(x_1725); +if (lean::is_shared(x_1713)) { + lean::dec(x_1713); + x_1727 = lean::box(0); } else { - x_1759 = x_1702; + lean::cnstr_release(x_1713, 0); + x_1727 = x_1713; } +x_1728 = lean::cnstr_get(x_1725, 0); +lean::inc(x_1728); +x_1730 = lean::cnstr_get(x_1725, 1); +lean::inc(x_1730); +lean::dec(x_1725); +x_1733 = lean::cnstr_get(x_1678, 3); +lean::inc(x_1733); +lean::dec(x_1678); +lean::inc(x_1); +x_1737 = l_lean_elaborator_to__pexpr___main(x_1733, x_1, x_1730); +if (lean::obj_tag(x_1737) == 0) +{ +obj* x_1745; obj* x_1748; +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_1728); +lean::dec(x_1702); +lean::dec(x_1707); +lean::dec(x_1706); +x_1745 = lean::cnstr_get(x_1737, 0); +lean::inc(x_1745); +lean::dec(x_1737); +if (lean::is_scalar(x_1727)) { + x_1748 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1748 = x_1727; + lean::cnstr_set_tag(x_1727, 0); +} +lean::cnstr_set(x_1748, 0, x_1745); +return x_1748; +} +else +{ +obj* x_1750; obj* x_1753; obj* x_1755; obj* x_1758; obj* x_1759; uint8 x_1760; obj* x_1762; obj* x_1763; +lean::dec(x_1727); +x_1750 = lean::cnstr_get(x_1737, 0); +lean::inc(x_1750); +lean::dec(x_1737); +x_1753 = lean::cnstr_get(x_1750, 0); +lean::inc(x_1753); +x_1755 = lean::cnstr_get(x_1750, 1); +lean::inc(x_1755); +lean::dec(x_1750); +x_1758 = l_lean_elaborator_mangle__ident(x_1707); +x_1759 = lean::alloc_cnstr(7, 3, 1); lean::cnstr_set(x_1759, 0, x_1758); -lean::cnstr_set(x_1759, 1, x_1751); -x_16 = x_1759; +lean::cnstr_set(x_1759, 1, x_1728); +lean::cnstr_set(x_1759, 2, x_1753); +x_1760 = lean::unbox(x_1702); +lean::dec(x_1702); +lean::cnstr_set_scalar(x_1759, sizeof(void*)*3, x_1760); +x_1762 = x_1759; +if (lean::is_scalar(x_1706)) { + x_1763 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1763 = x_1706; +} +lean::cnstr_set(x_1763, 0, x_1762); +lean::cnstr_set(x_1763, 1, x_1755); +x_16 = x_1763; goto lbl_17; } } @@ -10930,184 +10934,184 @@ goto lbl_17; } else { -obj* x_1761; obj* x_1762; obj* x_1765; obj* x_1766; +obj* x_1765; obj* x_1766; obj* x_1769; obj* x_1770; lean::dec(x_11); -x_1761 = l_lean_parser_term_lambda_has__view; -x_1762 = lean::cnstr_get(x_1761, 0); -lean::inc(x_1762); -lean::inc(x_0); -x_1765 = lean::apply_1(x_1762, x_0); -x_1766 = lean::cnstr_get(x_1765, 1); +x_1765 = l_lean_parser_term_lambda_has__view; +x_1766 = lean::cnstr_get(x_1765, 0); lean::inc(x_1766); -if (lean::obj_tag(x_1766) == 0) -{ -obj* x_1770; obj* x_1774; -lean::dec(x_1765); -lean::dec(x_1766); -x_1770 = l_lean_elaborator_to__pexpr___main___closed__43; -lean::inc(x_1); -lean::inc(x_1770); lean::inc(x_0); -x_1774 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1770, x_1, x_2); -if (lean::obj_tag(x_1774) == 0) +x_1769 = lean::apply_1(x_1766, x_0); +x_1770 = lean::cnstr_get(x_1769, 1); +lean::inc(x_1770); +if (lean::obj_tag(x_1770) == 0) { -obj* x_1778; obj* x_1780; obj* x_1781; +obj* x_1774; obj* x_1778; +lean::dec(x_1770); +lean::dec(x_1769); +x_1774 = l_lean_elaborator_to__pexpr___main___closed__43; +lean::inc(x_1); +lean::inc(x_1774); +lean::inc(x_0); +x_1778 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_1774, x_1, x_2); +if (lean::obj_tag(x_1778) == 0) +{ +obj* x_1782; obj* x_1784; obj* x_1785; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1778 = lean::cnstr_get(x_1774, 0); -lean::inc(x_1778); -if (lean::is_shared(x_1774)) { - lean::dec(x_1774); - x_1780 = lean::box(0); +x_1782 = lean::cnstr_get(x_1778, 0); +lean::inc(x_1782); +if (lean::is_shared(x_1778)) { + lean::dec(x_1778); + x_1784 = lean::box(0); } else { - lean::cnstr_release(x_1774, 0); - x_1780 = x_1774; + lean::cnstr_release(x_1778, 0); + x_1784 = x_1778; } -if (lean::is_scalar(x_1780)) { - x_1781 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_1784)) { + x_1785 = lean::alloc_cnstr(0, 1, 0); } else { - x_1781 = x_1780; + x_1785 = x_1784; } -lean::cnstr_set(x_1781, 0, x_1778); -return x_1781; +lean::cnstr_set(x_1785, 0, x_1782); +return x_1785; } else { -obj* x_1782; -x_1782 = lean::cnstr_get(x_1774, 0); -lean::inc(x_1782); -lean::dec(x_1774); -x_16 = x_1782; +obj* x_1786; +x_1786 = lean::cnstr_get(x_1778, 0); +lean::inc(x_1786); +lean::dec(x_1778); +x_16 = x_1786; goto lbl_17; } } else { -obj* x_1785; obj* x_1788; obj* x_1789; obj* x_1791; obj* x_1793; obj* x_1794; obj* x_1796; obj* x_1800; -x_1785 = lean::cnstr_get(x_1766, 0); -lean::inc(x_1785); -lean::dec(x_1766); -x_1788 = l_lean_parser_term_simple__binder_view_to__binder__info___main(x_1785); -x_1789 = lean::cnstr_get(x_1788, 0); +obj* x_1789; obj* x_1792; obj* x_1793; obj* x_1795; obj* x_1797; obj* x_1798; obj* x_1800; obj* x_1804; +x_1789 = lean::cnstr_get(x_1770, 0); lean::inc(x_1789); -x_1791 = lean::cnstr_get(x_1788, 1); -lean::inc(x_1791); -if (lean::is_shared(x_1788)) { - lean::dec(x_1788); - x_1793 = lean::box(0); +lean::dec(x_1770); +x_1792 = l_lean_parser_term_simple__binder_view_to__binder__info___main(x_1789); +x_1793 = lean::cnstr_get(x_1792, 0); +lean::inc(x_1793); +x_1795 = lean::cnstr_get(x_1792, 1); +lean::inc(x_1795); +if (lean::is_shared(x_1792)) { + lean::dec(x_1792); + x_1797 = lean::box(0); } else { - lean::cnstr_release(x_1788, 0); - lean::cnstr_release(x_1788, 1); - x_1793 = x_1788; + lean::cnstr_release(x_1792, 0); + lean::cnstr_release(x_1792, 1); + x_1797 = x_1792; } -x_1794 = lean::cnstr_get(x_1791, 0); -lean::inc(x_1794); -x_1796 = lean::cnstr_get(x_1791, 1); -lean::inc(x_1796); -lean::dec(x_1791); +x_1798 = lean::cnstr_get(x_1795, 0); +lean::inc(x_1798); +x_1800 = lean::cnstr_get(x_1795, 1); +lean::inc(x_1800); +lean::dec(x_1795); lean::inc(x_1); -x_1800 = l_lean_elaborator_to__pexpr___main(x_1796, x_1, x_2); -if (lean::obj_tag(x_1800) == 0) +x_1804 = l_lean_elaborator_to__pexpr___main(x_1800, x_1, x_2); +if (lean::obj_tag(x_1804) == 0) { -obj* x_1808; obj* x_1810; obj* x_1811; -lean::dec(x_1789); +obj* x_1812; obj* x_1814; obj* x_1815; lean::dec(x_1793); +lean::dec(x_1797); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1794); -lean::dec(x_1765); -x_1808 = lean::cnstr_get(x_1800, 0); -lean::inc(x_1808); -if (lean::is_shared(x_1800)) { - lean::dec(x_1800); - x_1810 = lean::box(0); -} else { - lean::cnstr_release(x_1800, 0); - x_1810 = x_1800; -} -if (lean::is_scalar(x_1810)) { - x_1811 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1811 = x_1810; -} -lean::cnstr_set(x_1811, 0, x_1808); -return x_1811; -} -else -{ -obj* x_1812; obj* x_1814; obj* x_1815; obj* x_1817; obj* x_1820; obj* x_1824; -x_1812 = lean::cnstr_get(x_1800, 0); +lean::dec(x_1798); +lean::dec(x_1769); +x_1812 = lean::cnstr_get(x_1804, 0); lean::inc(x_1812); -if (lean::is_shared(x_1800)) { - lean::dec(x_1800); +if (lean::is_shared(x_1804)) { + lean::dec(x_1804); x_1814 = lean::box(0); } else { - lean::cnstr_release(x_1800, 0); - x_1814 = x_1800; + lean::cnstr_release(x_1804, 0); + x_1814 = x_1804; } -x_1815 = lean::cnstr_get(x_1812, 0); -lean::inc(x_1815); -x_1817 = lean::cnstr_get(x_1812, 1); -lean::inc(x_1817); -lean::dec(x_1812); -x_1820 = lean::cnstr_get(x_1765, 3); -lean::inc(x_1820); -lean::dec(x_1765); -lean::inc(x_1); -x_1824 = l_lean_elaborator_to__pexpr___main(x_1820, x_1, x_1817); -if (lean::obj_tag(x_1824) == 0) -{ -obj* x_1832; obj* x_1835; -lean::dec(x_1789); -lean::dec(x_1793); -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_1794); -lean::dec(x_1815); -x_1832 = lean::cnstr_get(x_1824, 0); -lean::inc(x_1832); -lean::dec(x_1824); if (lean::is_scalar(x_1814)) { - x_1835 = lean::alloc_cnstr(0, 1, 0); + x_1815 = lean::alloc_cnstr(0, 1, 0); } else { - x_1835 = x_1814; - lean::cnstr_set_tag(x_1814, 0); + x_1815 = x_1814; } -lean::cnstr_set(x_1835, 0, x_1832); -return x_1835; +lean::cnstr_set(x_1815, 0, x_1812); +return x_1815; } else { -obj* x_1837; obj* x_1840; obj* x_1842; obj* x_1845; obj* x_1846; uint8 x_1847; obj* x_1849; obj* x_1850; -lean::dec(x_1814); -x_1837 = lean::cnstr_get(x_1824, 0); -lean::inc(x_1837); -lean::dec(x_1824); -x_1840 = lean::cnstr_get(x_1837, 0); -lean::inc(x_1840); -x_1842 = lean::cnstr_get(x_1837, 1); -lean::inc(x_1842); -lean::dec(x_1837); -x_1845 = l_lean_elaborator_mangle__ident(x_1794); -x_1846 = lean::alloc_cnstr(6, 3, 1); -lean::cnstr_set(x_1846, 0, x_1845); -lean::cnstr_set(x_1846, 1, x_1815); -lean::cnstr_set(x_1846, 2, x_1840); -x_1847 = lean::unbox(x_1789); -lean::dec(x_1789); -lean::cnstr_set_scalar(x_1846, sizeof(void*)*3, x_1847); -x_1849 = x_1846; -if (lean::is_scalar(x_1793)) { - x_1850 = lean::alloc_cnstr(0, 2, 0); +obj* x_1816; obj* x_1818; obj* x_1819; obj* x_1821; obj* x_1824; obj* x_1828; +x_1816 = lean::cnstr_get(x_1804, 0); +lean::inc(x_1816); +if (lean::is_shared(x_1804)) { + lean::dec(x_1804); + x_1818 = lean::box(0); } else { - x_1850 = x_1793; + lean::cnstr_release(x_1804, 0); + x_1818 = x_1804; } +x_1819 = lean::cnstr_get(x_1816, 0); +lean::inc(x_1819); +x_1821 = lean::cnstr_get(x_1816, 1); +lean::inc(x_1821); +lean::dec(x_1816); +x_1824 = lean::cnstr_get(x_1769, 3); +lean::inc(x_1824); +lean::dec(x_1769); +lean::inc(x_1); +x_1828 = l_lean_elaborator_to__pexpr___main(x_1824, x_1, x_1821); +if (lean::obj_tag(x_1828) == 0) +{ +obj* x_1836; obj* x_1839; +lean::dec(x_1793); +lean::dec(x_1797); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +lean::dec(x_1798); +lean::dec(x_1819); +x_1836 = lean::cnstr_get(x_1828, 0); +lean::inc(x_1836); +lean::dec(x_1828); +if (lean::is_scalar(x_1818)) { + x_1839 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1839 = x_1818; + lean::cnstr_set_tag(x_1818, 0); +} +lean::cnstr_set(x_1839, 0, x_1836); +return x_1839; +} +else +{ +obj* x_1841; obj* x_1844; obj* x_1846; obj* x_1849; obj* x_1850; uint8 x_1851; obj* x_1853; obj* x_1854; +lean::dec(x_1818); +x_1841 = lean::cnstr_get(x_1828, 0); +lean::inc(x_1841); +lean::dec(x_1828); +x_1844 = lean::cnstr_get(x_1841, 0); +lean::inc(x_1844); +x_1846 = lean::cnstr_get(x_1841, 1); +lean::inc(x_1846); +lean::dec(x_1841); +x_1849 = l_lean_elaborator_mangle__ident(x_1798); +x_1850 = lean::alloc_cnstr(6, 3, 1); lean::cnstr_set(x_1850, 0, x_1849); -lean::cnstr_set(x_1850, 1, x_1842); -x_16 = x_1850; +lean::cnstr_set(x_1850, 1, x_1819); +lean::cnstr_set(x_1850, 2, x_1844); +x_1851 = lean::unbox(x_1793); +lean::dec(x_1793); +lean::cnstr_set_scalar(x_1850, sizeof(void*)*3, x_1851); +x_1853 = x_1850; +if (lean::is_scalar(x_1797)) { + x_1854 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1854 = x_1797; +} +lean::cnstr_set(x_1854, 0, x_1853); +lean::cnstr_set(x_1854, 1, x_1846); +x_16 = x_1854; goto lbl_17; } } @@ -11116,113 +11120,113 @@ goto lbl_17; } else { -obj* x_1852; obj* x_1853; obj* x_1856; obj* x_1857; obj* x_1860; +obj* x_1856; obj* x_1857; obj* x_1860; obj* x_1861; obj* x_1864; lean::dec(x_11); -x_1852 = l_lean_parser_term_app_has__view; -x_1853 = lean::cnstr_get(x_1852, 0); -lean::inc(x_1853); -lean::inc(x_0); -x_1856 = lean::apply_1(x_1853, x_0); +x_1856 = l_lean_parser_term_app_has__view; x_1857 = lean::cnstr_get(x_1856, 0); lean::inc(x_1857); +lean::inc(x_0); +x_1860 = lean::apply_1(x_1857, x_0); +x_1861 = lean::cnstr_get(x_1860, 0); +lean::inc(x_1861); lean::inc(x_1); -x_1860 = l_lean_elaborator_to__pexpr___main(x_1857, x_1, x_2); -if (lean::obj_tag(x_1860) == 0) +x_1864 = l_lean_elaborator_to__pexpr___main(x_1861, x_1, x_2); +if (lean::obj_tag(x_1864) == 0) { -obj* x_1865; obj* x_1867; obj* x_1868; -lean::dec(x_1856); +obj* x_1869; obj* x_1871; obj* x_1872; +lean::dec(x_1860); lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_1865 = lean::cnstr_get(x_1860, 0); -lean::inc(x_1865); -if (lean::is_shared(x_1860)) { - lean::dec(x_1860); - x_1867 = lean::box(0); -} else { - lean::cnstr_release(x_1860, 0); - x_1867 = x_1860; -} -if (lean::is_scalar(x_1867)) { - x_1868 = lean::alloc_cnstr(0, 1, 0); -} else { - x_1868 = x_1867; -} -lean::cnstr_set(x_1868, 0, x_1865); -return x_1868; -} -else -{ -obj* x_1869; obj* x_1871; obj* x_1872; obj* x_1874; obj* x_1876; obj* x_1877; obj* x_1881; -x_1869 = lean::cnstr_get(x_1860, 0); +x_1869 = lean::cnstr_get(x_1864, 0); lean::inc(x_1869); -if (lean::is_shared(x_1860)) { - lean::dec(x_1860); +if (lean::is_shared(x_1864)) { + lean::dec(x_1864); x_1871 = lean::box(0); } else { - lean::cnstr_release(x_1860, 0); - x_1871 = x_1860; + lean::cnstr_release(x_1864, 0); + x_1871 = x_1864; } -x_1872 = lean::cnstr_get(x_1869, 0); -lean::inc(x_1872); -x_1874 = lean::cnstr_get(x_1869, 1); -lean::inc(x_1874); -if (lean::is_shared(x_1869)) { - lean::dec(x_1869); - x_1876 = lean::box(0); -} else { - lean::cnstr_release(x_1869, 0); - lean::cnstr_release(x_1869, 1); - x_1876 = x_1869; -} -x_1877 = lean::cnstr_get(x_1856, 1); -lean::inc(x_1877); -lean::dec(x_1856); -lean::inc(x_1); -x_1881 = l_lean_elaborator_to__pexpr___main(x_1877, x_1, x_1874); -if (lean::obj_tag(x_1881) == 0) -{ -obj* x_1887; obj* x_1890; -lean::dec(x_9); -lean::dec(x_1); -lean::dec(x_0); -lean::dec(x_1872); -lean::dec(x_1876); -x_1887 = lean::cnstr_get(x_1881, 0); -lean::inc(x_1887); -lean::dec(x_1881); if (lean::is_scalar(x_1871)) { - x_1890 = lean::alloc_cnstr(0, 1, 0); + x_1872 = lean::alloc_cnstr(0, 1, 0); } else { - x_1890 = x_1871; - lean::cnstr_set_tag(x_1871, 0); + x_1872 = x_1871; } -lean::cnstr_set(x_1890, 0, x_1887); -return x_1890; +lean::cnstr_set(x_1872, 0, x_1869); +return x_1872; } else { -obj* x_1892; obj* x_1895; obj* x_1897; obj* x_1900; obj* x_1901; -lean::dec(x_1871); -x_1892 = lean::cnstr_get(x_1881, 0); -lean::inc(x_1892); -lean::dec(x_1881); -x_1895 = lean::cnstr_get(x_1892, 0); -lean::inc(x_1895); -x_1897 = lean::cnstr_get(x_1892, 1); -lean::inc(x_1897); -lean::dec(x_1892); -x_1900 = lean::alloc_cnstr(5, 2, 0); -lean::cnstr_set(x_1900, 0, x_1872); -lean::cnstr_set(x_1900, 1, x_1895); -if (lean::is_scalar(x_1876)) { - x_1901 = lean::alloc_cnstr(0, 2, 0); +obj* x_1873; obj* x_1875; obj* x_1876; obj* x_1878; obj* x_1880; obj* x_1881; obj* x_1885; +x_1873 = lean::cnstr_get(x_1864, 0); +lean::inc(x_1873); +if (lean::is_shared(x_1864)) { + lean::dec(x_1864); + x_1875 = lean::box(0); } else { - x_1901 = x_1876; + lean::cnstr_release(x_1864, 0); + x_1875 = x_1864; } -lean::cnstr_set(x_1901, 0, x_1900); -lean::cnstr_set(x_1901, 1, x_1897); -x_16 = x_1901; +x_1876 = lean::cnstr_get(x_1873, 0); +lean::inc(x_1876); +x_1878 = lean::cnstr_get(x_1873, 1); +lean::inc(x_1878); +if (lean::is_shared(x_1873)) { + lean::dec(x_1873); + x_1880 = lean::box(0); +} else { + lean::cnstr_release(x_1873, 0); + lean::cnstr_release(x_1873, 1); + x_1880 = x_1873; +} +x_1881 = lean::cnstr_get(x_1860, 1); +lean::inc(x_1881); +lean::dec(x_1860); +lean::inc(x_1); +x_1885 = l_lean_elaborator_to__pexpr___main(x_1881, x_1, x_1878); +if (lean::obj_tag(x_1885) == 0) +{ +obj* x_1891; obj* x_1894; +lean::dec(x_1876); +lean::dec(x_1880); +lean::dec(x_9); +lean::dec(x_1); +lean::dec(x_0); +x_1891 = lean::cnstr_get(x_1885, 0); +lean::inc(x_1891); +lean::dec(x_1885); +if (lean::is_scalar(x_1875)) { + x_1894 = lean::alloc_cnstr(0, 1, 0); +} else { + x_1894 = x_1875; + lean::cnstr_set_tag(x_1875, 0); +} +lean::cnstr_set(x_1894, 0, x_1891); +return x_1894; +} +else +{ +obj* x_1896; obj* x_1899; obj* x_1901; obj* x_1904; obj* x_1905; +lean::dec(x_1875); +x_1896 = lean::cnstr_get(x_1885, 0); +lean::inc(x_1896); +lean::dec(x_1885); +x_1899 = lean::cnstr_get(x_1896, 0); +lean::inc(x_1899); +x_1901 = lean::cnstr_get(x_1896, 1); +lean::inc(x_1901); +lean::dec(x_1896); +x_1904 = lean::alloc_cnstr(5, 2, 0); +lean::cnstr_set(x_1904, 0, x_1876); +lean::cnstr_set(x_1904, 1, x_1899); +if (lean::is_scalar(x_1880)) { + x_1905 = lean::alloc_cnstr(0, 2, 0); +} else { + x_1905 = x_1880; +} +lean::cnstr_set(x_1905, 0, x_1904); +lean::cnstr_set(x_1905, 1, x_1901); +x_16 = x_1905; goto lbl_17; } } @@ -11230,186 +11234,186 @@ goto lbl_17; } else { -obj* x_1903; obj* x_1904; obj* x_1907; obj* x_1908; obj* x_1910; +obj* x_1907; obj* x_1908; obj* x_1911; obj* x_1912; obj* x_1914; lean::dec(x_11); -x_1903 = l_lean_parser_ident__univs_has__view; -x_1904 = lean::cnstr_get(x_1903, 0); -lean::inc(x_1904); -lean::inc(x_0); -x_1907 = lean::apply_1(x_1904, x_0); +x_1907 = l_lean_parser_ident__univs_has__view; x_1908 = lean::cnstr_get(x_1907, 0); lean::inc(x_1908); -x_1910 = lean::cnstr_get(x_1907, 1); -lean::inc(x_1910); -lean::dec(x_1907); -if (lean::obj_tag(x_1910) == 0) +lean::inc(x_0); +x_1911 = lean::apply_1(x_1908, x_0); +x_1912 = lean::cnstr_get(x_1911, 0); +lean::inc(x_1912); +x_1914 = lean::cnstr_get(x_1911, 1); +lean::inc(x_1914); +lean::dec(x_1911); +if (lean::obj_tag(x_1914) == 0) { -obj* x_1915; obj* x_1916; obj* x_1918; obj* x_1919; obj* x_1922; obj* x_1923; obj* x_1924; obj* x_1926; obj* x_1927; obj* x_1928; uint8 x_1929; -lean::dec(x_1910); -lean::inc(x_1908); -x_1915 = l_lean_elaborator_mangle__ident(x_1908); -x_1916 = lean::box(0); -lean::inc(x_1916); -x_1918 = lean::alloc_cnstr(4, 2, 0); -lean::cnstr_set(x_1918, 0, x_1915); -lean::cnstr_set(x_1918, 1, x_1916); -x_1919 = lean::cnstr_get(x_1908, 3); -lean::inc(x_1919); -lean::dec(x_1908); -x_1922 = lean::mk_nat_obj(0u); -x_1923 = l_list_enum__from___main___rarg(x_1922, x_1919); -x_1924 = l_lean_elaborator_to__pexpr___main___closed__44; -lean::inc(x_1924); -x_1926 = l_list_foldl___main___at_lean_elaborator_to__pexpr___main___spec__22(x_1924, x_1923); -x_1927 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1927, 0, x_1926); -lean::cnstr_set(x_1927, 1, x_1918); -x_1928 = l_lean_elaborator_to__pexpr___main___closed__2; -x_1929 = lean::name_dec_eq(x_9, x_1928); +obj* x_1919; obj* x_1920; obj* x_1922; obj* x_1923; obj* x_1926; obj* x_1927; obj* x_1928; obj* x_1930; obj* x_1931; obj* x_1932; uint8 x_1933; +lean::dec(x_1914); +lean::inc(x_1912); +x_1919 = l_lean_elaborator_mangle__ident(x_1912); +x_1920 = lean::box(0); +lean::inc(x_1920); +x_1922 = lean::alloc_cnstr(4, 2, 0); +lean::cnstr_set(x_1922, 0, x_1919); +lean::cnstr_set(x_1922, 1, x_1920); +x_1923 = lean::cnstr_get(x_1912, 3); +lean::inc(x_1923); +lean::dec(x_1912); +x_1926 = lean::mk_nat_obj(0u); +x_1927 = l_list_enum__from___main___rarg(x_1926, x_1923); +x_1928 = l_lean_elaborator_to__pexpr___main___closed__44; +lean::inc(x_1928); +x_1930 = l_list_foldl___main___at_lean_elaborator_to__pexpr___main___spec__22(x_1928, x_1927); +x_1931 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1931, 0, x_1930); +lean::cnstr_set(x_1931, 1, x_1922); +x_1932 = l_lean_elaborator_to__pexpr___main___closed__2; +x_1933 = lean::name_dec_eq(x_9, x_1932); lean::dec(x_9); -if (x_1929 == 0) +if (x_1933 == 0) { -obj* x_1931; -x_1931 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_1931) == 0) +obj* x_1935; +x_1935 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_1935) == 0) { -obj* x_1935; obj* x_1936; +obj* x_1939; obj* x_1940; +lean::dec(x_1920); lean::dec(x_1); -lean::dec(x_1916); -lean::dec(x_1931); -x_1935 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1935, 0, x_1927); -lean::cnstr_set(x_1935, 1, x_2); -x_1936 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1936, 0, x_1935); -return x_1936; +lean::dec(x_1935); +x_1939 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1939, 0, x_1931); +lean::cnstr_set(x_1939, 1, x_2); +x_1940 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1940, 0, x_1939); +return x_1940; } else { -obj* x_1937; obj* x_1940; obj* x_1943; obj* x_1946; obj* x_1947; obj* x_1949; obj* x_1951; obj* x_1952; obj* x_1955; obj* x_1957; obj* x_1958; obj* x_1959; obj* x_1960; -x_1937 = lean::cnstr_get(x_1931, 0); -lean::inc(x_1937); -lean::dec(x_1931); -x_1940 = lean::cnstr_get(x_1, 0); -lean::inc(x_1940); +obj* x_1941; obj* x_1944; obj* x_1947; obj* x_1950; obj* x_1951; obj* x_1953; obj* x_1955; obj* x_1956; obj* x_1959; obj* x_1961; obj* x_1962; obj* x_1963; obj* x_1964; +x_1941 = lean::cnstr_get(x_1935, 0); +lean::inc(x_1941); +lean::dec(x_1935); +x_1944 = lean::cnstr_get(x_1, 0); +lean::inc(x_1944); lean::dec(x_1); -x_1943 = lean::cnstr_get(x_1940, 2); -lean::inc(x_1943); -lean::dec(x_1940); -x_1946 = l_lean_file__map_to__position(x_1943, x_1937); -x_1947 = lean::cnstr_get(x_1946, 1); +x_1947 = lean::cnstr_get(x_1944, 2); lean::inc(x_1947); -x_1949 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_1949); -x_1951 = l_lean_kvmap_set__nat(x_1916, x_1949, x_1947); -x_1952 = lean::cnstr_get(x_1946, 0); -lean::inc(x_1952); -lean::dec(x_1946); -x_1955 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_1955); -x_1957 = l_lean_kvmap_set__nat(x_1951, x_1955, x_1952); -x_1958 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_1958, 0, x_1957); -lean::cnstr_set(x_1958, 1, x_1927); -x_1959 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1959, 0, x_1958); -lean::cnstr_set(x_1959, 1, x_2); -x_1960 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1960, 0, x_1959); -return x_1960; +lean::dec(x_1944); +x_1950 = l_lean_file__map_to__position(x_1947, x_1941); +x_1951 = lean::cnstr_get(x_1950, 1); +lean::inc(x_1951); +x_1953 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_1953); +x_1955 = l_lean_kvmap_set__nat(x_1920, x_1953, x_1951); +x_1956 = lean::cnstr_get(x_1950, 0); +lean::inc(x_1956); +lean::dec(x_1950); +x_1959 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_1959); +x_1961 = l_lean_kvmap_set__nat(x_1955, x_1959, x_1956); +x_1962 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_1962, 0, x_1961); +lean::cnstr_set(x_1962, 1, x_1931); +x_1963 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1963, 0, x_1962); +lean::cnstr_set(x_1963, 1, x_2); +x_1964 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1964, 0, x_1963); +return x_1964; } } else { -obj* x_1964; obj* x_1965; +obj* x_1968; obj* x_1969; +lean::dec(x_1920); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1916); -x_1964 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_1964, 0, x_1927); -lean::cnstr_set(x_1964, 1, x_2); -x_1965 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_1965, 0, x_1964); -return x_1965; +x_1968 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_1968, 0, x_1931); +lean::cnstr_set(x_1968, 1, x_2); +x_1969 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_1969, 0, x_1968); +return x_1969; } } else { -obj* x_1966; obj* x_1969; obj* x_1973; -x_1966 = lean::cnstr_get(x_1910, 0); -lean::inc(x_1966); -lean::dec(x_1910); -x_1969 = lean::cnstr_get(x_1966, 1); -lean::inc(x_1969); -lean::dec(x_1966); +obj* x_1970; obj* x_1973; obj* x_1977; +x_1970 = lean::cnstr_get(x_1914, 0); +lean::inc(x_1970); +lean::dec(x_1914); +x_1973 = lean::cnstr_get(x_1970, 1); +lean::inc(x_1973); +lean::dec(x_1970); lean::inc(x_1); -x_1973 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__23(x_1969, x_1, x_2); -if (lean::obj_tag(x_1973) == 0) +x_1977 = l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__23(x_1973, x_1, x_2); +if (lean::obj_tag(x_1977) == 0) { -obj* x_1978; obj* x_1980; obj* x_1981; +obj* x_1982; obj* x_1984; obj* x_1985; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -lean::dec(x_1908); -x_1978 = lean::cnstr_get(x_1973, 0); -lean::inc(x_1978); -if (lean::is_shared(x_1973)) { - lean::dec(x_1973); - x_1980 = lean::box(0); +lean::dec(x_1912); +x_1982 = lean::cnstr_get(x_1977, 0); +lean::inc(x_1982); +if (lean::is_shared(x_1977)) { + lean::dec(x_1977); + x_1984 = lean::box(0); } else { - lean::cnstr_release(x_1973, 0); - x_1980 = x_1973; + lean::cnstr_release(x_1977, 0); + x_1984 = x_1977; } -if (lean::is_scalar(x_1980)) { - x_1981 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_1984)) { + x_1985 = lean::alloc_cnstr(0, 1, 0); } else { - x_1981 = x_1980; + x_1985 = x_1984; } -lean::cnstr_set(x_1981, 0, x_1978); -return x_1981; +lean::cnstr_set(x_1985, 0, x_1982); +return x_1985; } else { -obj* x_1982; obj* x_1985; obj* x_1987; obj* x_1989; obj* x_1991; obj* x_1992; obj* x_1993; obj* x_1996; obj* x_1997; obj* x_1998; obj* x_2000; obj* x_2001; obj* x_2002; -x_1982 = lean::cnstr_get(x_1973, 0); -lean::inc(x_1982); -lean::dec(x_1973); -x_1985 = lean::cnstr_get(x_1982, 0); -lean::inc(x_1985); -x_1987 = lean::cnstr_get(x_1982, 1); -lean::inc(x_1987); -if (lean::is_shared(x_1982)) { - lean::dec(x_1982); - x_1989 = lean::box(0); +obj* x_1986; obj* x_1989; obj* x_1991; obj* x_1993; obj* x_1995; obj* x_1996; obj* x_1997; obj* x_2000; obj* x_2001; obj* x_2002; obj* x_2004; obj* x_2005; obj* x_2006; +x_1986 = lean::cnstr_get(x_1977, 0); +lean::inc(x_1986); +lean::dec(x_1977); +x_1989 = lean::cnstr_get(x_1986, 0); +lean::inc(x_1989); +x_1991 = lean::cnstr_get(x_1986, 1); +lean::inc(x_1991); +if (lean::is_shared(x_1986)) { + lean::dec(x_1986); + x_1993 = lean::box(0); } else { - lean::cnstr_release(x_1982, 0); - lean::cnstr_release(x_1982, 1); - x_1989 = x_1982; + lean::cnstr_release(x_1986, 0); + lean::cnstr_release(x_1986, 1); + x_1993 = x_1986; } -lean::inc(x_1908); -x_1991 = l_lean_elaborator_mangle__ident(x_1908); -x_1992 = lean::alloc_cnstr(4, 2, 0); -lean::cnstr_set(x_1992, 0, x_1991); -lean::cnstr_set(x_1992, 1, x_1985); -x_1993 = lean::cnstr_get(x_1908, 3); -lean::inc(x_1993); -lean::dec(x_1908); -x_1996 = lean::mk_nat_obj(0u); -x_1997 = l_list_enum__from___main___rarg(x_1996, x_1993); -x_1998 = l_lean_elaborator_to__pexpr___main___closed__44; -lean::inc(x_1998); -x_2000 = l_list_foldl___main___at_lean_elaborator_to__pexpr___main___spec__24(x_1998, x_1997); -x_2001 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_2001, 0, x_2000); -lean::cnstr_set(x_2001, 1, x_1992); -if (lean::is_scalar(x_1989)) { - x_2002 = lean::alloc_cnstr(0, 2, 0); +lean::inc(x_1912); +x_1995 = l_lean_elaborator_mangle__ident(x_1912); +x_1996 = lean::alloc_cnstr(4, 2, 0); +lean::cnstr_set(x_1996, 0, x_1995); +lean::cnstr_set(x_1996, 1, x_1989); +x_1997 = lean::cnstr_get(x_1912, 3); +lean::inc(x_1997); +lean::dec(x_1912); +x_2000 = lean::mk_nat_obj(0u); +x_2001 = l_list_enum__from___main___rarg(x_2000, x_1997); +x_2002 = l_lean_elaborator_to__pexpr___main___closed__44; +lean::inc(x_2002); +x_2004 = l_list_foldl___main___at_lean_elaborator_to__pexpr___main___spec__24(x_2002, x_2001); +x_2005 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_2005, 0, x_2004); +lean::cnstr_set(x_2005, 1, x_1996); +if (lean::is_scalar(x_1993)) { + x_2006 = lean::alloc_cnstr(0, 2, 0); } else { - x_2002 = x_1989; + x_2006 = x_1993; } -lean::cnstr_set(x_2002, 0, x_2001); -lean::cnstr_set(x_2002, 1, x_1987); -x_16 = x_2002; +lean::cnstr_set(x_2006, 0, x_2005); +lean::cnstr_set(x_2006, 1, x_1991); +x_16 = x_2006; goto lbl_17; } } @@ -11418,30 +11422,10 @@ lbl_15: { if (lean::obj_tag(x_14) == 0) { -obj* x_2006; obj* x_2008; obj* x_2009; +obj* x_2010; obj* x_2012; obj* x_2013; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_2006 = lean::cnstr_get(x_14, 0); -lean::inc(x_2006); -if (lean::is_shared(x_14)) { - lean::dec(x_14); - x_2008 = lean::box(0); -} else { - lean::cnstr_release(x_14, 0); - x_2008 = x_14; -} -if (lean::is_scalar(x_2008)) { - x_2009 = lean::alloc_cnstr(0, 1, 0); -} else { - x_2009 = x_2008; -} -lean::cnstr_set(x_2009, 0, x_2006); -return x_2009; -} -else -{ -obj* x_2010; obj* x_2012; obj* x_2013; obj* x_2015; obj* x_2017; obj* x_2018; uint8 x_2019; x_2010 = lean::cnstr_get(x_14, 0); lean::inc(x_2010); if (lean::is_shared(x_14)) { @@ -11451,317 +11435,338 @@ if (lean::is_shared(x_14)) { lean::cnstr_release(x_14, 0); x_2012 = x_14; } -x_2013 = lean::cnstr_get(x_2010, 0); -lean::inc(x_2013); -x_2015 = lean::cnstr_get(x_2010, 1); -lean::inc(x_2015); -if (lean::is_shared(x_2010)) { - lean::dec(x_2010); - x_2017 = lean::box(0); +if (lean::is_scalar(x_2012)) { + x_2013 = lean::alloc_cnstr(0, 1, 0); } else { - lean::cnstr_release(x_2010, 0); - lean::cnstr_release(x_2010, 1); - x_2017 = x_2010; + x_2013 = x_2012; } -x_2018 = l_lean_elaborator_to__pexpr___main___closed__2; -x_2019 = lean::name_dec_eq(x_9, x_2018); +lean::cnstr_set(x_2013, 0, x_2010); +return x_2013; +} +else +{ +obj* x_2014; obj* x_2016; obj* x_2017; obj* x_2019; obj* x_2021; obj* x_2022; uint8 x_2023; +x_2014 = lean::cnstr_get(x_14, 0); +lean::inc(x_2014); +if (lean::is_shared(x_14)) { + lean::dec(x_14); + x_2016 = lean::box(0); +} else { + lean::cnstr_release(x_14, 0); + x_2016 = x_14; +} +x_2017 = lean::cnstr_get(x_2014, 0); +lean::inc(x_2017); +x_2019 = lean::cnstr_get(x_2014, 1); +lean::inc(x_2019); +if (lean::is_shared(x_2014)) { + lean::dec(x_2014); + x_2021 = lean::box(0); +} else { + lean::cnstr_release(x_2014, 0); + lean::cnstr_release(x_2014, 1); + x_2021 = x_2014; +} +x_2022 = l_lean_elaborator_to__pexpr___main___closed__2; +x_2023 = lean::name_dec_eq(x_9, x_2022); lean::dec(x_9); -if (x_2019 == 0) +if (x_2023 == 0) { -obj* x_2021; -x_2021 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_2021) == 0) +obj* x_2025; +x_2025 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_2025) == 0) { -obj* x_2024; obj* x_2025; +obj* x_2028; obj* x_2029; lean::dec(x_1); -lean::dec(x_2021); -if (lean::is_scalar(x_2017)) { - x_2024 = lean::alloc_cnstr(0, 2, 0); +lean::dec(x_2025); +if (lean::is_scalar(x_2021)) { + x_2028 = lean::alloc_cnstr(0, 2, 0); } else { - x_2024 = x_2017; + x_2028 = x_2021; } -lean::cnstr_set(x_2024, 0, x_2013); -lean::cnstr_set(x_2024, 1, x_2015); -if (lean::is_scalar(x_2012)) { - x_2025 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_2028, 0, x_2017); +lean::cnstr_set(x_2028, 1, x_2019); +if (lean::is_scalar(x_2016)) { + x_2029 = lean::alloc_cnstr(1, 1, 0); } else { - x_2025 = x_2012; + x_2029 = x_2016; } -lean::cnstr_set(x_2025, 0, x_2024); -return x_2025; +lean::cnstr_set(x_2029, 0, x_2028); +return x_2029; } else { -obj* x_2026; obj* x_2029; obj* x_2032; obj* x_2035; obj* x_2036; obj* x_2037; obj* x_2039; obj* x_2041; obj* x_2042; obj* x_2045; obj* x_2047; obj* x_2048; obj* x_2049; obj* x_2050; -x_2026 = lean::cnstr_get(x_2021, 0); -lean::inc(x_2026); -lean::dec(x_2021); -x_2029 = lean::cnstr_get(x_1, 0); -lean::inc(x_2029); +obj* x_2030; obj* x_2033; obj* x_2036; obj* x_2039; obj* x_2040; obj* x_2041; obj* x_2043; obj* x_2045; obj* x_2046; obj* x_2049; obj* x_2051; obj* x_2052; obj* x_2053; obj* x_2054; +x_2030 = lean::cnstr_get(x_2025, 0); +lean::inc(x_2030); +lean::dec(x_2025); +x_2033 = lean::cnstr_get(x_1, 0); +lean::inc(x_2033); lean::dec(x_1); -x_2032 = lean::cnstr_get(x_2029, 2); -lean::inc(x_2032); -lean::dec(x_2029); -x_2035 = l_lean_file__map_to__position(x_2032, x_2026); -x_2036 = lean::box(0); -x_2037 = lean::cnstr_get(x_2035, 1); -lean::inc(x_2037); -x_2039 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_2039); -x_2041 = l_lean_kvmap_set__nat(x_2036, x_2039, x_2037); -x_2042 = lean::cnstr_get(x_2035, 0); -lean::inc(x_2042); -lean::dec(x_2035); -x_2045 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_2045); -x_2047 = l_lean_kvmap_set__nat(x_2041, x_2045, x_2042); -x_2048 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_2048, 0, x_2047); -lean::cnstr_set(x_2048, 1, x_2013); -if (lean::is_scalar(x_2017)) { - x_2049 = lean::alloc_cnstr(0, 2, 0); -} else { - x_2049 = x_2017; -} -lean::cnstr_set(x_2049, 0, x_2048); -lean::cnstr_set(x_2049, 1, x_2015); -if (lean::is_scalar(x_2012)) { - x_2050 = lean::alloc_cnstr(1, 1, 0); -} else { - x_2050 = x_2012; -} -lean::cnstr_set(x_2050, 0, x_2049); -return x_2050; -} -} -else -{ -obj* x_2053; obj* x_2054; -lean::dec(x_1); -lean::dec(x_0); -if (lean::is_scalar(x_2017)) { +x_2036 = lean::cnstr_get(x_2033, 2); +lean::inc(x_2036); +lean::dec(x_2033); +x_2039 = l_lean_file__map_to__position(x_2036, x_2030); +x_2040 = lean::box(0); +x_2041 = lean::cnstr_get(x_2039, 1); +lean::inc(x_2041); +x_2043 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_2043); +x_2045 = l_lean_kvmap_set__nat(x_2040, x_2043, x_2041); +x_2046 = lean::cnstr_get(x_2039, 0); +lean::inc(x_2046); +lean::dec(x_2039); +x_2049 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_2049); +x_2051 = l_lean_kvmap_set__nat(x_2045, x_2049, x_2046); +x_2052 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_2052, 0, x_2051); +lean::cnstr_set(x_2052, 1, x_2017); +if (lean::is_scalar(x_2021)) { x_2053 = lean::alloc_cnstr(0, 2, 0); } else { - x_2053 = x_2017; + x_2053 = x_2021; } -lean::cnstr_set(x_2053, 0, x_2013); -lean::cnstr_set(x_2053, 1, x_2015); -if (lean::is_scalar(x_2012)) { +lean::cnstr_set(x_2053, 0, x_2052); +lean::cnstr_set(x_2053, 1, x_2019); +if (lean::is_scalar(x_2016)) { x_2054 = lean::alloc_cnstr(1, 1, 0); } else { - x_2054 = x_2012; + x_2054 = x_2016; } lean::cnstr_set(x_2054, 0, x_2053); return x_2054; } } +else +{ +obj* x_2057; obj* x_2058; +lean::dec(x_1); +lean::dec(x_0); +if (lean::is_scalar(x_2021)) { + x_2057 = lean::alloc_cnstr(0, 2, 0); +} else { + x_2057 = x_2021; +} +lean::cnstr_set(x_2057, 0, x_2017); +lean::cnstr_set(x_2057, 1, x_2019); +if (lean::is_scalar(x_2016)) { + x_2058 = lean::alloc_cnstr(1, 1, 0); +} else { + x_2058 = x_2016; +} +lean::cnstr_set(x_2058, 0, x_2057); +return x_2058; +} +} } lbl_17: { -obj* x_2055; obj* x_2057; obj* x_2059; obj* x_2060; uint8 x_2061; -x_2055 = lean::cnstr_get(x_16, 0); -lean::inc(x_2055); -x_2057 = lean::cnstr_get(x_16, 1); -lean::inc(x_2057); +obj* x_2059; obj* x_2061; obj* x_2063; obj* x_2064; uint8 x_2065; +x_2059 = lean::cnstr_get(x_16, 0); +lean::inc(x_2059); +x_2061 = lean::cnstr_get(x_16, 1); +lean::inc(x_2061); if (lean::is_shared(x_16)) { lean::dec(x_16); - x_2059 = lean::box(0); + x_2063 = lean::box(0); } else { lean::cnstr_release(x_16, 0); lean::cnstr_release(x_16, 1); - x_2059 = x_16; + x_2063 = x_16; } -x_2060 = l_lean_elaborator_to__pexpr___main___closed__2; -x_2061 = lean::name_dec_eq(x_9, x_2060); +x_2064 = l_lean_elaborator_to__pexpr___main___closed__2; +x_2065 = lean::name_dec_eq(x_9, x_2064); lean::dec(x_9); -if (x_2061 == 0) +if (x_2065 == 0) { -obj* x_2063; -x_2063 = l_lean_parser_syntax_get__pos(x_0); -if (lean::obj_tag(x_2063) == 0) +obj* x_2067; +x_2067 = l_lean_parser_syntax_get__pos(x_0); +if (lean::obj_tag(x_2067) == 0) { -obj* x_2066; obj* x_2067; +obj* x_2070; obj* x_2071; lean::dec(x_1); -lean::dec(x_2063); -if (lean::is_scalar(x_2059)) { - x_2066 = lean::alloc_cnstr(0, 2, 0); +lean::dec(x_2067); +if (lean::is_scalar(x_2063)) { + x_2070 = lean::alloc_cnstr(0, 2, 0); } else { - x_2066 = x_2059; + x_2070 = x_2063; } -lean::cnstr_set(x_2066, 0, x_2055); -lean::cnstr_set(x_2066, 1, x_2057); -x_2067 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_2067, 0, x_2066); -return x_2067; +lean::cnstr_set(x_2070, 0, x_2059); +lean::cnstr_set(x_2070, 1, x_2061); +x_2071 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_2071, 0, x_2070); +return x_2071; } else { -obj* x_2068; obj* x_2071; obj* x_2074; obj* x_2077; obj* x_2078; obj* x_2079; obj* x_2081; obj* x_2083; obj* x_2084; obj* x_2087; obj* x_2089; obj* x_2090; obj* x_2091; obj* x_2092; -x_2068 = lean::cnstr_get(x_2063, 0); -lean::inc(x_2068); -lean::dec(x_2063); -x_2071 = lean::cnstr_get(x_1, 0); -lean::inc(x_2071); +obj* x_2072; obj* x_2075; obj* x_2078; obj* x_2081; obj* x_2082; obj* x_2083; obj* x_2085; obj* x_2087; obj* x_2088; obj* x_2091; obj* x_2093; obj* x_2094; obj* x_2095; obj* x_2096; +x_2072 = lean::cnstr_get(x_2067, 0); +lean::inc(x_2072); +lean::dec(x_2067); +x_2075 = lean::cnstr_get(x_1, 0); +lean::inc(x_2075); lean::dec(x_1); -x_2074 = lean::cnstr_get(x_2071, 2); -lean::inc(x_2074); -lean::dec(x_2071); -x_2077 = l_lean_file__map_to__position(x_2074, x_2068); -x_2078 = lean::box(0); -x_2079 = lean::cnstr_get(x_2077, 1); -lean::inc(x_2079); -x_2081 = l_lean_elaborator_to__pexpr___main___closed__3; -lean::inc(x_2081); -x_2083 = l_lean_kvmap_set__nat(x_2078, x_2081, x_2079); -x_2084 = lean::cnstr_get(x_2077, 0); -lean::inc(x_2084); -lean::dec(x_2077); -x_2087 = l_lean_elaborator_to__pexpr___main___closed__4; -lean::inc(x_2087); -x_2089 = l_lean_kvmap_set__nat(x_2083, x_2087, x_2084); -x_2090 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_2090, 0, x_2089); -lean::cnstr_set(x_2090, 1, x_2055); -if (lean::is_scalar(x_2059)) { - x_2091 = lean::alloc_cnstr(0, 2, 0); -} else { - x_2091 = x_2059; -} -lean::cnstr_set(x_2091, 0, x_2090); -lean::cnstr_set(x_2091, 1, x_2057); -x_2092 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_2092, 0, x_2091); -return x_2092; -} -} -else -{ -obj* x_2095; obj* x_2096; -lean::dec(x_1); -lean::dec(x_0); -if (lean::is_scalar(x_2059)) { +x_2078 = lean::cnstr_get(x_2075, 2); +lean::inc(x_2078); +lean::dec(x_2075); +x_2081 = l_lean_file__map_to__position(x_2078, x_2072); +x_2082 = lean::box(0); +x_2083 = lean::cnstr_get(x_2081, 1); +lean::inc(x_2083); +x_2085 = l_lean_elaborator_to__pexpr___main___closed__3; +lean::inc(x_2085); +x_2087 = l_lean_kvmap_set__nat(x_2082, x_2085, x_2083); +x_2088 = lean::cnstr_get(x_2081, 0); +lean::inc(x_2088); +lean::dec(x_2081); +x_2091 = l_lean_elaborator_to__pexpr___main___closed__4; +lean::inc(x_2091); +x_2093 = l_lean_kvmap_set__nat(x_2087, x_2091, x_2088); +x_2094 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_2094, 0, x_2093); +lean::cnstr_set(x_2094, 1, x_2059); +if (lean::is_scalar(x_2063)) { x_2095 = lean::alloc_cnstr(0, 2, 0); } else { - x_2095 = x_2059; + x_2095 = x_2063; } -lean::cnstr_set(x_2095, 0, x_2055); -lean::cnstr_set(x_2095, 1, x_2057); +lean::cnstr_set(x_2095, 0, x_2094); +lean::cnstr_set(x_2095, 1, x_2061); x_2096 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_2096, 0, x_2095); return x_2096; } } +else +{ +obj* x_2099; obj* x_2100; +lean::dec(x_1); +lean::dec(x_0); +if (lean::is_scalar(x_2063)) { + x_2099 = lean::alloc_cnstr(0, 2, 0); +} else { + x_2099 = x_2063; +} +lean::cnstr_set(x_2099, 0, x_2059); +lean::cnstr_set(x_2099, 1, x_2061); +x_2100 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_2100, 0, x_2099); +return x_2100; +} +} lbl_19: { -obj* x_2097; obj* x_2099; obj* x_2101; -x_2097 = lean::cnstr_get(x_18, 0); -lean::inc(x_2097); -x_2099 = lean::cnstr_get(x_18, 1); -lean::inc(x_2099); +obj* x_2101; obj* x_2103; obj* x_2105; +x_2101 = lean::cnstr_get(x_18, 0); +lean::inc(x_2101); +x_2103 = lean::cnstr_get(x_18, 1); +lean::inc(x_2103); if (lean::is_shared(x_18)) { lean::dec(x_18); - x_2101 = lean::box(0); + x_2105 = lean::box(0); } else { lean::cnstr_release(x_18, 0); lean::cnstr_release(x_18, 1); - x_2101 = x_18; + x_2105 = x_18; } -if (lean::obj_tag(x_2097) == 0) +if (lean::obj_tag(x_2101) == 0) { -obj* x_2105; obj* x_2109; +obj* x_2109; obj* x_2113; lean::dec(x_11); lean::dec(x_2101); -lean::dec(x_2097); -x_2105 = l_lean_elaborator_to__pexpr___main___closed__5; +lean::dec(x_2105); +x_2109 = l_lean_elaborator_to__pexpr___main___closed__5; lean::inc(x_1); -lean::inc(x_2105); +lean::inc(x_2109); lean::inc(x_0); -x_2109 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_2105, x_1, x_2099); -if (lean::obj_tag(x_2109) == 0) +x_2113 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_2109, x_1, x_2103); +if (lean::obj_tag(x_2113) == 0) { -obj* x_2113; obj* x_2115; obj* x_2116; +obj* x_2117; obj* x_2119; obj* x_2120; lean::dec(x_9); lean::dec(x_1); lean::dec(x_0); -x_2113 = lean::cnstr_get(x_2109, 0); -lean::inc(x_2113); -if (lean::is_shared(x_2109)) { - lean::dec(x_2109); - x_2115 = lean::box(0); +x_2117 = lean::cnstr_get(x_2113, 0); +lean::inc(x_2117); +if (lean::is_shared(x_2113)) { + lean::dec(x_2113); + x_2119 = lean::box(0); } else { - lean::cnstr_release(x_2109, 0); - x_2115 = x_2109; + lean::cnstr_release(x_2113, 0); + x_2119 = x_2113; } -if (lean::is_scalar(x_2115)) { - x_2116 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_2119)) { + x_2120 = lean::alloc_cnstr(0, 1, 0); } else { - x_2116 = x_2115; + x_2120 = x_2119; } -lean::cnstr_set(x_2116, 0, x_2113); -return x_2116; +lean::cnstr_set(x_2120, 0, x_2117); +return x_2120; } else { -obj* x_2117; -x_2117 = lean::cnstr_get(x_2109, 0); -lean::inc(x_2117); -lean::dec(x_2109); -x_16 = x_2117; +obj* x_2121; +x_2121 = lean::cnstr_get(x_2113, 0); +lean::inc(x_2121); +lean::dec(x_2113); +x_16 = x_2121; goto lbl_17; } } else { -obj* x_2120; obj* x_2122; obj* x_2125; obj* x_2126; obj* x_2127; obj* x_2129; obj* x_2130; obj* x_2131; obj* x_2132; obj* x_2133; -x_2120 = lean::cnstr_get(x_2097, 0); -lean::inc(x_2120); -x_2122 = lean::cnstr_get(x_2097, 1); -lean::inc(x_2122); -lean::dec(x_2097); -x_2125 = lean::box(0); -x_2126 = l_list_length___main___rarg(x_11); -x_2127 = l_lean_elaborator_to__pexpr___main___closed__6; -lean::inc(x_2127); -x_2129 = l_lean_kvmap_set__nat(x_2125, x_2127, x_2126); -x_2130 = l_list_reverse___rarg(x_2122); -x_2131 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__1(x_2120, x_2130); -x_2132 = lean::alloc_cnstr(10, 2, 0); -lean::cnstr_set(x_2132, 0, x_2129); -lean::cnstr_set(x_2132, 1, x_2131); -if (lean::is_scalar(x_2101)) { - x_2133 = lean::alloc_cnstr(0, 2, 0); +obj* x_2124; obj* x_2126; obj* x_2129; obj* x_2130; obj* x_2131; obj* x_2132; obj* x_2134; obj* x_2135; obj* x_2136; obj* x_2137; obj* x_2138; +x_2124 = lean::cnstr_get(x_2101, 0); +lean::inc(x_2124); +x_2126 = lean::cnstr_get(x_2101, 1); +lean::inc(x_2126); +lean::dec(x_2101); +x_2129 = lean::box(0); +x_2130 = lean::mk_nat_obj(0u); +x_2131 = l_list_length__aux___main___rarg(x_11, x_2130); +x_2132 = l_lean_elaborator_to__pexpr___main___closed__6; +lean::inc(x_2132); +x_2134 = l_lean_kvmap_set__nat(x_2129, x_2132, x_2131); +x_2135 = l_list_reverse___rarg(x_2126); +x_2136 = l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__1(x_2124, x_2135); +x_2137 = lean::alloc_cnstr(10, 2, 0); +lean::cnstr_set(x_2137, 0, x_2134); +lean::cnstr_set(x_2137, 1, x_2136); +if (lean::is_scalar(x_2105)) { + x_2138 = lean::alloc_cnstr(0, 2, 0); } else { - x_2133 = x_2101; + x_2138 = x_2105; } -lean::cnstr_set(x_2133, 0, x_2132); -lean::cnstr_set(x_2133, 1, x_2099); -x_16 = x_2133; +lean::cnstr_set(x_2138, 0, x_2137); +lean::cnstr_set(x_2138, 1, x_2103); +x_16 = x_2138; goto lbl_17; } } } default: { -obj* x_2134; -x_2134 = lean::box(0); -x_3 = x_2134; +obj* x_2139; +x_2139 = lean::box(0); +x_3 = x_2139; goto lbl_4; } } lbl_4: { -obj* x_2137; obj* x_2138; obj* x_2139; obj* x_2140; obj* x_2142; obj* x_2144; +obj* x_2142; obj* x_2143; obj* x_2144; obj* x_2145; obj* x_2147; obj* x_2149; lean::dec(x_3); lean::inc(x_0); -x_2137 = l_lean_parser_syntax_to__format___main(x_0); -x_2138 = lean::mk_nat_obj(80u); -x_2139 = l_lean_format_pretty(x_2137, x_2138); -x_2140 = l_lean_elaborator_to__pexpr___main___closed__1; -lean::inc(x_2140); -x_2142 = lean::string_append(x_2140, x_2139); -lean::dec(x_2139); -x_2144 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_2142, x_1, x_2); -return x_2144; +x_2142 = l_lean_parser_syntax_to__format___main(x_0); +x_2143 = lean::mk_nat_obj(80u); +x_2144 = l_lean_format_pretty(x_2142, x_2143); +x_2145 = l_lean_elaborator_to__pexpr___main___closed__1; +lean::inc(x_2145); +x_2147 = lean::string_append(x_2145, x_2144); +lean::dec(x_2144); +x_2149 = l_lean_expander_error___at_lean_elaborator_level__get__app__args___main___spec__1___rarg(x_0, x_2147, x_1, x_2); +return x_2149; } } } diff --git a/src/boot/init/lean/ir/extract_cpp.cpp b/src/boot/init/lean/ir/extract_cpp.cpp index 7c70a3675f..0a36e94a45 100644 --- a/src/boot/init/lean/ir/extract_cpp.cpp +++ b/src/boot/init/lean/ir/extract_cpp.cpp @@ -76,7 +76,6 @@ obj* l_lean_ir_cpp_emit__assign__binop___closed__3; obj* l_lean_ir_cpp_emit__def__core(obj*, obj*, obj*); obj* l_state__t_monad__run___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_ir_cpp_assign__unop2cpp___main___closed__6; -obj* l_list_length___main___rarg(obj*); obj* l_lean_ir_extract__cpp___closed__1; obj* l_lean_ir_cpp_emit__apply___closed__1; obj* l_lean_ir_cpp_assign__unop2cpp___main(uint8, uint8); @@ -298,6 +297,7 @@ obj* l_lean_ir_cpp_assign__unop2cpp___main___closed__7; obj* l_list_mmap_x_27___main___at_lean_ir_cpp_emit__finalize__proc___spec__2___closed__2; obj* l_lean_ir_cpp_emit__type__size(uint8, obj*, obj*); obj* l_lean_ir_cpp_emit__assign__binop___closed__35; +obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_lean_ir_cpp_emit__type(uint8, obj*, obj*); obj* l_reader__t_pure___at_lean_ir_cpp_emit__uncurry___spec__2___rarg(obj*, obj*, obj*); obj* l_lean_ir_cpp_emit__assign__binop___closed__16; @@ -9192,272 +9192,273 @@ return x_9; } else { -obj* x_10; obj* x_12; obj* x_15; obj* x_16; uint8 x_17; +obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_17; uint8 x_18; x_10 = lean::cnstr_get(x_1, 0); lean::inc(x_10); x_12 = lean::cnstr_get(x_1, 1); lean::inc(x_12); +x_14 = lean::mk_nat_obj(0u); lean::inc(x_12); -x_15 = l_list_length___main___rarg(x_12); -x_16 = l_lean_closure__max__args; -x_17 = lean::nat_dec_lt(x_16, x_15); -if (x_17 == 0) +x_16 = l_list_length__aux___main___rarg(x_12, x_14); +x_17 = l_lean_closure__max__args; +x_18 = lean::nat_dec_lt(x_17, x_16); +if (x_18 == 0) { -obj* x_20; obj* x_21; obj* x_24; obj* x_25; obj* x_27; +obj* x_21; obj* x_22; obj* x_25; obj* x_26; obj* x_28; lean::dec(x_12); lean::dec(x_10); lean::inc(x_2); -x_24 = l_lean_ir_cpp_emit__var(x_0, x_2, x_3); -x_25 = lean::cnstr_get(x_24, 0); -lean::inc(x_25); -x_27 = lean::cnstr_get(x_24, 1); -lean::inc(x_27); -lean::dec(x_24); -if (lean::obj_tag(x_25) == 0) -{ -obj* x_30; obj* x_32; obj* x_33; -x_30 = lean::cnstr_get(x_25, 0); -lean::inc(x_30); -if (lean::is_shared(x_25)) { - lean::dec(x_25); - x_32 = lean::box(0); -} else { - lean::cnstr_release(x_25, 0); - x_32 = x_25; -} -if (lean::is_scalar(x_32)) { - x_33 = lean::alloc_cnstr(0, 1, 0); -} else { - x_33 = x_32; -} -lean::cnstr_set(x_33, 0, x_30); -x_20 = x_33; -x_21 = x_27; -goto lbl_22; -} -else -{ -obj* x_35; obj* x_38; obj* x_39; obj* x_41; +x_25 = l_lean_ir_cpp_emit__var(x_0, x_2, x_3); +x_26 = lean::cnstr_get(x_25, 0); +lean::inc(x_26); +x_28 = lean::cnstr_get(x_25, 1); +lean::inc(x_28); lean::dec(x_25); -x_35 = l_lean_ir_cpp_emit__apply___closed__3; -lean::inc(x_2); -lean::inc(x_35); -x_38 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_35, x_2, x_27); -x_39 = lean::cnstr_get(x_38, 0); -lean::inc(x_39); -x_41 = lean::cnstr_get(x_38, 1); -lean::inc(x_41); -lean::dec(x_38); -x_20 = x_39; -x_21 = x_41; -goto lbl_22; -} -lbl_22: +if (lean::obj_tag(x_26) == 0) { -if (lean::obj_tag(x_20) == 0) -{ -obj* x_47; obj* x_49; obj* x_50; obj* x_51; -lean::dec(x_15); -lean::dec(x_1); -lean::dec(x_2); -x_47 = lean::cnstr_get(x_20, 0); -lean::inc(x_47); -if (lean::is_shared(x_20)) { - lean::dec(x_20); - x_49 = lean::box(0); +obj* x_31; obj* x_33; obj* x_34; +x_31 = lean::cnstr_get(x_26, 0); +lean::inc(x_31); +if (lean::is_shared(x_26)) { + lean::dec(x_26); + x_33 = lean::box(0); } else { - lean::cnstr_release(x_20, 0); - x_49 = x_20; + lean::cnstr_release(x_26, 0); + x_33 = x_26; } -if (lean::is_scalar(x_49)) { - x_50 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_33)) { + x_34 = lean::alloc_cnstr(0, 1, 0); } else { - x_50 = x_49; + x_34 = x_33; } -lean::cnstr_set(x_50, 0, x_47); -x_51 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_51, 0, x_50); -lean::cnstr_set(x_51, 1, x_21); -return x_51; +lean::cnstr_set(x_34, 0, x_31); +x_21 = x_34; +x_22 = x_28; +goto lbl_23; } else { -obj* x_52; obj* x_54; obj* x_55; obj* x_57; obj* x_59; -if (lean::is_shared(x_20)) { - lean::dec(x_20); - x_52 = lean::box(0); -} else { - lean::cnstr_release(x_20, 0); - x_52 = x_20; -} +obj* x_36; obj* x_39; obj* x_40; obj* x_42; +lean::dec(x_26); +x_36 = l_lean_ir_cpp_emit__apply___closed__3; lean::inc(x_2); -x_54 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_15, x_2, x_21); -x_55 = lean::cnstr_get(x_54, 0); -lean::inc(x_55); -x_57 = lean::cnstr_get(x_54, 1); -lean::inc(x_57); -if (lean::is_shared(x_54)) { - lean::dec(x_54); - x_59 = lean::box(0); -} else { - lean::cnstr_release(x_54, 0); - lean::cnstr_release(x_54, 1); - x_59 = x_54; +lean::inc(x_36); +x_39 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_36, x_2, x_28); +x_40 = lean::cnstr_get(x_39, 0); +lean::inc(x_40); +x_42 = lean::cnstr_get(x_39, 1); +lean::inc(x_42); +lean::dec(x_39); +x_21 = x_40; +x_22 = x_42; +goto lbl_23; } -if (lean::obj_tag(x_55) == 0) +lbl_23: { -obj* x_62; obj* x_65; obj* x_66; +if (lean::obj_tag(x_21) == 0) +{ +obj* x_48; obj* x_50; obj* x_51; obj* x_52; +lean::dec(x_16); lean::dec(x_1); lean::dec(x_2); -x_62 = lean::cnstr_get(x_55, 0); -lean::inc(x_62); -lean::dec(x_55); -if (lean::is_scalar(x_52)) { - x_65 = lean::alloc_cnstr(0, 1, 0); +x_48 = lean::cnstr_get(x_21, 0); +lean::inc(x_48); +if (lean::is_shared(x_21)) { + lean::dec(x_21); + x_50 = lean::box(0); } else { - x_65 = x_52; - lean::cnstr_set_tag(x_52, 0); + lean::cnstr_release(x_21, 0); + x_50 = x_21; } -lean::cnstr_set(x_65, 0, x_62); -if (lean::is_scalar(x_59)) { - x_66 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_50)) { + x_51 = lean::alloc_cnstr(0, 1, 0); } else { - x_66 = x_59; + x_51 = x_50; } -lean::cnstr_set(x_66, 0, x_65); -lean::cnstr_set(x_66, 1, x_57); -return x_66; +lean::cnstr_set(x_51, 0, x_48); +x_52 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_52, 0, x_51); +lean::cnstr_set(x_52, 1, x_22); +return x_52; } else { -obj* x_68; obj* x_71; obj* x_72; obj* x_74; -lean::dec(x_55); -x_68 = l_prod_has__repr___rarg___closed__1; +obj* x_53; obj* x_55; obj* x_56; obj* x_58; obj* x_60; +if (lean::is_shared(x_21)) { + lean::dec(x_21); + x_53 = lean::box(0); +} else { + lean::cnstr_release(x_21, 0); + x_53 = x_21; +} lean::inc(x_2); -lean::inc(x_68); -x_71 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_68, x_2, x_57); -x_72 = lean::cnstr_get(x_71, 0); -lean::inc(x_72); -x_74 = lean::cnstr_get(x_71, 1); -lean::inc(x_74); -lean::dec(x_71); -if (lean::obj_tag(x_72) == 0) +x_55 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_16, x_2, x_22); +x_56 = lean::cnstr_get(x_55, 0); +lean::inc(x_56); +x_58 = lean::cnstr_get(x_55, 1); +lean::inc(x_58); +if (lean::is_shared(x_55)) { + lean::dec(x_55); + x_60 = lean::box(0); +} else { + lean::cnstr_release(x_55, 0); + lean::cnstr_release(x_55, 1); + x_60 = x_55; +} +if (lean::obj_tag(x_56) == 0) { -obj* x_79; obj* x_82; obj* x_83; +obj* x_63; obj* x_66; obj* x_67; lean::dec(x_1); lean::dec(x_2); -x_79 = lean::cnstr_get(x_72, 0); -lean::inc(x_79); +x_63 = lean::cnstr_get(x_56, 0); +lean::inc(x_63); +lean::dec(x_56); +if (lean::is_scalar(x_53)) { + x_66 = lean::alloc_cnstr(0, 1, 0); +} else { + x_66 = x_53; + lean::cnstr_set_tag(x_53, 0); +} +lean::cnstr_set(x_66, 0, x_63); +if (lean::is_scalar(x_60)) { + x_67 = lean::alloc_cnstr(0, 2, 0); +} else { + x_67 = x_60; +} +lean::cnstr_set(x_67, 0, x_66); +lean::cnstr_set(x_67, 1, x_58); +return x_67; +} +else +{ +obj* x_69; obj* x_72; obj* x_73; obj* x_75; +lean::dec(x_56); +x_69 = l_prod_has__repr___rarg___closed__1; +lean::inc(x_2); +lean::inc(x_69); +x_72 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_69, x_2, x_58); +x_73 = lean::cnstr_get(x_72, 0); +lean::inc(x_73); +x_75 = lean::cnstr_get(x_72, 1); +lean::inc(x_75); lean::dec(x_72); -if (lean::is_scalar(x_52)) { - x_82 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_73) == 0) +{ +obj* x_80; obj* x_83; obj* x_84; +lean::dec(x_1); +lean::dec(x_2); +x_80 = lean::cnstr_get(x_73, 0); +lean::inc(x_80); +lean::dec(x_73); +if (lean::is_scalar(x_53)) { + x_83 = lean::alloc_cnstr(0, 1, 0); } else { - x_82 = x_52; - lean::cnstr_set_tag(x_52, 0); + x_83 = x_53; + lean::cnstr_set_tag(x_53, 0); } -lean::cnstr_set(x_82, 0, x_79); -if (lean::is_scalar(x_59)) { - x_83 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_83, 0, x_80); +if (lean::is_scalar(x_60)) { + x_84 = lean::alloc_cnstr(0, 2, 0); } else { - x_83 = x_59; + x_84 = x_60; } -lean::cnstr_set(x_83, 0, x_82); -lean::cnstr_set(x_83, 1, x_74); -return x_83; +lean::cnstr_set(x_84, 0, x_83); +lean::cnstr_set(x_84, 1, x_75); +return x_84; } else { -obj* x_85; obj* x_86; obj* x_90; obj* x_91; obj* x_93; -lean::dec(x_72); -x_85 = l_lean_ir_cpp_emit__apply___closed__2; -x_86 = l_lean_ir_cpp_emit__template__params___closed__3; +obj* x_86; obj* x_87; obj* x_91; obj* x_92; obj* x_94; +lean::dec(x_73); +x_86 = l_lean_ir_cpp_emit__apply___closed__2; +x_87 = l_lean_ir_cpp_emit__template__params___closed__3; lean::inc(x_2); +lean::inc(x_87); lean::inc(x_86); -lean::inc(x_85); -x_90 = l_lean_ir_cpp_emit__sep__aux___main___rarg(x_85, x_86, x_1, x_2, x_74); -x_91 = lean::cnstr_get(x_90, 0); -lean::inc(x_91); -x_93 = lean::cnstr_get(x_90, 1); -lean::inc(x_93); -lean::dec(x_90); -if (lean::obj_tag(x_91) == 0) +x_91 = l_lean_ir_cpp_emit__sep__aux___main___rarg(x_86, x_87, x_1, x_2, x_75); +x_92 = lean::cnstr_get(x_91, 0); +lean::inc(x_92); +x_94 = lean::cnstr_get(x_91, 1); +lean::inc(x_94); +lean::dec(x_91); +if (lean::obj_tag(x_92) == 0) { -obj* x_97; obj* x_100; obj* x_101; +obj* x_98; obj* x_101; obj* x_102; lean::dec(x_2); -x_97 = lean::cnstr_get(x_91, 0); -lean::inc(x_97); -lean::dec(x_91); -if (lean::is_scalar(x_52)) { - x_100 = lean::alloc_cnstr(0, 1, 0); +x_98 = lean::cnstr_get(x_92, 0); +lean::inc(x_98); +lean::dec(x_92); +if (lean::is_scalar(x_53)) { + x_101 = lean::alloc_cnstr(0, 1, 0); } else { - x_100 = x_52; - lean::cnstr_set_tag(x_52, 0); + x_101 = x_53; + lean::cnstr_set_tag(x_53, 0); } -lean::cnstr_set(x_100, 0, x_97); -if (lean::is_scalar(x_59)) { - x_101 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_101, 0, x_98); +if (lean::is_scalar(x_60)) { + x_102 = lean::alloc_cnstr(0, 2, 0); } else { - x_101 = x_59; + x_102 = x_60; } -lean::cnstr_set(x_101, 0, x_100); -lean::cnstr_set(x_101, 1, x_93); -return x_101; +lean::cnstr_set(x_102, 0, x_101); +lean::cnstr_set(x_102, 1, x_94); +return x_102; } else { -obj* x_102; obj* x_105; obj* x_107; obj* x_108; obj* x_110; -x_102 = lean::cnstr_get(x_91, 0); -lean::inc(x_102); -lean::dec(x_91); -x_105 = l_option_has__repr___rarg___closed__3; -lean::inc(x_105); -x_107 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_105, x_2, x_93); -x_108 = lean::cnstr_get(x_107, 0); -lean::inc(x_108); -x_110 = lean::cnstr_get(x_107, 1); -lean::inc(x_110); -lean::dec(x_107); -if (lean::obj_tag(x_108) == 0) -{ -obj* x_114; obj* x_117; obj* x_118; -lean::dec(x_102); -x_114 = lean::cnstr_get(x_108, 0); -lean::inc(x_114); +obj* x_103; obj* x_106; obj* x_108; obj* x_109; obj* x_111; +x_103 = lean::cnstr_get(x_92, 0); +lean::inc(x_103); +lean::dec(x_92); +x_106 = l_option_has__repr___rarg___closed__3; +lean::inc(x_106); +x_108 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_106, x_2, x_94); +x_109 = lean::cnstr_get(x_108, 0); +lean::inc(x_109); +x_111 = lean::cnstr_get(x_108, 1); +lean::inc(x_111); lean::dec(x_108); -if (lean::is_scalar(x_52)) { - x_117 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_109) == 0) +{ +obj* x_115; obj* x_118; obj* x_119; +lean::dec(x_103); +x_115 = lean::cnstr_get(x_109, 0); +lean::inc(x_115); +lean::dec(x_109); +if (lean::is_scalar(x_53)) { + x_118 = lean::alloc_cnstr(0, 1, 0); } else { - x_117 = x_52; - lean::cnstr_set_tag(x_52, 0); + x_118 = x_53; + lean::cnstr_set_tag(x_53, 0); } -lean::cnstr_set(x_117, 0, x_114); -if (lean::is_scalar(x_59)) { - x_118 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_118, 0, x_115); +if (lean::is_scalar(x_60)) { + x_119 = lean::alloc_cnstr(0, 2, 0); } else { - x_118 = x_59; + x_119 = x_60; } -lean::cnstr_set(x_118, 0, x_117); -lean::cnstr_set(x_118, 1, x_110); -return x_118; +lean::cnstr_set(x_119, 0, x_118); +lean::cnstr_set(x_119, 1, x_111); +return x_119; } else { -obj* x_120; obj* x_121; -lean::dec(x_108); -if (lean::is_scalar(x_52)) { - x_120 = lean::alloc_cnstr(1, 1, 0); +obj* x_121; obj* x_122; +lean::dec(x_109); +if (lean::is_scalar(x_53)) { + x_121 = lean::alloc_cnstr(1, 1, 0); } else { - x_120 = x_52; + x_121 = x_53; } -lean::cnstr_set(x_120, 0, x_102); -if (lean::is_scalar(x_59)) { - x_121 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_121, 0, x_103); +if (lean::is_scalar(x_60)) { + x_122 = lean::alloc_cnstr(0, 2, 0); } else { - x_121 = x_59; + x_122 = x_60; } -lean::cnstr_set(x_121, 0, x_120); -lean::cnstr_set(x_121, 1, x_110); -return x_121; +lean::cnstr_set(x_122, 0, x_121); +lean::cnstr_set(x_122, 1, x_111); +return x_122; } } } @@ -9467,555 +9468,555 @@ return x_121; } else { -obj* x_123; obj* x_124; obj* x_126; obj* x_127; obj* x_129; obj* x_130; obj* x_132; obj* x_133; obj* x_135; obj* x_138; obj* x_139; obj* x_141; +obj* x_124; obj* x_125; obj* x_127; obj* x_128; obj* x_130; obj* x_131; obj* x_133; obj* x_134; obj* x_136; obj* x_139; obj* x_140; obj* x_142; lean::dec(x_1); -x_135 = l_lean_ir_cpp_emit__apply___closed__8; +x_136 = l_lean_ir_cpp_emit__apply___closed__8; lean::inc(x_2); -lean::inc(x_135); -x_138 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_135, x_2, x_3); -x_139 = lean::cnstr_get(x_138, 0); -lean::inc(x_139); -x_141 = lean::cnstr_get(x_138, 1); -lean::inc(x_141); -lean::dec(x_138); -if (lean::obj_tag(x_139) == 0) +lean::inc(x_136); +x_139 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_136, x_2, x_3); +x_140 = lean::cnstr_get(x_139, 0); +lean::inc(x_140); +x_142 = lean::cnstr_get(x_139, 1); +lean::inc(x_142); +lean::dec(x_139); +if (lean::obj_tag(x_140) == 0) { -obj* x_144; obj* x_146; obj* x_147; -x_144 = lean::cnstr_get(x_139, 0); -lean::inc(x_144); -if (lean::is_shared(x_139)) { - lean::dec(x_139); - x_146 = lean::box(0); +obj* x_145; obj* x_147; obj* x_148; +x_145 = lean::cnstr_get(x_140, 0); +lean::inc(x_145); +if (lean::is_shared(x_140)) { + lean::dec(x_140); + x_147 = lean::box(0); } else { - lean::cnstr_release(x_139, 0); - x_146 = x_139; + lean::cnstr_release(x_140, 0); + x_147 = x_140; } -if (lean::is_scalar(x_146)) { - x_147 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_147)) { + x_148 = lean::alloc_cnstr(0, 1, 0); } else { - x_147 = x_146; + x_148 = x_147; } -lean::cnstr_set(x_147, 0, x_144); -x_132 = x_147; -x_133 = x_141; -goto lbl_134; +lean::cnstr_set(x_148, 0, x_145); +x_133 = x_148; +x_134 = x_142; +goto lbl_135; } else { -obj* x_148; obj* x_151; obj* x_152; obj* x_154; -if (lean::is_shared(x_139)) { - lean::dec(x_139); - x_148 = lean::box(0); +obj* x_149; obj* x_152; obj* x_153; obj* x_155; +if (lean::is_shared(x_140)) { + lean::dec(x_140); + x_149 = lean::box(0); } else { - lean::cnstr_release(x_139, 0); - x_148 = x_139; + lean::cnstr_release(x_140, 0); + x_149 = x_140; } lean::inc(x_2); -lean::inc(x_15); -x_151 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_15, x_2, x_141); -x_152 = lean::cnstr_get(x_151, 0); -lean::inc(x_152); -x_154 = lean::cnstr_get(x_151, 1); -lean::inc(x_154); -lean::dec(x_151); -if (lean::obj_tag(x_152) == 0) -{ -obj* x_157; obj* x_160; -x_157 = lean::cnstr_get(x_152, 0); -lean::inc(x_157); +lean::inc(x_16); +x_152 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_16, x_2, x_142); +x_153 = lean::cnstr_get(x_152, 0); +lean::inc(x_153); +x_155 = lean::cnstr_get(x_152, 1); +lean::inc(x_155); lean::dec(x_152); -if (lean::is_scalar(x_148)) { - x_160 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_153) == 0) +{ +obj* x_158; obj* x_161; +x_158 = lean::cnstr_get(x_153, 0); +lean::inc(x_158); +lean::dec(x_153); +if (lean::is_scalar(x_149)) { + x_161 = lean::alloc_cnstr(0, 1, 0); } else { - x_160 = x_148; - lean::cnstr_set_tag(x_148, 0); + x_161 = x_149; + lean::cnstr_set_tag(x_149, 0); } -lean::cnstr_set(x_160, 0, x_157); -x_132 = x_160; -x_133 = x_154; -goto lbl_134; +lean::cnstr_set(x_161, 0, x_158); +x_133 = x_161; +x_134 = x_155; +goto lbl_135; } else { -obj* x_163; obj* x_166; obj* x_167; obj* x_169; -lean::dec(x_152); -lean::dec(x_148); -x_163 = l_lean_ir_cpp_emit__apply___closed__9; +obj* x_164; obj* x_167; obj* x_168; obj* x_170; +lean::dec(x_153); +lean::dec(x_149); +x_164 = l_lean_ir_cpp_emit__apply___closed__9; lean::inc(x_2); -lean::inc(x_163); -x_166 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_163, x_2, x_154); -x_167 = lean::cnstr_get(x_166, 0); -lean::inc(x_167); -x_169 = lean::cnstr_get(x_166, 1); -lean::inc(x_169); -lean::dec(x_166); -x_132 = x_167; -x_133 = x_169; -goto lbl_134; +lean::inc(x_164); +x_167 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_164, x_2, x_155); +x_168 = lean::cnstr_get(x_167, 0); +lean::inc(x_168); +x_170 = lean::cnstr_get(x_167, 1); +lean::inc(x_170); +lean::dec(x_167); +x_133 = x_168; +x_134 = x_170; +goto lbl_135; } } -lbl_125: +lbl_126: { -if (lean::obj_tag(x_123) == 0) +if (lean::obj_tag(x_124) == 0) { -obj* x_173; obj* x_175; obj* x_176; obj* x_177; +obj* x_174; obj* x_176; obj* x_177; obj* x_178; lean::dec(x_2); -x_173 = lean::cnstr_get(x_123, 0); -lean::inc(x_173); -if (lean::is_shared(x_123)) { - lean::dec(x_123); - x_175 = lean::box(0); +x_174 = lean::cnstr_get(x_124, 0); +lean::inc(x_174); +if (lean::is_shared(x_124)) { + lean::dec(x_124); + x_176 = lean::box(0); } else { - lean::cnstr_release(x_123, 0); - x_175 = x_123; + lean::cnstr_release(x_124, 0); + x_176 = x_124; } -if (lean::is_scalar(x_175)) { - x_176 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_176)) { + x_177 = lean::alloc_cnstr(0, 1, 0); } else { - x_176 = x_175; + x_177 = x_176; } -lean::cnstr_set(x_176, 0, x_173); -x_177 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_177, 0, x_176); -lean::cnstr_set(x_177, 1, x_124); -return x_177; +lean::cnstr_set(x_177, 0, x_174); +x_178 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_178, 0, x_177); +lean::cnstr_set(x_178, 1, x_125); +return x_178; } else { -obj* x_179; obj* x_181; -lean::dec(x_123); -x_179 = l_lean_ir_cpp_emit__apply___closed__4; -lean::inc(x_179); -x_181 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_179, x_2, x_124); -return x_181; +obj* x_180; obj* x_182; +lean::dec(x_124); +x_180 = l_lean_ir_cpp_emit__apply___closed__4; +lean::inc(x_180); +x_182 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_180, x_2, x_125); +return x_182; } } -lbl_128: +lbl_129: { -if (lean::obj_tag(x_126) == 0) +if (lean::obj_tag(x_127) == 0) { -obj* x_182; obj* x_184; obj* x_185; -x_182 = lean::cnstr_get(x_126, 0); -lean::inc(x_182); -if (lean::is_shared(x_126)) { - lean::dec(x_126); - x_184 = lean::box(0); +obj* x_183; obj* x_185; obj* x_186; +x_183 = lean::cnstr_get(x_127, 0); +lean::inc(x_183); +if (lean::is_shared(x_127)) { + lean::dec(x_127); + x_185 = lean::box(0); } else { - lean::cnstr_release(x_126, 0); - x_184 = x_126; + lean::cnstr_release(x_127, 0); + x_185 = x_127; } -if (lean::is_scalar(x_184)) { - x_185 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_185)) { + x_186 = lean::alloc_cnstr(0, 1, 0); } else { - x_185 = x_184; + x_186 = x_185; } -lean::cnstr_set(x_185, 0, x_182); -x_123 = x_185; -x_124 = x_127; -goto lbl_125; +lean::cnstr_set(x_186, 0, x_183); +x_124 = x_186; +x_125 = x_128; +goto lbl_126; } else { -obj* x_186; obj* x_187; obj* x_190; obj* x_191; obj* x_193; -if (lean::is_shared(x_126)) { - lean::dec(x_126); - x_186 = lean::box(0); +obj* x_187; obj* x_188; obj* x_191; obj* x_192; obj* x_194; +if (lean::is_shared(x_127)) { + lean::dec(x_127); + x_187 = lean::box(0); } else { - lean::cnstr_release(x_126, 0); - x_186 = x_126; + lean::cnstr_release(x_127, 0); + x_187 = x_127; } -x_187 = l_list_repr__aux___main___rarg___closed__1; +x_188 = l_list_repr__aux___main___rarg___closed__1; lean::inc(x_2); -lean::inc(x_187); -x_190 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_187, x_2, x_127); -x_191 = lean::cnstr_get(x_190, 0); -lean::inc(x_191); -x_193 = lean::cnstr_get(x_190, 1); -lean::inc(x_193); -lean::dec(x_190); -if (lean::obj_tag(x_191) == 0) -{ -obj* x_196; obj* x_199; -x_196 = lean::cnstr_get(x_191, 0); -lean::inc(x_196); +lean::inc(x_188); +x_191 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_188, x_2, x_128); +x_192 = lean::cnstr_get(x_191, 0); +lean::inc(x_192); +x_194 = lean::cnstr_get(x_191, 1); +lean::inc(x_194); lean::dec(x_191); -if (lean::is_scalar(x_186)) { - x_199 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_192) == 0) +{ +obj* x_197; obj* x_200; +x_197 = lean::cnstr_get(x_192, 0); +lean::inc(x_197); +lean::dec(x_192); +if (lean::is_scalar(x_187)) { + x_200 = lean::alloc_cnstr(0, 1, 0); } else { - x_199 = x_186; - lean::cnstr_set_tag(x_186, 0); + x_200 = x_187; + lean::cnstr_set_tag(x_187, 0); } -lean::cnstr_set(x_199, 0, x_196); -x_123 = x_199; -x_124 = x_193; -goto lbl_125; +lean::cnstr_set(x_200, 0, x_197); +x_124 = x_200; +x_125 = x_194; +goto lbl_126; } else { -obj* x_201; obj* x_204; obj* x_205; obj* x_207; -lean::dec(x_191); -x_201 = l_lean_ir_cpp_emit__apply___closed__5; +obj* x_202; obj* x_205; obj* x_206; obj* x_208; +lean::dec(x_192); +x_202 = l_lean_ir_cpp_emit__apply___closed__5; lean::inc(x_2); -lean::inc(x_201); -x_204 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_201, x_2, x_193); -x_205 = lean::cnstr_get(x_204, 0); -lean::inc(x_205); -x_207 = lean::cnstr_get(x_204, 1); -lean::inc(x_207); -lean::dec(x_204); -if (lean::obj_tag(x_205) == 0) -{ -obj* x_210; obj* x_213; -x_210 = lean::cnstr_get(x_205, 0); -lean::inc(x_210); +lean::inc(x_202); +x_205 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_202, x_2, x_194); +x_206 = lean::cnstr_get(x_205, 0); +lean::inc(x_206); +x_208 = lean::cnstr_get(x_205, 1); +lean::inc(x_208); lean::dec(x_205); -if (lean::is_scalar(x_186)) { - x_213 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_206) == 0) +{ +obj* x_211; obj* x_214; +x_211 = lean::cnstr_get(x_206, 0); +lean::inc(x_211); +lean::dec(x_206); +if (lean::is_scalar(x_187)) { + x_214 = lean::alloc_cnstr(0, 1, 0); } else { - x_213 = x_186; - lean::cnstr_set_tag(x_186, 0); + x_214 = x_187; + lean::cnstr_set_tag(x_187, 0); } -lean::cnstr_set(x_213, 0, x_210); -x_123 = x_213; -x_124 = x_207; -goto lbl_125; +lean::cnstr_set(x_214, 0, x_211); +x_124 = x_214; +x_125 = x_208; +goto lbl_126; } else { -obj* x_214; obj* x_217; obj* x_220; obj* x_221; obj* x_223; -x_214 = lean::cnstr_get(x_205, 0); -lean::inc(x_214); -lean::dec(x_205); -x_217 = l_option_has__repr___rarg___closed__3; +obj* x_215; obj* x_218; obj* x_221; obj* x_222; obj* x_224; +x_215 = lean::cnstr_get(x_206, 0); +lean::inc(x_215); +lean::dec(x_206); +x_218 = l_option_has__repr___rarg___closed__3; lean::inc(x_2); -lean::inc(x_217); -x_220 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_217, x_2, x_207); -x_221 = lean::cnstr_get(x_220, 0); -lean::inc(x_221); -x_223 = lean::cnstr_get(x_220, 1); -lean::inc(x_223); -lean::dec(x_220); -if (lean::obj_tag(x_221) == 0) -{ -obj* x_227; obj* x_230; -lean::dec(x_214); -x_227 = lean::cnstr_get(x_221, 0); -lean::inc(x_227); +lean::inc(x_218); +x_221 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_218, x_2, x_208); +x_222 = lean::cnstr_get(x_221, 0); +lean::inc(x_222); +x_224 = lean::cnstr_get(x_221, 1); +lean::inc(x_224); lean::dec(x_221); -if (lean::is_scalar(x_186)) { - x_230 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_222) == 0) +{ +obj* x_228; obj* x_231; +lean::dec(x_215); +x_228 = lean::cnstr_get(x_222, 0); +lean::inc(x_228); +lean::dec(x_222); +if (lean::is_scalar(x_187)) { + x_231 = lean::alloc_cnstr(0, 1, 0); } else { - x_230 = x_186; - lean::cnstr_set_tag(x_186, 0); + x_231 = x_187; + lean::cnstr_set_tag(x_187, 0); } -lean::cnstr_set(x_230, 0, x_227); -x_123 = x_230; -x_124 = x_223; -goto lbl_125; +lean::cnstr_set(x_231, 0, x_228); +x_124 = x_231; +x_125 = x_224; +goto lbl_126; } else { -obj* x_232; -lean::dec(x_221); -if (lean::is_scalar(x_186)) { - x_232 = lean::alloc_cnstr(1, 1, 0); +obj* x_233; +lean::dec(x_222); +if (lean::is_scalar(x_187)) { + x_233 = lean::alloc_cnstr(1, 1, 0); } else { - x_232 = x_186; + x_233 = x_187; } -lean::cnstr_set(x_232, 0, x_214); -x_123 = x_232; -x_124 = x_223; -goto lbl_125; +lean::cnstr_set(x_233, 0, x_215); +x_124 = x_233; +x_125 = x_224; +goto lbl_126; } } } } } -lbl_131: +lbl_132: { -if (lean::obj_tag(x_129) == 0) +if (lean::obj_tag(x_130) == 0) { -obj* x_235; obj* x_237; obj* x_238; -lean::dec(x_15); +obj* x_236; obj* x_238; obj* x_239; +lean::dec(x_16); lean::dec(x_10); -x_235 = lean::cnstr_get(x_129, 0); -lean::inc(x_235); -if (lean::is_shared(x_129)) { - lean::dec(x_129); - x_237 = lean::box(0); +x_236 = lean::cnstr_get(x_130, 0); +lean::inc(x_236); +if (lean::is_shared(x_130)) { + lean::dec(x_130); + x_238 = lean::box(0); } else { - lean::cnstr_release(x_129, 0); - x_237 = x_129; + lean::cnstr_release(x_130, 0); + x_238 = x_130; } -if (lean::is_scalar(x_237)) { - x_238 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_238)) { + x_239 = lean::alloc_cnstr(0, 1, 0); } else { - x_238 = x_237; + x_239 = x_238; } -lean::cnstr_set(x_238, 0, x_235); -x_123 = x_238; -x_124 = x_130; -goto lbl_125; +lean::cnstr_set(x_239, 0, x_236); +x_124 = x_239; +x_125 = x_131; +goto lbl_126; } else { -obj* x_239; obj* x_240; obj* x_243; obj* x_244; obj* x_246; -if (lean::is_shared(x_129)) { - lean::dec(x_129); - x_239 = lean::box(0); +obj* x_240; obj* x_241; obj* x_244; obj* x_245; obj* x_247; +if (lean::is_shared(x_130)) { + lean::dec(x_130); + x_240 = lean::box(0); } else { - lean::cnstr_release(x_129, 0); - x_239 = x_129; + lean::cnstr_release(x_130, 0); + x_240 = x_130; } -x_240 = l_prod_has__repr___rarg___closed__1; +x_241 = l_prod_has__repr___rarg___closed__1; lean::inc(x_2); -lean::inc(x_240); -x_243 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_240, x_2, x_130); -x_244 = lean::cnstr_get(x_243, 0); -lean::inc(x_244); -x_246 = lean::cnstr_get(x_243, 1); -lean::inc(x_246); -lean::dec(x_243); -if (lean::obj_tag(x_244) == 0) +lean::inc(x_241); +x_244 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_241, x_2, x_131); +x_245 = lean::cnstr_get(x_244, 0); +lean::inc(x_245); +x_247 = lean::cnstr_get(x_244, 1); +lean::inc(x_247); +lean::dec(x_244); +if (lean::obj_tag(x_245) == 0) { -obj* x_251; obj* x_254; -lean::dec(x_15); +obj* x_252; obj* x_255; +lean::dec(x_16); lean::dec(x_10); -x_251 = lean::cnstr_get(x_244, 0); -lean::inc(x_251); -lean::dec(x_244); -if (lean::is_scalar(x_239)) { - x_254 = lean::alloc_cnstr(0, 1, 0); +x_252 = lean::cnstr_get(x_245, 0); +lean::inc(x_252); +lean::dec(x_245); +if (lean::is_scalar(x_240)) { + x_255 = lean::alloc_cnstr(0, 1, 0); } else { - x_254 = x_239; - lean::cnstr_set_tag(x_239, 0); + x_255 = x_240; + lean::cnstr_set_tag(x_240, 0); } -lean::cnstr_set(x_254, 0, x_251); -x_123 = x_254; -x_124 = x_246; -goto lbl_125; +lean::cnstr_set(x_255, 0, x_252); +x_124 = x_255; +x_125 = x_247; +goto lbl_126; } else { -obj* x_257; obj* x_258; obj* x_260; -lean::dec(x_244); +obj* x_258; obj* x_259; obj* x_261; +lean::dec(x_245); lean::inc(x_2); -x_257 = l_lean_ir_cpp_emit__var(x_10, x_2, x_246); -x_258 = lean::cnstr_get(x_257, 0); -lean::inc(x_258); -x_260 = lean::cnstr_get(x_257, 1); -lean::inc(x_260); -lean::dec(x_257); -if (lean::obj_tag(x_258) == 0) -{ -obj* x_264; obj* x_267; -lean::dec(x_15); -x_264 = lean::cnstr_get(x_258, 0); -lean::inc(x_264); +x_258 = l_lean_ir_cpp_emit__var(x_10, x_2, x_247); +x_259 = lean::cnstr_get(x_258, 0); +lean::inc(x_259); +x_261 = lean::cnstr_get(x_258, 1); +lean::inc(x_261); lean::dec(x_258); -if (lean::is_scalar(x_239)) { - x_267 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_259) == 0) +{ +obj* x_265; obj* x_268; +lean::dec(x_16); +x_265 = lean::cnstr_get(x_259, 0); +lean::inc(x_265); +lean::dec(x_259); +if (lean::is_scalar(x_240)) { + x_268 = lean::alloc_cnstr(0, 1, 0); } else { - x_267 = x_239; - lean::cnstr_set_tag(x_239, 0); + x_268 = x_240; + lean::cnstr_set_tag(x_240, 0); } -lean::cnstr_set(x_267, 0, x_264); -x_126 = x_267; -x_127 = x_260; -goto lbl_128; +lean::cnstr_set(x_268, 0, x_265); +x_127 = x_268; +x_128 = x_261; +goto lbl_129; } else { -obj* x_269; obj* x_272; obj* x_273; obj* x_275; -lean::dec(x_258); -x_269 = l_list_repr__aux___main___rarg___closed__1; +obj* x_270; obj* x_273; obj* x_274; obj* x_276; +lean::dec(x_259); +x_270 = l_list_repr__aux___main___rarg___closed__1; lean::inc(x_2); -lean::inc(x_269); -x_272 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_269, x_2, x_260); -x_273 = lean::cnstr_get(x_272, 0); -lean::inc(x_273); -x_275 = lean::cnstr_get(x_272, 1); -lean::inc(x_275); -lean::dec(x_272); -if (lean::obj_tag(x_273) == 0) -{ -obj* x_279; obj* x_282; -lean::dec(x_15); -x_279 = lean::cnstr_get(x_273, 0); -lean::inc(x_279); +lean::inc(x_270); +x_273 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_270, x_2, x_261); +x_274 = lean::cnstr_get(x_273, 0); +lean::inc(x_274); +x_276 = lean::cnstr_get(x_273, 1); +lean::inc(x_276); lean::dec(x_273); -if (lean::is_scalar(x_239)) { - x_282 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_274) == 0) +{ +obj* x_280; obj* x_283; +lean::dec(x_16); +x_280 = lean::cnstr_get(x_274, 0); +lean::inc(x_280); +lean::dec(x_274); +if (lean::is_scalar(x_240)) { + x_283 = lean::alloc_cnstr(0, 1, 0); } else { - x_282 = x_239; - lean::cnstr_set_tag(x_239, 0); + x_283 = x_240; + lean::cnstr_set_tag(x_240, 0); } -lean::cnstr_set(x_282, 0, x_279); -x_126 = x_282; -x_127 = x_275; -goto lbl_128; +lean::cnstr_set(x_283, 0, x_280); +x_127 = x_283; +x_128 = x_276; +goto lbl_129; } else { -obj* x_286; obj* x_287; obj* x_289; -lean::dec(x_239); -lean::dec(x_273); +obj* x_287; obj* x_288; obj* x_290; +lean::dec(x_240); +lean::dec(x_274); lean::inc(x_2); -x_286 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_15, x_2, x_275); -x_287 = lean::cnstr_get(x_286, 0); -lean::inc(x_287); -x_289 = lean::cnstr_get(x_286, 1); -lean::inc(x_289); -lean::dec(x_286); -x_126 = x_287; -x_127 = x_289; -goto lbl_128; +x_287 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_16, x_2, x_276); +x_288 = lean::cnstr_get(x_287, 0); +lean::inc(x_288); +x_290 = lean::cnstr_get(x_287, 1); +lean::inc(x_290); +lean::dec(x_287); +x_127 = x_288; +x_128 = x_290; +goto lbl_129; } } } } } -lbl_134: +lbl_135: { -if (lean::obj_tag(x_132) == 0) +if (lean::obj_tag(x_133) == 0) { -obj* x_294; obj* x_296; obj* x_297; +obj* x_295; obj* x_297; obj* x_298; lean::dec(x_12); lean::dec(x_0); -x_294 = lean::cnstr_get(x_132, 0); -lean::inc(x_294); -if (lean::is_shared(x_132)) { - lean::dec(x_132); - x_296 = lean::box(0); +x_295 = lean::cnstr_get(x_133, 0); +lean::inc(x_295); +if (lean::is_shared(x_133)) { + lean::dec(x_133); + x_297 = lean::box(0); } else { - lean::cnstr_release(x_132, 0); - x_296 = x_132; + lean::cnstr_release(x_133, 0); + x_297 = x_133; } -if (lean::is_scalar(x_296)) { - x_297 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_297)) { + x_298 = lean::alloc_cnstr(0, 1, 0); } else { - x_297 = x_296; + x_298 = x_297; } -lean::cnstr_set(x_297, 0, x_294); -x_129 = x_297; -x_130 = x_133; -goto lbl_131; +lean::cnstr_set(x_298, 0, x_295); +x_130 = x_298; +x_131 = x_134; +goto lbl_132; } else { -obj* x_298; obj* x_299; obj* x_300; obj* x_304; obj* x_305; obj* x_307; -if (lean::is_shared(x_132)) { - lean::dec(x_132); - x_298 = lean::box(0); +obj* x_299; obj* x_300; obj* x_301; obj* x_305; obj* x_306; obj* x_308; +if (lean::is_shared(x_133)) { + lean::dec(x_133); + x_299 = lean::box(0); } else { - lean::cnstr_release(x_132, 0); - x_298 = x_132; + lean::cnstr_release(x_133, 0); + x_299 = x_133; } -x_299 = l_lean_ir_cpp_emit__apply___closed__2; -x_300 = l_lean_ir_cpp_emit__template__params___closed__3; +x_300 = l_lean_ir_cpp_emit__apply___closed__2; +x_301 = l_lean_ir_cpp_emit__template__params___closed__3; lean::inc(x_2); +lean::inc(x_301); lean::inc(x_300); -lean::inc(x_299); -x_304 = l_lean_ir_cpp_emit__sep__aux___main___rarg(x_299, x_300, x_12, x_2, x_133); -x_305 = lean::cnstr_get(x_304, 0); -lean::inc(x_305); -x_307 = lean::cnstr_get(x_304, 1); -lean::inc(x_307); -lean::dec(x_304); -if (lean::obj_tag(x_305) == 0) -{ -obj* x_311; obj* x_314; -lean::dec(x_0); -x_311 = lean::cnstr_get(x_305, 0); -lean::inc(x_311); +x_305 = l_lean_ir_cpp_emit__sep__aux___main___rarg(x_300, x_301, x_12, x_2, x_134); +x_306 = lean::cnstr_get(x_305, 0); +lean::inc(x_306); +x_308 = lean::cnstr_get(x_305, 1); +lean::inc(x_308); lean::dec(x_305); -if (lean::is_scalar(x_298)) { - x_314 = lean::alloc_cnstr(0, 1, 0); -} else { - x_314 = x_298; - lean::cnstr_set_tag(x_298, 0); -} -lean::cnstr_set(x_314, 0, x_311); -x_129 = x_314; -x_130 = x_307; -goto lbl_131; -} -else +if (lean::obj_tag(x_306) == 0) { -obj* x_316; obj* x_319; obj* x_320; obj* x_322; -lean::dec(x_305); -x_316 = l_lean_ir_cpp_emit__apply___closed__6; -lean::inc(x_2); -lean::inc(x_316); -x_319 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_316, x_2, x_307); -x_320 = lean::cnstr_get(x_319, 0); -lean::inc(x_320); -x_322 = lean::cnstr_get(x_319, 1); -lean::inc(x_322); -lean::dec(x_319); -if (lean::obj_tag(x_320) == 0) -{ -obj* x_326; obj* x_329; +obj* x_312; obj* x_315; lean::dec(x_0); -x_326 = lean::cnstr_get(x_320, 0); -lean::inc(x_326); -lean::dec(x_320); -if (lean::is_scalar(x_298)) { - x_329 = lean::alloc_cnstr(0, 1, 0); +x_312 = lean::cnstr_get(x_306, 0); +lean::inc(x_312); +lean::dec(x_306); +if (lean::is_scalar(x_299)) { + x_315 = lean::alloc_cnstr(0, 1, 0); } else { - x_329 = x_298; - lean::cnstr_set_tag(x_298, 0); + x_315 = x_299; + lean::cnstr_set_tag(x_299, 0); } -lean::cnstr_set(x_329, 0, x_326); -x_129 = x_329; -x_130 = x_322; -goto lbl_131; +lean::cnstr_set(x_315, 0, x_312); +x_130 = x_315; +x_131 = x_308; +goto lbl_132; } else { -obj* x_332; obj* x_333; obj* x_335; -lean::dec(x_320); +obj* x_317; obj* x_320; obj* x_321; obj* x_323; +lean::dec(x_306); +x_317 = l_lean_ir_cpp_emit__apply___closed__6; lean::inc(x_2); -x_332 = l_lean_ir_cpp_emit__var(x_0, x_2, x_322); -x_333 = lean::cnstr_get(x_332, 0); -lean::inc(x_333); -x_335 = lean::cnstr_get(x_332, 1); -lean::inc(x_335); -lean::dec(x_332); -if (lean::obj_tag(x_333) == 0) +lean::inc(x_317); +x_320 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_317, x_2, x_308); +x_321 = lean::cnstr_get(x_320, 0); +lean::inc(x_321); +x_323 = lean::cnstr_get(x_320, 1); +lean::inc(x_323); +lean::dec(x_320); +if (lean::obj_tag(x_321) == 0) { -obj* x_338; obj* x_341; -x_338 = lean::cnstr_get(x_333, 0); -lean::inc(x_338); -lean::dec(x_333); -if (lean::is_scalar(x_298)) { - x_341 = lean::alloc_cnstr(0, 1, 0); +obj* x_327; obj* x_330; +lean::dec(x_0); +x_327 = lean::cnstr_get(x_321, 0); +lean::inc(x_327); +lean::dec(x_321); +if (lean::is_scalar(x_299)) { + x_330 = lean::alloc_cnstr(0, 1, 0); } else { - x_341 = x_298; - lean::cnstr_set_tag(x_298, 0); + x_330 = x_299; + lean::cnstr_set_tag(x_299, 0); } -lean::cnstr_set(x_341, 0, x_338); -x_129 = x_341; -x_130 = x_335; -goto lbl_131; +lean::cnstr_set(x_330, 0, x_327); +x_130 = x_330; +x_131 = x_323; +goto lbl_132; } else { -obj* x_344; obj* x_347; obj* x_348; obj* x_350; -lean::dec(x_333); -lean::dec(x_298); -x_344 = l_lean_ir_cpp_emit__apply___closed__7; +obj* x_333; obj* x_334; obj* x_336; +lean::dec(x_321); lean::inc(x_2); -lean::inc(x_344); -x_347 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_344, x_2, x_335); -x_348 = lean::cnstr_get(x_347, 0); -lean::inc(x_348); -x_350 = lean::cnstr_get(x_347, 1); -lean::inc(x_350); -lean::dec(x_347); -x_129 = x_348; -x_130 = x_350; -goto lbl_131; +x_333 = l_lean_ir_cpp_emit__var(x_0, x_2, x_323); +x_334 = lean::cnstr_get(x_333, 0); +lean::inc(x_334); +x_336 = lean::cnstr_get(x_333, 1); +lean::inc(x_336); +lean::dec(x_333); +if (lean::obj_tag(x_334) == 0) +{ +obj* x_339; obj* x_342; +x_339 = lean::cnstr_get(x_334, 0); +lean::inc(x_339); +lean::dec(x_334); +if (lean::is_scalar(x_299)) { + x_342 = lean::alloc_cnstr(0, 1, 0); +} else { + x_342 = x_299; + lean::cnstr_set_tag(x_299, 0); +} +lean::cnstr_set(x_342, 0, x_339); +x_130 = x_342; +x_131 = x_336; +goto lbl_132; +} +else +{ +obj* x_345; obj* x_348; obj* x_349; obj* x_351; +lean::dec(x_334); +lean::dec(x_299); +x_345 = l_lean_ir_cpp_emit__apply___closed__7; +lean::inc(x_2); +lean::inc(x_345); +x_348 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_345, x_2, x_336); +x_349 = lean::cnstr_get(x_348, 0); +lean::inc(x_349); +x_351 = lean::cnstr_get(x_348, 1); +lean::inc(x_351); +lean::dec(x_348); +x_130 = x_349; +x_131 = x_351; +goto lbl_132; } } } @@ -10655,7 +10656,7 @@ return x_84; } else { -obj* x_86; obj* x_88; obj* x_89; obj* x_90; obj* x_93; obj* x_94; uint8 x_95; obj* x_97; obj* x_98; obj* x_101; obj* x_102; obj* x_103; +obj* x_86; obj* x_88; obj* x_89; obj* x_90; obj* x_93; obj* x_95; obj* x_96; uint8 x_97; obj* x_99; obj* x_100; obj* x_103; obj* x_104; obj* x_105; lean::dec(x_53); x_86 = lean::cnstr_get(x_69, 0); lean::inc(x_86); @@ -10670,263 +10671,265 @@ x_89 = l_lean_ir_decl_header___main(x_20); x_90 = lean::cnstr_get(x_89, 1); lean::inc(x_90); lean::dec(x_89); -x_93 = l_list_length___main___rarg(x_90); -x_94 = l_lean_closure__max__args; -x_95 = lean::nat_dec_lt(x_94, x_93); +x_93 = lean::mk_nat_obj(0u); +lean::inc(x_93); +x_95 = l_list_length__aux___main___rarg(x_90, x_93); +x_96 = l_lean_closure__max__args; +x_97 = lean::nat_dec_lt(x_96, x_95); lean::inc(x_2); -x_97 = l_list_length___main___rarg(x_2); -x_98 = l_lean_ir_cpp_emit__closure___closed__3; +x_99 = l_list_length__aux___main___rarg(x_2, x_93); +x_100 = l_lean_ir_cpp_emit__closure___closed__3; lean::inc(x_3); -lean::inc(x_98); -x_101 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_98, x_3, x_71); -if (x_95 == 0) +lean::inc(x_100); +x_103 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_100, x_3, x_71); +if (x_97 == 0) { -obj* x_105; obj* x_107; -x_105 = lean::cnstr_get(x_101, 0); -lean::inc(x_105); -x_107 = lean::cnstr_get(x_101, 1); +obj* x_107; obj* x_109; +x_107 = lean::cnstr_get(x_103, 0); lean::inc(x_107); -lean::dec(x_101); -if (lean::obj_tag(x_105) == 0) +x_109 = lean::cnstr_get(x_103, 1); +lean::inc(x_109); +lean::dec(x_103); +if (lean::obj_tag(x_107) == 0) { -obj* x_111; obj* x_114; +obj* x_113; obj* x_116; lean::dec(x_86); -x_111 = lean::cnstr_get(x_105, 0); -lean::inc(x_111); -lean::dec(x_105); +x_113 = lean::cnstr_get(x_107, 0); +lean::inc(x_113); +lean::dec(x_107); if (lean::is_scalar(x_88)) { - x_114 = lean::alloc_cnstr(0, 1, 0); + x_116 = lean::alloc_cnstr(0, 1, 0); } else { - x_114 = x_88; + x_116 = x_88; lean::cnstr_set_tag(x_88, 0); } -lean::cnstr_set(x_114, 0, x_111); -x_102 = x_114; -x_103 = x_107; -goto lbl_104; +lean::cnstr_set(x_116, 0, x_113); +x_104 = x_116; +x_105 = x_109; +goto lbl_106; } else { -obj* x_118; obj* x_119; obj* x_121; +obj* x_120; obj* x_121; obj* x_123; lean::dec(x_88); -lean::dec(x_105); +lean::dec(x_107); lean::inc(x_3); -x_118 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_86, x_3, x_107); -x_119 = lean::cnstr_get(x_118, 0); -lean::inc(x_119); -x_121 = lean::cnstr_get(x_118, 1); +x_120 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_86, x_3, x_109); +x_121 = lean::cnstr_get(x_120, 0); lean::inc(x_121); -lean::dec(x_118); -x_102 = x_119; -x_103 = x_121; -goto lbl_104; +x_123 = lean::cnstr_get(x_120, 1); +lean::inc(x_123); +lean::dec(x_120); +x_104 = x_121; +x_105 = x_123; +goto lbl_106; } } else { -obj* x_124; obj* x_126; -x_124 = lean::cnstr_get(x_101, 0); -lean::inc(x_124); -x_126 = lean::cnstr_get(x_101, 1); +obj* x_126; obj* x_128; +x_126 = lean::cnstr_get(x_103, 0); lean::inc(x_126); -lean::dec(x_101); -if (lean::obj_tag(x_124) == 0) +x_128 = lean::cnstr_get(x_103, 1); +lean::inc(x_128); +lean::dec(x_103); +if (lean::obj_tag(x_126) == 0) { -obj* x_130; obj* x_133; +obj* x_132; obj* x_135; lean::dec(x_86); -x_130 = lean::cnstr_get(x_124, 0); -lean::inc(x_130); -lean::dec(x_124); +x_132 = lean::cnstr_get(x_126, 0); +lean::inc(x_132); +lean::dec(x_126); if (lean::is_scalar(x_88)) { - x_133 = lean::alloc_cnstr(0, 1, 0); + x_135 = lean::alloc_cnstr(0, 1, 0); } else { - x_133 = x_88; + x_135 = x_88; lean::cnstr_set_tag(x_88, 0); } -lean::cnstr_set(x_133, 0, x_130); -x_102 = x_133; -x_103 = x_126; -goto lbl_104; +lean::cnstr_set(x_135, 0, x_132); +x_104 = x_135; +x_105 = x_128; +goto lbl_106; } else { -obj* x_136; obj* x_138; obj* x_141; obj* x_142; obj* x_144; -lean::dec(x_124); +obj* x_138; obj* x_140; obj* x_143; obj* x_144; obj* x_146; +lean::dec(x_126); lean::dec(x_88); -x_136 = l_lean_ir_cpp_emit__closure___closed__4; -lean::inc(x_136); -x_138 = lean::string_append(x_136, x_86); +x_138 = l_lean_ir_cpp_emit__closure___closed__4; +lean::inc(x_138); +x_140 = lean::string_append(x_138, x_86); lean::dec(x_86); lean::inc(x_3); -x_141 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_138, x_3, x_126); -x_142 = lean::cnstr_get(x_141, 0); -lean::inc(x_142); -x_144 = lean::cnstr_get(x_141, 1); +x_143 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_140, x_3, x_128); +x_144 = lean::cnstr_get(x_143, 0); lean::inc(x_144); -lean::dec(x_141); -x_102 = x_142; -x_103 = x_144; -goto lbl_104; +x_146 = lean::cnstr_get(x_143, 1); +lean::inc(x_146); +lean::dec(x_143); +x_104 = x_144; +x_105 = x_146; +goto lbl_106; } } -lbl_104: +lbl_106: { -if (lean::obj_tag(x_102) == 0) +if (lean::obj_tag(x_104) == 0) { -obj* x_149; obj* x_152; -lean::dec(x_97); -lean::dec(x_93); -x_149 = lean::cnstr_get(x_102, 0); -lean::inc(x_149); -lean::dec(x_102); +obj* x_151; obj* x_154; +lean::dec(x_99); +lean::dec(x_95); +x_151 = lean::cnstr_get(x_104, 0); +lean::inc(x_151); +lean::dec(x_104); if (lean::is_scalar(x_66)) { - x_152 = lean::alloc_cnstr(0, 1, 0); + x_154 = lean::alloc_cnstr(0, 1, 0); } else { - x_152 = x_66; + x_154 = x_66; lean::cnstr_set_tag(x_66, 0); } -lean::cnstr_set(x_152, 0, x_149); -x_42 = x_152; -x_43 = x_103; +lean::cnstr_set(x_154, 0, x_151); +x_42 = x_154; +x_43 = x_105; goto lbl_44; } else { -obj* x_154; obj* x_157; obj* x_158; obj* x_160; -lean::dec(x_102); -x_154 = l_option_has__repr___rarg___closed__3; +obj* x_156; obj* x_159; obj* x_160; obj* x_162; +lean::dec(x_104); +x_156 = l_option_has__repr___rarg___closed__3; lean::inc(x_3); -lean::inc(x_154); -x_157 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_154, x_3, x_103); -x_158 = lean::cnstr_get(x_157, 0); -lean::inc(x_158); -x_160 = lean::cnstr_get(x_157, 1); +lean::inc(x_156); +x_159 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_156, x_3, x_105); +x_160 = lean::cnstr_get(x_159, 0); lean::inc(x_160); -lean::dec(x_157); -if (lean::obj_tag(x_158) == 0) +x_162 = lean::cnstr_get(x_159, 1); +lean::inc(x_162); +lean::dec(x_159); +if (lean::obj_tag(x_160) == 0) { -obj* x_165; obj* x_168; -lean::dec(x_97); -lean::dec(x_93); -x_165 = lean::cnstr_get(x_158, 0); -lean::inc(x_165); -lean::dec(x_158); +obj* x_167; obj* x_170; +lean::dec(x_99); +lean::dec(x_95); +x_167 = lean::cnstr_get(x_160, 0); +lean::inc(x_167); +lean::dec(x_160); if (lean::is_scalar(x_66)) { - x_168 = lean::alloc_cnstr(0, 1, 0); + x_170 = lean::alloc_cnstr(0, 1, 0); } else { - x_168 = x_66; + x_170 = x_66; lean::cnstr_set_tag(x_66, 0); } -lean::cnstr_set(x_168, 0, x_165); -x_42 = x_168; -x_43 = x_160; +lean::cnstr_set(x_170, 0, x_167); +x_42 = x_170; +x_43 = x_162; goto lbl_44; } else { -obj* x_170; obj* x_173; obj* x_174; obj* x_176; -lean::dec(x_158); -x_170 = l_list_repr__aux___main___rarg___closed__1; +obj* x_172; obj* x_175; obj* x_176; obj* x_178; +lean::dec(x_160); +x_172 = l_list_repr__aux___main___rarg___closed__1; lean::inc(x_3); -lean::inc(x_170); -x_173 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_170, x_3, x_160); -x_174 = lean::cnstr_get(x_173, 0); -lean::inc(x_174); -x_176 = lean::cnstr_get(x_173, 1); +lean::inc(x_172); +x_175 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_172, x_3, x_162); +x_176 = lean::cnstr_get(x_175, 0); lean::inc(x_176); -lean::dec(x_173); -if (lean::obj_tag(x_174) == 0) +x_178 = lean::cnstr_get(x_175, 1); +lean::inc(x_178); +lean::dec(x_175); +if (lean::obj_tag(x_176) == 0) { -obj* x_181; obj* x_184; -lean::dec(x_97); -lean::dec(x_93); -x_181 = lean::cnstr_get(x_174, 0); -lean::inc(x_181); -lean::dec(x_174); +obj* x_183; obj* x_186; +lean::dec(x_99); +lean::dec(x_95); +x_183 = lean::cnstr_get(x_176, 0); +lean::inc(x_183); +lean::dec(x_176); if (lean::is_scalar(x_66)) { - x_184 = lean::alloc_cnstr(0, 1, 0); + x_186 = lean::alloc_cnstr(0, 1, 0); } else { - x_184 = x_66; + x_186 = x_66; lean::cnstr_set_tag(x_66, 0); } -lean::cnstr_set(x_184, 0, x_181); -x_42 = x_184; -x_43 = x_176; +lean::cnstr_set(x_186, 0, x_183); +x_42 = x_186; +x_43 = x_178; goto lbl_44; } else { -obj* x_187; obj* x_188; obj* x_190; -lean::dec(x_174); +obj* x_189; obj* x_190; obj* x_192; +lean::dec(x_176); lean::inc(x_3); -x_187 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_93, x_3, x_176); -x_188 = lean::cnstr_get(x_187, 0); -lean::inc(x_188); -x_190 = lean::cnstr_get(x_187, 1); +x_189 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_95, x_3, x_178); +x_190 = lean::cnstr_get(x_189, 0); lean::inc(x_190); -lean::dec(x_187); -if (lean::obj_tag(x_188) == 0) +x_192 = lean::cnstr_get(x_189, 1); +lean::inc(x_192); +lean::dec(x_189); +if (lean::obj_tag(x_190) == 0) { -obj* x_194; obj* x_197; -lean::dec(x_97); -x_194 = lean::cnstr_get(x_188, 0); -lean::inc(x_194); -lean::dec(x_188); +obj* x_196; obj* x_199; +lean::dec(x_99); +x_196 = lean::cnstr_get(x_190, 0); +lean::inc(x_196); +lean::dec(x_190); if (lean::is_scalar(x_66)) { - x_197 = lean::alloc_cnstr(0, 1, 0); + x_199 = lean::alloc_cnstr(0, 1, 0); } else { - x_197 = x_66; + x_199 = x_66; lean::cnstr_set_tag(x_66, 0); } -lean::cnstr_set(x_197, 0, x_194); -x_42 = x_197; -x_43 = x_190; +lean::cnstr_set(x_199, 0, x_196); +x_42 = x_199; +x_43 = x_192; goto lbl_44; } else { -obj* x_201; obj* x_202; obj* x_204; -lean::dec(x_188); +obj* x_203; obj* x_204; obj* x_206; +lean::dec(x_190); lean::inc(x_3); -lean::inc(x_170); -x_201 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_170, x_3, x_190); -x_202 = lean::cnstr_get(x_201, 0); -lean::inc(x_202); -x_204 = lean::cnstr_get(x_201, 1); +lean::inc(x_172); +x_203 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_172, x_3, x_192); +x_204 = lean::cnstr_get(x_203, 0); lean::inc(x_204); -lean::dec(x_201); -if (lean::obj_tag(x_202) == 0) +x_206 = lean::cnstr_get(x_203, 1); +lean::inc(x_206); +lean::dec(x_203); +if (lean::obj_tag(x_204) == 0) { -obj* x_208; obj* x_211; -lean::dec(x_97); -x_208 = lean::cnstr_get(x_202, 0); -lean::inc(x_208); -lean::dec(x_202); +obj* x_210; obj* x_213; +lean::dec(x_99); +x_210 = lean::cnstr_get(x_204, 0); +lean::inc(x_210); +lean::dec(x_204); if (lean::is_scalar(x_66)) { - x_211 = lean::alloc_cnstr(0, 1, 0); + x_213 = lean::alloc_cnstr(0, 1, 0); } else { - x_211 = x_66; + x_213 = x_66; lean::cnstr_set_tag(x_66, 0); } -lean::cnstr_set(x_211, 0, x_208); -x_42 = x_211; -x_43 = x_204; +lean::cnstr_set(x_213, 0, x_210); +x_42 = x_213; +x_43 = x_206; goto lbl_44; } else { -obj* x_215; obj* x_216; obj* x_218; +obj* x_217; obj* x_218; obj* x_220; lean::dec(x_66); -lean::dec(x_202); +lean::dec(x_204); lean::inc(x_3); -x_215 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_97, x_3, x_204); -x_216 = lean::cnstr_get(x_215, 0); -lean::inc(x_216); -x_218 = lean::cnstr_get(x_215, 1); +x_217 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__cases___main___spec__1(x_99, x_3, x_206); +x_218 = lean::cnstr_get(x_217, 0); lean::inc(x_218); -lean::dec(x_215); -x_42 = x_216; -x_43 = x_218; +x_220 = lean::cnstr_get(x_217, 1); +lean::inc(x_220); +lean::dec(x_217); +x_42 = x_218; +x_43 = x_220; goto lbl_44; } } @@ -10940,115 +10943,115 @@ lbl_44: { if (lean::obj_tag(x_42) == 0) { -obj* x_224; obj* x_227; obj* x_228; +obj* x_226; obj* x_229; obj* x_230; lean::dec(x_3); lean::dec(x_0); lean::dec(x_2); -x_224 = lean::cnstr_get(x_42, 0); -lean::inc(x_224); +x_226 = lean::cnstr_get(x_42, 0); +lean::inc(x_226); lean::dec(x_42); if (lean::is_scalar(x_41)) { - x_227 = lean::alloc_cnstr(0, 1, 0); + x_229 = lean::alloc_cnstr(0, 1, 0); } else { - x_227 = x_41; + x_229 = x_41; lean::cnstr_set_tag(x_41, 0); } -lean::cnstr_set(x_227, 0, x_224); +lean::cnstr_set(x_229, 0, x_226); if (lean::is_scalar(x_30)) { - x_228 = lean::alloc_cnstr(0, 2, 0); + x_230 = lean::alloc_cnstr(0, 2, 0); } else { - x_228 = x_30; + x_230 = x_30; } -lean::cnstr_set(x_228, 0, x_227); -lean::cnstr_set(x_228, 1, x_43); -return x_228; +lean::cnstr_set(x_230, 0, x_229); +lean::cnstr_set(x_230, 1, x_43); +return x_230; } else { -obj* x_230; obj* x_233; obj* x_234; obj* x_236; +obj* x_232; obj* x_235; obj* x_236; obj* x_238; lean::dec(x_42); -x_230 = l_option_has__repr___rarg___closed__3; +x_232 = l_option_has__repr___rarg___closed__3; lean::inc(x_3); -lean::inc(x_230); -x_233 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_230, x_3, x_43); -x_234 = lean::cnstr_get(x_233, 0); -lean::inc(x_234); -x_236 = lean::cnstr_get(x_233, 1); +lean::inc(x_232); +x_235 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_232, x_3, x_43); +x_236 = lean::cnstr_get(x_235, 0); lean::inc(x_236); -lean::dec(x_233); -if (lean::obj_tag(x_234) == 0) +x_238 = lean::cnstr_get(x_235, 1); +lean::inc(x_238); +lean::dec(x_235); +if (lean::obj_tag(x_236) == 0) { -obj* x_242; obj* x_245; obj* x_246; +obj* x_244; obj* x_247; obj* x_248; lean::dec(x_3); lean::dec(x_0); lean::dec(x_2); -x_242 = lean::cnstr_get(x_234, 0); -lean::inc(x_242); -lean::dec(x_234); +x_244 = lean::cnstr_get(x_236, 0); +lean::inc(x_244); +lean::dec(x_236); if (lean::is_scalar(x_41)) { - x_245 = lean::alloc_cnstr(0, 1, 0); + x_247 = lean::alloc_cnstr(0, 1, 0); } else { - x_245 = x_41; + x_247 = x_41; lean::cnstr_set_tag(x_41, 0); } -lean::cnstr_set(x_245, 0, x_242); +lean::cnstr_set(x_247, 0, x_244); if (lean::is_scalar(x_30)) { - x_246 = lean::alloc_cnstr(0, 2, 0); + x_248 = lean::alloc_cnstr(0, 2, 0); } else { - x_246 = x_30; + x_248 = x_30; } -lean::cnstr_set(x_246, 0, x_245); -lean::cnstr_set(x_246, 1, x_236); -return x_246; +lean::cnstr_set(x_248, 0, x_247); +lean::cnstr_set(x_248, 1, x_238); +return x_248; } else { -obj* x_248; obj* x_249; obj* x_250; obj* x_252; -lean::dec(x_234); -x_248 = lean::mk_nat_obj(0u); -x_249 = l_list_mfoldl___main___at_lean_ir_cpp_emit__closure___spec__1(x_0, x_248, x_2, x_3, x_236); -x_250 = lean::cnstr_get(x_249, 0); -lean::inc(x_250); -x_252 = lean::cnstr_get(x_249, 1); +obj* x_250; obj* x_251; obj* x_252; obj* x_254; +lean::dec(x_236); +x_250 = lean::mk_nat_obj(0u); +x_251 = l_list_mfoldl___main___at_lean_ir_cpp_emit__closure___spec__1(x_0, x_250, x_2, x_3, x_238); +x_252 = lean::cnstr_get(x_251, 0); lean::inc(x_252); -lean::dec(x_249); -if (lean::obj_tag(x_250) == 0) +x_254 = lean::cnstr_get(x_251, 1); +lean::inc(x_254); +lean::dec(x_251); +if (lean::obj_tag(x_252) == 0) { -obj* x_255; obj* x_258; obj* x_259; -x_255 = lean::cnstr_get(x_250, 0); -lean::inc(x_255); -lean::dec(x_250); +obj* x_257; obj* x_260; obj* x_261; +x_257 = lean::cnstr_get(x_252, 0); +lean::inc(x_257); +lean::dec(x_252); if (lean::is_scalar(x_41)) { - x_258 = lean::alloc_cnstr(0, 1, 0); + x_260 = lean::alloc_cnstr(0, 1, 0); } else { - x_258 = x_41; + x_260 = x_41; lean::cnstr_set_tag(x_41, 0); } -lean::cnstr_set(x_258, 0, x_255); +lean::cnstr_set(x_260, 0, x_257); if (lean::is_scalar(x_30)) { - x_259 = lean::alloc_cnstr(0, 2, 0); + x_261 = lean::alloc_cnstr(0, 2, 0); } else { - x_259 = x_30; + x_261 = x_30; } -lean::cnstr_set(x_259, 0, x_258); -lean::cnstr_set(x_259, 1, x_252); -return x_259; +lean::cnstr_set(x_261, 0, x_260); +lean::cnstr_set(x_261, 1, x_254); +return x_261; } else { -obj* x_262; obj* x_264; -lean::dec(x_250); +obj* x_264; obj* x_266; +lean::dec(x_252); lean::dec(x_41); -x_262 = l_lean_ir_match__type___closed__5; -lean::inc(x_262); +x_264 = l_lean_ir_match__type___closed__5; +lean::inc(x_264); if (lean::is_scalar(x_30)) { - x_264 = lean::alloc_cnstr(0, 2, 0); + x_266 = lean::alloc_cnstr(0, 2, 0); } else { - x_264 = x_30; + x_266 = x_30; } -lean::cnstr_set(x_264, 0, x_262); -lean::cnstr_set(x_264, 1, x_252); -return x_264; +lean::cnstr_set(x_266, 0, x_264); +lean::cnstr_set(x_266, 1, x_254); +return x_266; } } } @@ -16079,50 +16082,51 @@ goto _start; obj* l_lean_ir_cpp_need__uncurry(obj* x_0) { _start: { -obj* x_1; obj* x_2; obj* x_5; obj* x_6; uint8 x_7; +obj* x_1; obj* x_2; obj* x_4; obj* x_6; obj* x_7; uint8 x_8; x_1 = l_lean_ir_decl_header___main(x_0); x_2 = lean::cnstr_get(x_1, 1); lean::inc(x_2); +x_4 = lean::mk_nat_obj(0u); lean::inc(x_2); -x_5 = l_list_length___main___rarg(x_2); -x_6 = l_lean_closure__max__args; -x_7 = lean::nat_dec_lt(x_6, x_5); -lean::dec(x_5); -if (x_7 == 0) +x_6 = l_list_length__aux___main___rarg(x_2, x_4); +x_7 = l_lean_closure__max__args; +x_8 = lean::nat_dec_lt(x_7, x_6); +lean::dec(x_6); +if (x_8 == 0) { -uint8 x_11; obj* x_12; +uint8 x_12; obj* x_13; lean::dec(x_1); lean::dec(x_2); -x_11 = 0; -x_12 = lean::box(x_11); -return x_12; +x_12 = 0; +x_13 = lean::box(x_12); +return x_13; } else { -obj* x_13; uint8 x_16; obj* x_18; obj* x_19; uint8 x_20; -x_13 = lean::cnstr_get(x_1, 2); -lean::inc(x_13); +obj* x_14; uint8 x_17; obj* x_19; obj* x_20; uint8 x_21; +x_14 = lean::cnstr_get(x_1, 2); +lean::inc(x_14); lean::dec(x_1); -x_16 = lean::unbox(x_13); -lean::dec(x_13); -x_18 = l_lean_ir_type2id___main(x_16); -x_19 = l_lean_ir_valid__assign__unop__types___closed__1; -x_20 = lean::nat_dec_eq(x_18, x_19); -lean::dec(x_18); -if (x_20 == 0) +x_17 = lean::unbox(x_14); +lean::dec(x_14); +x_19 = l_lean_ir_type2id___main(x_17); +x_20 = l_lean_ir_valid__assign__unop__types___closed__1; +x_21 = lean::nat_dec_eq(x_19, x_20); +lean::dec(x_19); +if (x_21 == 0) { -uint8 x_23; obj* x_24; +uint8 x_24; obj* x_25; lean::dec(x_2); -x_23 = 0; -x_24 = lean::box(x_23); -return x_24; -} -else -{ -obj* x_25; -x_25 = l_list_foldr___main___at_lean_ir_cpp_need__uncurry___spec__1(x_2); +x_24 = 0; +x_25 = lean::box(x_24); return x_25; } +else +{ +obj* x_26; +x_26 = l_list_foldr___main___at_lean_ir_cpp_need__uncurry___spec__1(x_2); +return x_26; +} } } } @@ -16277,34 +16281,34 @@ _start: obj* x_5; uint8 x_6; x_5 = lean::mk_nat_obj(0u); x_6 = lean::nat_dec_eq(x_1, x_5); -lean::dec(x_5); if (x_6 == 0) { -obj* x_8; obj* x_9; obj* x_11; obj* x_12; obj* x_15; obj* x_16; obj* x_19; obj* x_22; -x_8 = lean::mk_nat_obj(1u); -x_9 = lean::nat_sub(x_1, x_8); +obj* x_7; obj* x_8; obj* x_10; obj* x_11; obj* x_14; obj* x_15; obj* x_18; obj* x_21; +x_7 = lean::mk_nat_obj(1u); +x_8 = lean::nat_sub(x_1, x_7); lean::inc(x_0); -x_11 = l_lean_ir_decl_header___main(x_0); -x_12 = lean::cnstr_get(x_11, 1); -lean::inc(x_12); -lean::dec(x_11); -x_15 = l_list_length___main___rarg(x_12); -x_16 = lean::nat_sub(x_15, x_8); -lean::dec(x_8); -lean::dec(x_15); -x_19 = lean::nat_sub(x_16, x_1); +x_10 = l_lean_ir_decl_header___main(x_0); +x_11 = lean::cnstr_get(x_10, 1); +lean::inc(x_11); +lean::dec(x_10); +x_14 = l_list_length__aux___main___rarg(x_11, x_5); +x_15 = lean::nat_sub(x_14, x_7); +lean::dec(x_7); +lean::dec(x_14); +x_18 = lean::nat_sub(x_15, x_1); lean::dec(x_1); -lean::dec(x_16); -x_22 = lean::alloc_closure(reinterpret_cast(l_nat_repeat__core___main___at_lean_ir_cpp_emit__uncurry___spec__3___lambda__1), 4, 2); -lean::closure_set(x_22, 0, x_2); -lean::closure_set(x_22, 1, x_19); -x_1 = x_9; -x_2 = x_22; +lean::dec(x_15); +x_21 = lean::alloc_closure(reinterpret_cast(l_nat_repeat__core___main___at_lean_ir_cpp_emit__uncurry___spec__3___lambda__1), 4, 2); +lean::closure_set(x_21, 0, x_2); +lean::closure_set(x_21, 1, x_18); +x_1 = x_8; +x_2 = x_21; goto _start; } else { obj* x_26; +lean::dec(x_5); lean::dec(x_1); lean::dec(x_0); x_26 = lean::apply_2(x_2, x_3, x_4); @@ -16504,21 +16508,22 @@ return x_0; obj* l_nat_mrepeat___at_lean_ir_cpp_emit__uncurry___spec__1(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_4; obj* x_5; obj* x_8; obj* x_9; obj* x_10; obj* x_13; obj* x_15; +obj* x_4; obj* x_5; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_14; obj* x_16; lean::inc(x_0); x_4 = l_lean_ir_decl_header___main(x_0); x_5 = lean::cnstr_get(x_4, 1); lean::inc(x_5); lean::dec(x_4); -x_8 = l_list_length___main___rarg(x_5); -x_9 = lean::mk_nat_obj(1u); -x_10 = lean::nat_sub(x_8, x_9); +x_8 = lean::mk_nat_obj(0u); +x_9 = l_list_length__aux___main___rarg(x_5, x_8); +x_10 = lean::mk_nat_obj(1u); +x_11 = lean::nat_sub(x_9, x_10); +lean::dec(x_10); lean::dec(x_9); -lean::dec(x_8); -x_13 = l_nat_mrepeat___at_lean_ir_cpp_emit__uncurry___spec__1___closed__1; -lean::inc(x_13); -x_15 = l_nat_repeat__core___main___at_lean_ir_cpp_emit__uncurry___spec__3(x_0, x_10, x_13, x_1, x_2); -return x_15; +x_14 = l_nat_mrepeat___at_lean_ir_cpp_emit__uncurry___spec__1___closed__1; +lean::inc(x_14); +x_16 = l_nat_repeat__core___main___at_lean_ir_cpp_emit__uncurry___spec__3(x_0, x_11, x_14, x_1, x_2); +return x_16; } } obj* _init_l_nat_mrepeat___at_lean_ir_cpp_emit__uncurry___spec__1___closed__1() { @@ -20962,540 +20967,541 @@ return x_34; } else { -obj* x_35; obj* x_38; obj* x_39; obj* x_41; obj* x_42; uint8 x_43; obj* x_46; uint8 x_49; obj* x_51; obj* x_52; uint8 x_53; obj* x_55; obj* x_58; +obj* x_35; obj* x_38; obj* x_39; obj* x_41; obj* x_43; uint8 x_44; obj* x_47; uint8 x_50; obj* x_52; obj* x_53; uint8 x_54; obj* x_56; obj* x_59; x_35 = lean::cnstr_get(x_18, 0); lean::inc(x_35); lean::dec(x_18); x_38 = l_lean_ir_decl_header___main(x_35); x_39 = lean::cnstr_get(x_38, 1); lean::inc(x_39); -x_41 = l_list_length___main___rarg(x_39); -x_42 = lean::mk_nat_obj(0u); -x_43 = lean::nat_dec_eq(x_41, x_42); -lean::dec(x_42); +x_41 = lean::mk_nat_obj(0u); +lean::inc(x_41); +x_43 = l_list_length__aux___main___rarg(x_39, x_41); +x_44 = lean::nat_dec_eq(x_43, x_41); lean::dec(x_41); -x_46 = lean::cnstr_get(x_38, 2); -lean::inc(x_46); +lean::dec(x_43); +x_47 = lean::cnstr_get(x_38, 2); +lean::inc(x_47); lean::dec(x_38); -x_49 = lean::unbox(x_46); -lean::dec(x_46); -x_51 = l_lean_ir_type2id___main(x_49); -x_52 = l_lean_ir_valid__assign__unop__types___closed__4; -x_53 = lean::nat_dec_eq(x_51, x_52); -lean::dec(x_51); -x_55 = lean::cnstr_get(x_2, 0); -lean::inc(x_55); +x_50 = lean::unbox(x_47); +lean::dec(x_47); +x_52 = l_lean_ir_type2id___main(x_50); +x_53 = l_lean_ir_valid__assign__unop__types___closed__4; +x_54 = lean::nat_dec_eq(x_52, x_53); +lean::dec(x_52); +x_56 = lean::cnstr_get(x_2, 0); +lean::inc(x_56); lean::dec(x_2); -if (x_53 == 0) +if (x_54 == 0) { -uint8 x_60; obj* x_61; -x_60 = 0; -x_61 = lean::box(x_60); -x_58 = x_61; -goto lbl_59; +uint8 x_61; obj* x_62; +x_61 = 0; +x_62 = lean::box(x_61); +x_59 = x_62; +goto lbl_60; } else { -uint8 x_62; obj* x_63; -x_62 = 1; -x_63 = lean::box(x_62); -x_58 = x_63; -goto lbl_59; +uint8 x_63; obj* x_64; +x_63 = 1; +x_64 = lean::box(x_63); +x_59 = x_64; +goto lbl_60; } -lbl_59: +lbl_60: { -obj* x_64; obj* x_65; obj* x_67; obj* x_68; obj* x_70; obj* x_71; -if (x_43 == 0) +obj* x_65; obj* x_66; obj* x_68; obj* x_69; obj* x_71; obj* x_72; +if (x_44 == 0) { -obj* x_75; obj* x_76; uint8 x_77; obj* x_78; obj* x_80; obj* x_81; obj* x_82; obj* x_84; obj* x_85; obj* x_86; -lean::dec(x_58); +obj* x_76; obj* x_77; uint8 x_78; obj* x_79; obj* x_81; obj* x_82; obj* x_83; obj* x_85; obj* x_86; obj* x_87; +lean::dec(x_59); lean::inc(x_12); -x_75 = l_lean_ir_id_to__string___main(x_12); -x_76 = lean::alloc_cnstr(2, 1, 0); -lean::cnstr_set(x_76, 0, x_75); -x_77 = 0; -x_78 = l_lean_ir_cpp_emit__main__proc___closed__5; -lean::inc(x_78); -x_80 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_80, 0, x_78); -lean::cnstr_set(x_80, 1, x_76); -lean::cnstr_set_scalar(x_80, sizeof(void*)*2, x_77); -x_81 = x_80; -x_82 = l_lean_ir_cpp_emit__main__proc___closed__6; -lean::inc(x_82); -x_84 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_84, 0, x_81); -lean::cnstr_set(x_84, 1, x_82); -lean::cnstr_set_scalar(x_84, sizeof(void*)*2, x_77); -x_85 = x_84; -x_86 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_86, 0, x_85); -x_70 = x_86; -x_71 = x_1; -goto lbl_72; +x_76 = l_lean_ir_id_to__string___main(x_12); +x_77 = lean::alloc_cnstr(2, 1, 0); +lean::cnstr_set(x_77, 0, x_76); +x_78 = 0; +x_79 = l_lean_ir_cpp_emit__main__proc___closed__5; +lean::inc(x_79); +x_81 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_81, 0, x_79); +lean::cnstr_set(x_81, 1, x_77); +lean::cnstr_set_scalar(x_81, sizeof(void*)*2, x_78); +x_82 = x_81; +x_83 = l_lean_ir_cpp_emit__main__proc___closed__6; +lean::inc(x_83); +x_85 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_85, 0, x_82); +lean::cnstr_set(x_85, 1, x_83); +lean::cnstr_set_scalar(x_85, sizeof(void*)*2, x_78); +x_86 = x_85; +x_87 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_87, 0, x_86); +x_71 = x_87; +x_72 = x_1; +goto lbl_73; } else { -uint8 x_87; -x_87 = lean::unbox(x_58); -lean::dec(x_58); -if (x_87 == 0) +uint8 x_88; +x_88 = lean::unbox(x_59); +lean::dec(x_59); +if (x_88 == 0) { -obj* x_90; obj* x_91; uint8 x_92; obj* x_93; obj* x_95; obj* x_96; obj* x_97; obj* x_99; obj* x_100; obj* x_101; +obj* x_91; obj* x_92; uint8 x_93; obj* x_94; obj* x_96; obj* x_97; obj* x_98; obj* x_100; obj* x_101; obj* x_102; lean::inc(x_12); -x_90 = l_lean_ir_id_to__string___main(x_12); -x_91 = lean::alloc_cnstr(2, 1, 0); -lean::cnstr_set(x_91, 0, x_90); -x_92 = 0; -x_93 = l_lean_ir_cpp_emit__main__proc___closed__5; -lean::inc(x_93); -x_95 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_95, 0, x_93); -lean::cnstr_set(x_95, 1, x_91); -lean::cnstr_set_scalar(x_95, sizeof(void*)*2, x_92); -x_96 = x_95; -x_97 = l_lean_ir_cpp_emit__main__proc___closed__7; -lean::inc(x_97); -x_99 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_99, 0, x_96); -lean::cnstr_set(x_99, 1, x_97); -lean::cnstr_set_scalar(x_99, sizeof(void*)*2, x_92); -x_100 = x_99; -x_101 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_101, 0, x_100); -x_70 = x_101; -x_71 = x_1; -goto lbl_72; +x_91 = l_lean_ir_id_to__string___main(x_12); +x_92 = lean::alloc_cnstr(2, 1, 0); +lean::cnstr_set(x_92, 0, x_91); +x_93 = 0; +x_94 = l_lean_ir_cpp_emit__main__proc___closed__5; +lean::inc(x_94); +x_96 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_96, 0, x_94); +lean::cnstr_set(x_96, 1, x_92); +lean::cnstr_set_scalar(x_96, sizeof(void*)*2, x_93); +x_97 = x_96; +x_98 = l_lean_ir_cpp_emit__main__proc___closed__7; +lean::inc(x_98); +x_100 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_100, 0, x_97); +lean::cnstr_set(x_100, 1, x_98); +lean::cnstr_set_scalar(x_100, sizeof(void*)*2, x_93); +x_101 = x_100; +x_102 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_102, 0, x_101); +x_71 = x_102; +x_72 = x_1; +goto lbl_73; } else { -obj* x_102; -x_102 = l_lean_ir_match__type___closed__5; -lean::inc(x_102); -x_70 = x_102; -x_71 = x_1; -goto lbl_72; +obj* x_103; +x_103 = l_lean_ir_match__type___closed__5; +lean::inc(x_103); +x_71 = x_103; +x_72 = x_1; +goto lbl_73; } } -lbl_66: +lbl_67: { -if (lean::obj_tag(x_64) == 0) +if (lean::obj_tag(x_65) == 0) { -obj* x_106; obj* x_108; obj* x_109; obj* x_110; +obj* x_107; obj* x_109; obj* x_110; obj* x_111; lean::dec(x_0); -lean::dec(x_55); -x_106 = lean::cnstr_get(x_64, 0); -lean::inc(x_106); -if (lean::is_shared(x_64)) { - lean::dec(x_64); - x_108 = lean::box(0); +lean::dec(x_56); +x_107 = lean::cnstr_get(x_65, 0); +lean::inc(x_107); +if (lean::is_shared(x_65)) { + lean::dec(x_65); + x_109 = lean::box(0); } else { - lean::cnstr_release(x_64, 0); - x_108 = x_64; + lean::cnstr_release(x_65, 0); + x_109 = x_65; } -if (lean::is_scalar(x_108)) { - x_109 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_109)) { + x_110 = lean::alloc_cnstr(0, 1, 0); } else { - x_109 = x_108; + x_110 = x_109; } -lean::cnstr_set(x_109, 0, x_106); -x_110 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_110, 0, x_109); -lean::cnstr_set(x_110, 1, x_65); -return x_110; +lean::cnstr_set(x_110, 0, x_107); +x_111 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_111, 0, x_110); +lean::cnstr_set(x_111, 1, x_66); +return x_111; } else { -obj* x_111; obj* x_112; obj* x_115; obj* x_116; obj* x_118; obj* x_120; -if (lean::is_shared(x_64)) { - lean::dec(x_64); - x_111 = lean::box(0); +obj* x_112; obj* x_113; obj* x_116; obj* x_117; obj* x_119; obj* x_121; +if (lean::is_shared(x_65)) { + lean::dec(x_65); + x_112 = lean::box(0); } else { - lean::cnstr_release(x_64, 0); - x_111 = x_64; + lean::cnstr_release(x_65, 0); + x_112 = x_65; } -x_112 = l_list_mmap_x_27___main___at_lean_ir_cpp_emit__initialize__proc___spec__1___closed__1; +x_113 = l_list_mmap_x_27___main___at_lean_ir_cpp_emit__initialize__proc___spec__1___closed__1; lean::inc(x_0); -lean::inc(x_112); -x_115 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_112, x_0, x_65); -x_116 = lean::cnstr_get(x_115, 0); -lean::inc(x_116); -x_118 = lean::cnstr_get(x_115, 1); -lean::inc(x_118); -if (lean::is_shared(x_115)) { - lean::dec(x_115); - x_120 = lean::box(0); +lean::inc(x_113); +x_116 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_113, x_0, x_66); +x_117 = lean::cnstr_get(x_116, 0); +lean::inc(x_117); +x_119 = lean::cnstr_get(x_116, 1); +lean::inc(x_119); +if (lean::is_shared(x_116)) { + lean::dec(x_116); + x_121 = lean::box(0); } else { - lean::cnstr_release(x_115, 0); - lean::cnstr_release(x_115, 1); - x_120 = x_115; + lean::cnstr_release(x_116, 0); + lean::cnstr_release(x_116, 1); + x_121 = x_116; } -if (lean::obj_tag(x_116) == 0) +if (lean::obj_tag(x_117) == 0) { -obj* x_123; obj* x_126; obj* x_127; +obj* x_124; obj* x_127; obj* x_128; lean::dec(x_0); -lean::dec(x_55); -x_123 = lean::cnstr_get(x_116, 0); -lean::inc(x_123); -lean::dec(x_116); -if (lean::is_scalar(x_111)) { - x_126 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_56); +x_124 = lean::cnstr_get(x_117, 0); +lean::inc(x_124); +lean::dec(x_117); +if (lean::is_scalar(x_112)) { + x_127 = lean::alloc_cnstr(0, 1, 0); } else { - x_126 = x_111; - lean::cnstr_set_tag(x_111, 0); + x_127 = x_112; + lean::cnstr_set_tag(x_112, 0); } -lean::cnstr_set(x_126, 0, x_123); -if (lean::is_scalar(x_120)) { - x_127 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_127, 0, x_124); +if (lean::is_scalar(x_121)) { + x_128 = lean::alloc_cnstr(0, 2, 0); } else { - x_127 = x_120; + x_128 = x_121; } -lean::cnstr_set(x_127, 0, x_126); -lean::cnstr_set(x_127, 1, x_118); -return x_127; +lean::cnstr_set(x_128, 0, x_127); +lean::cnstr_set(x_128, 1, x_119); +return x_128; } else { -obj* x_129; obj* x_132; obj* x_133; obj* x_135; -lean::dec(x_116); -x_129 = l_lean_ir_cpp_finalize__prefix; +obj* x_130; obj* x_133; obj* x_134; obj* x_136; +lean::dec(x_117); +x_130 = l_lean_ir_cpp_finalize__prefix; lean::inc(x_0); -lean::inc(x_129); -x_132 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_129, x_0, x_118); -x_133 = lean::cnstr_get(x_132, 0); -lean::inc(x_133); -x_135 = lean::cnstr_get(x_132, 1); -lean::inc(x_135); -lean::dec(x_132); -if (lean::obj_tag(x_133) == 0) -{ -obj* x_140; obj* x_143; obj* x_144; -lean::dec(x_0); -lean::dec(x_55); -x_140 = lean::cnstr_get(x_133, 0); -lean::inc(x_140); +lean::inc(x_130); +x_133 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_130, x_0, x_119); +x_134 = lean::cnstr_get(x_133, 0); +lean::inc(x_134); +x_136 = lean::cnstr_get(x_133, 1); +lean::inc(x_136); lean::dec(x_133); -if (lean::is_scalar(x_111)) { - x_143 = lean::alloc_cnstr(0, 1, 0); -} else { - x_143 = x_111; - lean::cnstr_set_tag(x_111, 0); -} -lean::cnstr_set(x_143, 0, x_140); -if (lean::is_scalar(x_120)) { - x_144 = lean::alloc_cnstr(0, 2, 0); -} else { - x_144 = x_120; -} -lean::cnstr_set(x_144, 0, x_143); -lean::cnstr_set(x_144, 1, x_135); -return x_144; -} -else +if (lean::obj_tag(x_134) == 0) { -obj* x_147; obj* x_148; obj* x_150; -lean::dec(x_133); -lean::inc(x_0); -x_147 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_55, x_0, x_135); -x_148 = lean::cnstr_get(x_147, 0); -lean::inc(x_148); -x_150 = lean::cnstr_get(x_147, 1); -lean::inc(x_150); -lean::dec(x_147); -if (lean::obj_tag(x_148) == 0) -{ -obj* x_154; obj* x_157; obj* x_158; +obj* x_141; obj* x_144; obj* x_145; lean::dec(x_0); -x_154 = lean::cnstr_get(x_148, 0); -lean::inc(x_154); -lean::dec(x_148); -if (lean::is_scalar(x_111)) { - x_157 = lean::alloc_cnstr(0, 1, 0); +lean::dec(x_56); +x_141 = lean::cnstr_get(x_134, 0); +lean::inc(x_141); +lean::dec(x_134); +if (lean::is_scalar(x_112)) { + x_144 = lean::alloc_cnstr(0, 1, 0); } else { - x_157 = x_111; - lean::cnstr_set_tag(x_111, 0); + x_144 = x_112; + lean::cnstr_set_tag(x_112, 0); } -lean::cnstr_set(x_157, 0, x_154); -if (lean::is_scalar(x_120)) { - x_158 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_144, 0, x_141); +if (lean::is_scalar(x_121)) { + x_145 = lean::alloc_cnstr(0, 2, 0); } else { - x_158 = x_120; + x_145 = x_121; } -lean::cnstr_set(x_158, 0, x_157); -lean::cnstr_set(x_158, 1, x_150); -return x_158; +lean::cnstr_set(x_145, 0, x_144); +lean::cnstr_set(x_145, 1, x_136); +return x_145; } else { -obj* x_162; obj* x_163; obj* x_165; -lean::dec(x_148); +obj* x_148; obj* x_149; obj* x_151; +lean::dec(x_134); lean::inc(x_0); -lean::inc(x_112); -x_162 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_112, x_0, x_150); -x_163 = lean::cnstr_get(x_162, 0); -lean::inc(x_163); -x_165 = lean::cnstr_get(x_162, 1); -lean::inc(x_165); -lean::dec(x_162); -if (lean::obj_tag(x_163) == 0) +x_148 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_56, x_0, x_136); +x_149 = lean::cnstr_get(x_148, 0); +lean::inc(x_149); +x_151 = lean::cnstr_get(x_148, 1); +lean::inc(x_151); +lean::dec(x_148); +if (lean::obj_tag(x_149) == 0) { -obj* x_169; obj* x_172; obj* x_173; +obj* x_155; obj* x_158; obj* x_159; lean::dec(x_0); -x_169 = lean::cnstr_get(x_163, 0); -lean::inc(x_169); +x_155 = lean::cnstr_get(x_149, 0); +lean::inc(x_155); +lean::dec(x_149); +if (lean::is_scalar(x_112)) { + x_158 = lean::alloc_cnstr(0, 1, 0); +} else { + x_158 = x_112; + lean::cnstr_set_tag(x_112, 0); +} +lean::cnstr_set(x_158, 0, x_155); +if (lean::is_scalar(x_121)) { + x_159 = lean::alloc_cnstr(0, 2, 0); +} else { + x_159 = x_121; +} +lean::cnstr_set(x_159, 0, x_158); +lean::cnstr_set(x_159, 1, x_151); +return x_159; +} +else +{ +obj* x_163; obj* x_164; obj* x_166; +lean::dec(x_149); +lean::inc(x_0); +lean::inc(x_113); +x_163 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_113, x_0, x_151); +x_164 = lean::cnstr_get(x_163, 0); +lean::inc(x_164); +x_166 = lean::cnstr_get(x_163, 1); +lean::inc(x_166); lean::dec(x_163); -if (lean::is_scalar(x_111)) { - x_172 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_164) == 0) +{ +obj* x_170; obj* x_173; obj* x_174; +lean::dec(x_0); +x_170 = lean::cnstr_get(x_164, 0); +lean::inc(x_170); +lean::dec(x_164); +if (lean::is_scalar(x_112)) { + x_173 = lean::alloc_cnstr(0, 1, 0); } else { - x_172 = x_111; - lean::cnstr_set_tag(x_111, 0); + x_173 = x_112; + lean::cnstr_set_tag(x_112, 0); } -lean::cnstr_set(x_172, 0, x_169); -if (lean::is_scalar(x_120)) { - x_173 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_173, 0, x_170); +if (lean::is_scalar(x_121)) { + x_174 = lean::alloc_cnstr(0, 2, 0); } else { - x_173 = x_120; + x_174 = x_121; } -lean::cnstr_set(x_173, 0, x_172); -lean::cnstr_set(x_173, 1, x_165); -return x_173; +lean::cnstr_set(x_174, 0, x_173); +lean::cnstr_set(x_174, 1, x_166); +return x_174; } else { -obj* x_177; obj* x_179; -lean::dec(x_163); -lean::dec(x_111); -lean::dec(x_120); -x_177 = l_lean_ir_cpp_emit__main__proc___closed__2; -lean::inc(x_177); -x_179 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_177, x_0, x_165); -return x_179; +obj* x_178; obj* x_180; +lean::dec(x_164); +lean::dec(x_112); +lean::dec(x_121); +x_178 = l_lean_ir_cpp_emit__main__proc___closed__2; +lean::inc(x_178); +x_180 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_178, x_0, x_166); +return x_180; } } } } } } -lbl_69: +lbl_70: { -if (lean::obj_tag(x_67) == 0) +if (lean::obj_tag(x_68) == 0) { -obj* x_181; obj* x_183; obj* x_184; +obj* x_182; obj* x_184; obj* x_185; lean::dec(x_12); -x_181 = lean::cnstr_get(x_67, 0); -lean::inc(x_181); -if (lean::is_shared(x_67)) { - lean::dec(x_67); - x_183 = lean::box(0); +x_182 = lean::cnstr_get(x_68, 0); +lean::inc(x_182); +if (lean::is_shared(x_68)) { + lean::dec(x_68); + x_184 = lean::box(0); } else { - lean::cnstr_release(x_67, 0); - x_183 = x_67; + lean::cnstr_release(x_68, 0); + x_184 = x_68; } -if (lean::is_scalar(x_183)) { - x_184 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_184)) { + x_185 = lean::alloc_cnstr(0, 1, 0); } else { - x_184 = x_183; + x_185 = x_184; } -lean::cnstr_set(x_184, 0, x_181); -x_64 = x_184; -x_65 = x_68; -goto lbl_66; +lean::cnstr_set(x_185, 0, x_182); +x_65 = x_185; +x_66 = x_69; +goto lbl_67; } else { -obj* x_185; obj* x_188; obj* x_189; obj* x_191; -if (lean::is_shared(x_67)) { - lean::dec(x_67); - x_185 = lean::box(0); +obj* x_186; obj* x_189; obj* x_190; obj* x_192; +if (lean::is_shared(x_68)) { + lean::dec(x_68); + x_186 = lean::box(0); } else { - lean::cnstr_release(x_67, 0); - x_185 = x_67; + lean::cnstr_release(x_68, 0); + x_186 = x_68; } lean::inc(x_0); -lean::inc(x_55); -x_188 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_55, x_0, x_68); -x_189 = lean::cnstr_get(x_188, 0); -lean::inc(x_189); -x_191 = lean::cnstr_get(x_188, 1); -lean::inc(x_191); -lean::dec(x_188); -if (lean::obj_tag(x_189) == 0) -{ -obj* x_195; obj* x_198; -lean::dec(x_12); -x_195 = lean::cnstr_get(x_189, 0); -lean::inc(x_195); +lean::inc(x_56); +x_189 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_56, x_0, x_69); +x_190 = lean::cnstr_get(x_189, 0); +lean::inc(x_190); +x_192 = lean::cnstr_get(x_189, 1); +lean::inc(x_192); lean::dec(x_189); -if (lean::is_scalar(x_185)) { - x_198 = lean::alloc_cnstr(0, 1, 0); -} else { - x_198 = x_185; - lean::cnstr_set_tag(x_185, 0); -} -lean::cnstr_set(x_198, 0, x_195); -x_64 = x_198; -x_65 = x_191; -goto lbl_66; -} -else +if (lean::obj_tag(x_190) == 0) { -obj* x_200; obj* x_203; obj* x_204; obj* x_206; -lean::dec(x_189); -x_200 = l_list_mmap_x_27___main___at_lean_ir_cpp_emit__initialize__proc___spec__1___closed__1; -lean::inc(x_0); -lean::inc(x_200); -x_203 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_200, x_0, x_191); -x_204 = lean::cnstr_get(x_203, 0); -lean::inc(x_204); -x_206 = lean::cnstr_get(x_203, 1); -lean::inc(x_206); -lean::dec(x_203); -if (lean::obj_tag(x_204) == 0) -{ -obj* x_210; obj* x_213; +obj* x_196; obj* x_199; lean::dec(x_12); -x_210 = lean::cnstr_get(x_204, 0); -lean::inc(x_210); -lean::dec(x_204); -if (lean::is_scalar(x_185)) { - x_213 = lean::alloc_cnstr(0, 1, 0); +x_196 = lean::cnstr_get(x_190, 0); +lean::inc(x_196); +lean::dec(x_190); +if (lean::is_scalar(x_186)) { + x_199 = lean::alloc_cnstr(0, 1, 0); } else { - x_213 = x_185; - lean::cnstr_set_tag(x_185, 0); + x_199 = x_186; + lean::cnstr_set_tag(x_186, 0); } -lean::cnstr_set(x_213, 0, x_210); -x_64 = x_213; -x_65 = x_206; -goto lbl_66; +lean::cnstr_set(x_199, 0, x_196); +x_65 = x_199; +x_66 = x_192; +goto lbl_67; } else { -obj* x_215; obj* x_218; obj* x_219; obj* x_221; -lean::dec(x_204); -x_215 = l_lean_ir_cpp_emit__main__proc___closed__3; +obj* x_201; obj* x_204; obj* x_205; obj* x_207; +lean::dec(x_190); +x_201 = l_list_mmap_x_27___main___at_lean_ir_cpp_emit__initialize__proc___spec__1___closed__1; lean::inc(x_0); -lean::inc(x_215); -x_218 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_215, x_0, x_206); -x_219 = lean::cnstr_get(x_218, 0); -lean::inc(x_219); -x_221 = lean::cnstr_get(x_218, 1); -lean::inc(x_221); -lean::dec(x_218); -if (lean::obj_tag(x_219) == 0) +lean::inc(x_201); +x_204 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_201, x_0, x_192); +x_205 = lean::cnstr_get(x_204, 0); +lean::inc(x_205); +x_207 = lean::cnstr_get(x_204, 1); +lean::inc(x_207); +lean::dec(x_204); +if (lean::obj_tag(x_205) == 0) { -obj* x_225; obj* x_228; +obj* x_211; obj* x_214; lean::dec(x_12); -x_225 = lean::cnstr_get(x_219, 0); -lean::inc(x_225); +x_211 = lean::cnstr_get(x_205, 0); +lean::inc(x_211); +lean::dec(x_205); +if (lean::is_scalar(x_186)) { + x_214 = lean::alloc_cnstr(0, 1, 0); +} else { + x_214 = x_186; + lean::cnstr_set_tag(x_186, 0); +} +lean::cnstr_set(x_214, 0, x_211); +x_65 = x_214; +x_66 = x_207; +goto lbl_67; +} +else +{ +obj* x_216; obj* x_219; obj* x_220; obj* x_222; +lean::dec(x_205); +x_216 = l_lean_ir_cpp_emit__main__proc___closed__3; +lean::inc(x_0); +lean::inc(x_216); +x_219 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_216, x_0, x_207); +x_220 = lean::cnstr_get(x_219, 0); +lean::inc(x_220); +x_222 = lean::cnstr_get(x_219, 1); +lean::inc(x_222); lean::dec(x_219); -if (lean::is_scalar(x_185)) { - x_228 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_220) == 0) +{ +obj* x_226; obj* x_229; +lean::dec(x_12); +x_226 = lean::cnstr_get(x_220, 0); +lean::inc(x_226); +lean::dec(x_220); +if (lean::is_scalar(x_186)) { + x_229 = lean::alloc_cnstr(0, 1, 0); } else { - x_228 = x_185; - lean::cnstr_set_tag(x_185, 0); + x_229 = x_186; + lean::cnstr_set_tag(x_186, 0); } -lean::cnstr_set(x_228, 0, x_225); -x_64 = x_228; -x_65 = x_221; -goto lbl_66; +lean::cnstr_set(x_229, 0, x_226); +x_65 = x_229; +x_66 = x_222; +goto lbl_67; } else { -obj* x_232; obj* x_233; obj* x_235; -lean::dec(x_219); -lean::dec(x_185); +obj* x_233; obj* x_234; obj* x_236; +lean::dec(x_220); +lean::dec(x_186); lean::inc(x_0); -x_232 = l_lean_ir_cpp_emit__fnid(x_12, x_0, x_221); -x_233 = lean::cnstr_get(x_232, 0); -lean::inc(x_233); -x_235 = lean::cnstr_get(x_232, 1); -lean::inc(x_235); -lean::dec(x_232); -x_64 = x_233; -x_65 = x_235; -goto lbl_66; +x_233 = l_lean_ir_cpp_emit__fnid(x_12, x_0, x_222); +x_234 = lean::cnstr_get(x_233, 0); +lean::inc(x_234); +x_236 = lean::cnstr_get(x_233, 1); +lean::inc(x_236); +lean::dec(x_233); +x_65 = x_234; +x_66 = x_236; +goto lbl_67; } } } } } -lbl_72: +lbl_73: { -if (lean::obj_tag(x_70) == 0) +if (lean::obj_tag(x_71) == 0) { -obj* x_238; obj* x_240; obj* x_241; -x_238 = lean::cnstr_get(x_70, 0); -lean::inc(x_238); -if (lean::is_shared(x_70)) { - lean::dec(x_70); - x_240 = lean::box(0); +obj* x_239; obj* x_241; obj* x_242; +x_239 = lean::cnstr_get(x_71, 0); +lean::inc(x_239); +if (lean::is_shared(x_71)) { + lean::dec(x_71); + x_241 = lean::box(0); } else { - lean::cnstr_release(x_70, 0); - x_240 = x_70; + lean::cnstr_release(x_71, 0); + x_241 = x_71; } -if (lean::is_scalar(x_240)) { - x_241 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_241)) { + x_242 = lean::alloc_cnstr(0, 1, 0); } else { - x_241 = x_240; + x_242 = x_241; } -lean::cnstr_set(x_241, 0, x_238); -x_67 = x_241; -x_68 = x_71; -goto lbl_69; +lean::cnstr_set(x_242, 0, x_239); +x_68 = x_242; +x_69 = x_72; +goto lbl_70; } else { -obj* x_242; obj* x_243; obj* x_246; obj* x_247; obj* x_249; -if (lean::is_shared(x_70)) { - lean::dec(x_70); - x_242 = lean::box(0); +obj* x_243; obj* x_244; obj* x_247; obj* x_248; obj* x_250; +if (lean::is_shared(x_71)) { + lean::dec(x_71); + x_243 = lean::box(0); } else { - lean::cnstr_release(x_70, 0); - x_242 = x_70; + lean::cnstr_release(x_71, 0); + x_243 = x_71; } -x_243 = l_lean_ir_cpp_emit__main__proc___closed__4; +x_244 = l_lean_ir_cpp_emit__main__proc___closed__4; lean::inc(x_0); -lean::inc(x_243); -x_246 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_243, x_0, x_71); -x_247 = lean::cnstr_get(x_246, 0); -lean::inc(x_247); -x_249 = lean::cnstr_get(x_246, 1); -lean::inc(x_249); -lean::dec(x_246); -if (lean::obj_tag(x_247) == 0) -{ -obj* x_252; obj* x_255; -x_252 = lean::cnstr_get(x_247, 0); -lean::inc(x_252); +lean::inc(x_244); +x_247 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_244, x_0, x_72); +x_248 = lean::cnstr_get(x_247, 0); +lean::inc(x_248); +x_250 = lean::cnstr_get(x_247, 1); +lean::inc(x_250); lean::dec(x_247); -if (lean::is_scalar(x_242)) { - x_255 = lean::alloc_cnstr(0, 1, 0); +if (lean::obj_tag(x_248) == 0) +{ +obj* x_253; obj* x_256; +x_253 = lean::cnstr_get(x_248, 0); +lean::inc(x_253); +lean::dec(x_248); +if (lean::is_scalar(x_243)) { + x_256 = lean::alloc_cnstr(0, 1, 0); } else { - x_255 = x_242; - lean::cnstr_set_tag(x_242, 0); + x_256 = x_243; + lean::cnstr_set_tag(x_243, 0); } -lean::cnstr_set(x_255, 0, x_252); -x_67 = x_255; -x_68 = x_249; -goto lbl_69; +lean::cnstr_set(x_256, 0, x_253); +x_68 = x_256; +x_69 = x_250; +goto lbl_70; } else { -obj* x_258; obj* x_261; obj* x_262; obj* x_264; -lean::dec(x_242); -lean::dec(x_247); -x_258 = l_lean_ir_cpp_initialize__prefix; +obj* x_259; obj* x_262; obj* x_263; obj* x_265; +lean::dec(x_243); +lean::dec(x_248); +x_259 = l_lean_ir_cpp_initialize__prefix; lean::inc(x_0); -lean::inc(x_258); -x_261 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_258, x_0, x_249); -x_262 = lean::cnstr_get(x_261, 0); -lean::inc(x_262); -x_264 = lean::cnstr_get(x_261, 1); -lean::inc(x_264); -lean::dec(x_261); -x_67 = x_262; -x_68 = x_264; -goto lbl_69; +lean::inc(x_259); +x_262 = l_lean_ir_cpp_emit___at_lean_ir_cpp_emit__line___spec__1(x_259, x_0, x_250); +x_263 = lean::cnstr_get(x_262, 0); +lean::inc(x_263); +x_265 = lean::cnstr_get(x_262, 1); +lean::inc(x_265); +lean::dec(x_262); +x_68 = x_263; +x_69 = x_265; +goto lbl_70; } } } diff --git a/src/boot/init/lean/ir/type_check.cpp b/src/boot/init/lean/ir/type_check.cpp index 04615e4212..0ad547caf3 100644 --- a/src/boot/init/lean/ir/type_check.cpp +++ b/src/boot/init/lean/ir/type_check.cpp @@ -35,7 +35,6 @@ obj* l_lean_ir_check__ne__type___boxed(obj*, obj*, obj*, obj*); obj* l_lean_ir_set__type___boxed(obj*, obj*, obj*, obj*); obj* l_lean_ir_phi_infer__types(obj*, obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_ir_decl_check___main___spec__1(obj*, obj*, obj*); -obj* l_list_length___main___rarg(obj*); obj* l_rbnode_insert___at_lean_ir_set__type___spec__2___boxed(obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_ir_get__type___spec__1(obj*, obj*); obj* l_lean_ir_check__arg__types___main(obj*, obj*, obj*, obj*); @@ -112,6 +111,7 @@ extern obj* l_lean_ir_phi_decorate__error___rarg___lambda__1___closed__1; obj* l_lean_ir_phi_check(obj*, obj*, obj*); obj* l_lean_to__fmt___at_lean_ir_terminator_to__format___main___spec__4(obj*); obj* l_lean_ir_is__nonfloat__arith__ty___boxed(obj*); +obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_rbmap_insert___main___at_lean_ir_set__type___spec__1___boxed(obj*, obj*, obj*); uint8 l_rbnode_get__color___main___rarg(obj*); obj* l_rbnode_find___main___at_lean_ir_get__type___spec__2(obj*); @@ -5125,44 +5125,46 @@ goto lbl_4; } else { -obj* x_257; obj* x_260; obj* x_261; obj* x_262; obj* x_266; uint8 x_267; +obj* x_257; obj* x_260; obj* x_262; obj* x_263; obj* x_264; obj* x_268; uint8 x_269; lean::dec(x_241); x_257 = lean::cnstr_get(x_244, 0); lean::inc(x_257); lean::dec(x_244); -x_260 = l_list_length___main___rarg(x_223); -x_261 = l_lean_ir_decl_header___main(x_257); -x_262 = lean::cnstr_get(x_261, 1); -lean::inc(x_262); -lean::dec(x_261); -lean::inc(x_262); -x_266 = l_list_length___main___rarg(x_262); -x_267 = lean::nat_dec_le(x_260, x_266); -lean::dec(x_266); -lean::dec(x_260); -if (x_267 == 0) -{ -obj* x_272; obj* x_274; -lean::dec(x_1); +x_260 = lean::mk_nat_obj(0u); +lean::inc(x_260); +x_262 = l_list_length__aux___main___rarg(x_223, x_260); +x_263 = l_lean_ir_decl_header___main(x_257); +x_264 = lean::cnstr_get(x_263, 1); +lean::inc(x_264); +lean::dec(x_263); +lean::inc(x_264); +x_268 = l_list_length__aux___main___rarg(x_264, x_260); +x_269 = lean::nat_dec_le(x_262, x_268); +lean::dec(x_268); lean::dec(x_262); -x_272 = l_lean_ir_instr_check___closed__4; -lean::inc(x_272); +if (x_269 == 0) +{ +obj* x_274; obj* x_276; +lean::dec(x_1); +lean::dec(x_264); +x_274 = l_lean_ir_instr_check___closed__4; +lean::inc(x_274); if (lean::is_scalar(x_232)) { - x_274 = lean::alloc_cnstr(0, 2, 0); + x_276 = lean::alloc_cnstr(0, 2, 0); } else { - x_274 = x_232; + x_276 = x_232; } -lean::cnstr_set(x_274, 0, x_272); -lean::cnstr_set(x_274, 1, x_246); -x_3 = x_274; +lean::cnstr_set(x_276, 0, x_274); +lean::cnstr_set(x_276, 1, x_246); +x_3 = x_276; goto lbl_4; } else { -obj* x_276; +obj* x_278; lean::dec(x_232); -x_276 = l_list_mmap_x_27___main___at_lean_ir_instr_check___spec__2(x_262, x_1, x_246); -x_3 = x_276; +x_278 = l_list_mmap_x_27___main___at_lean_ir_instr_check___spec__2(x_264, x_1, x_246); +x_3 = x_278; goto lbl_4; } } @@ -5170,295 +5172,295 @@ goto lbl_4; } case 12: { -obj* x_277; obj* x_279; -x_277 = lean::cnstr_get(x_0, 1); -lean::inc(x_277); -x_279 = l_list_mmap_x_27___main___at_lean_ir_instr_check___spec__3(x_277, x_1, x_2); -x_3 = x_279; +obj* x_279; obj* x_281; +x_279 = lean::cnstr_get(x_0, 1); +lean::inc(x_279); +x_281 = l_list_mmap_x_27___main___at_lean_ir_instr_check___spec__3(x_279, x_1, x_2); +x_3 = x_281; goto lbl_4; } case 13: { -obj* x_280; obj* x_282; uint8 x_284; obj* x_286; obj* x_287; obj* x_289; obj* x_291; -x_280 = lean::cnstr_get(x_0, 1); -lean::inc(x_280); -x_282 = lean::cnstr_get(x_0, 2); +obj* x_282; obj* x_284; uint8 x_286; obj* x_288; obj* x_289; obj* x_291; obj* x_293; +x_282 = lean::cnstr_get(x_0, 1); lean::inc(x_282); -x_284 = 5; +x_284 = lean::cnstr_get(x_0, 2); +lean::inc(x_284); +x_286 = 5; lean::inc(x_1); -x_286 = l_lean_ir_check__type(x_280, x_284, x_1, x_2); -x_287 = lean::cnstr_get(x_286, 0); -lean::inc(x_287); -x_289 = lean::cnstr_get(x_286, 1); +x_288 = l_lean_ir_check__type(x_282, x_286, x_1, x_2); +x_289 = lean::cnstr_get(x_288, 0); lean::inc(x_289); -if (lean::is_shared(x_286)) { - lean::dec(x_286); - x_291 = lean::box(0); +x_291 = lean::cnstr_get(x_288, 1); +lean::inc(x_291); +if (lean::is_shared(x_288)) { + lean::dec(x_288); + x_293 = lean::box(0); } else { - lean::cnstr_release(x_286, 0); - lean::cnstr_release(x_286, 1); - x_291 = x_286; + lean::cnstr_release(x_288, 0); + lean::cnstr_release(x_288, 1); + x_293 = x_288; } -if (lean::obj_tag(x_287) == 0) +if (lean::obj_tag(x_289) == 0) { -obj* x_294; obj* x_296; obj* x_297; obj* x_298; -lean::dec(x_282); +obj* x_296; obj* x_298; obj* x_299; obj* x_300; +lean::dec(x_284); lean::dec(x_1); -x_294 = lean::cnstr_get(x_287, 0); -lean::inc(x_294); -if (lean::is_shared(x_287)) { - lean::dec(x_287); - x_296 = lean::box(0); +x_296 = lean::cnstr_get(x_289, 0); +lean::inc(x_296); +if (lean::is_shared(x_289)) { + lean::dec(x_289); + x_298 = lean::box(0); } else { - lean::cnstr_release(x_287, 0); - x_296 = x_287; + lean::cnstr_release(x_289, 0); + x_298 = x_289; } -if (lean::is_scalar(x_296)) { - x_297 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_298)) { + x_299 = lean::alloc_cnstr(0, 1, 0); } else { - x_297 = x_296; + x_299 = x_298; } -lean::cnstr_set(x_297, 0, x_294); -if (lean::is_scalar(x_291)) { - x_298 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_299, 0, x_296); +if (lean::is_scalar(x_293)) { + x_300 = lean::alloc_cnstr(0, 2, 0); } else { - x_298 = x_291; + x_300 = x_293; } -lean::cnstr_set(x_298, 0, x_297); -lean::cnstr_set(x_298, 1, x_289); -x_3 = x_298; +lean::cnstr_set(x_300, 0, x_299); +lean::cnstr_set(x_300, 1, x_291); +x_3 = x_300; goto lbl_4; } else { -obj* x_301; -lean::dec(x_287); -lean::dec(x_291); -x_301 = l_lean_ir_check__type(x_282, x_284, x_1, x_289); -x_3 = x_301; +obj* x_303; +lean::dec(x_293); +lean::dec(x_289); +x_303 = l_lean_ir_check__type(x_284, x_286, x_1, x_291); +x_3 = x_303; goto lbl_4; } } case 14: { -uint8 x_302; obj* x_303; obj* x_305; obj* x_307; obj* x_308; uint8 x_309; -x_302 = lean::cnstr_get_scalar(x_0, sizeof(void*)*3); -x_303 = lean::cnstr_get(x_0, 1); -lean::inc(x_303); -x_305 = lean::cnstr_get(x_0, 2); +uint8 x_304; obj* x_305; obj* x_307; obj* x_309; obj* x_310; uint8 x_311; +x_304 = lean::cnstr_get_scalar(x_0, sizeof(void*)*3); +x_305 = lean::cnstr_get(x_0, 1); lean::inc(x_305); -x_307 = l_lean_ir_type2id___main(x_302); -x_308 = l_lean_ir_valid__assign__unop__types___closed__1; -x_309 = lean::nat_dec_eq(x_307, x_308); -lean::dec(x_307); -if (x_309 == 0) +x_307 = lean::cnstr_get(x_0, 2); +lean::inc(x_307); +x_309 = l_lean_ir_type2id___main(x_304); +x_310 = l_lean_ir_valid__assign__unop__types___closed__1; +x_311 = lean::nat_dec_eq(x_309, x_310); +lean::dec(x_309); +if (x_311 == 0) { -uint8 x_311; obj* x_313; obj* x_314; obj* x_316; obj* x_318; -x_311 = 5; +uint8 x_313; obj* x_315; obj* x_316; obj* x_318; obj* x_320; +x_313 = 5; lean::inc(x_1); -x_313 = l_lean_ir_check__type(x_303, x_311, x_1, x_2); -x_314 = lean::cnstr_get(x_313, 0); -lean::inc(x_314); -x_316 = lean::cnstr_get(x_313, 1); +x_315 = l_lean_ir_check__type(x_305, x_313, x_1, x_2); +x_316 = lean::cnstr_get(x_315, 0); lean::inc(x_316); -if (lean::is_shared(x_313)) { - lean::dec(x_313); - x_318 = lean::box(0); +x_318 = lean::cnstr_get(x_315, 1); +lean::inc(x_318); +if (lean::is_shared(x_315)) { + lean::dec(x_315); + x_320 = lean::box(0); } else { - lean::cnstr_release(x_313, 0); - lean::cnstr_release(x_313, 1); - x_318 = x_313; + lean::cnstr_release(x_315, 0); + lean::cnstr_release(x_315, 1); + x_320 = x_315; } -if (lean::obj_tag(x_314) == 0) +if (lean::obj_tag(x_316) == 0) { -obj* x_321; obj* x_323; obj* x_324; obj* x_325; -lean::dec(x_305); +obj* x_323; obj* x_325; obj* x_326; obj* x_327; lean::dec(x_1); -x_321 = lean::cnstr_get(x_314, 0); -lean::inc(x_321); -if (lean::is_shared(x_314)) { - lean::dec(x_314); - x_323 = lean::box(0); +lean::dec(x_307); +x_323 = lean::cnstr_get(x_316, 0); +lean::inc(x_323); +if (lean::is_shared(x_316)) { + lean::dec(x_316); + x_325 = lean::box(0); } else { - lean::cnstr_release(x_314, 0); - x_323 = x_314; + lean::cnstr_release(x_316, 0); + x_325 = x_316; } -if (lean::is_scalar(x_323)) { - x_324 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_325)) { + x_326 = lean::alloc_cnstr(0, 1, 0); } else { - x_324 = x_323; + x_326 = x_325; } -lean::cnstr_set(x_324, 0, x_321); -if (lean::is_scalar(x_318)) { - x_325 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_326, 0, x_323); +if (lean::is_scalar(x_320)) { + x_327 = lean::alloc_cnstr(0, 2, 0); } else { - x_325 = x_318; + x_327 = x_320; } -lean::cnstr_set(x_325, 0, x_324); -lean::cnstr_set(x_325, 1, x_316); -x_3 = x_325; +lean::cnstr_set(x_327, 0, x_326); +lean::cnstr_set(x_327, 1, x_318); +x_3 = x_327; goto lbl_4; } else { -obj* x_326; obj* x_327; obj* x_328; obj* x_330; -if (lean::is_shared(x_314)) { - lean::dec(x_314); - x_326 = lean::box(0); +obj* x_328; obj* x_329; obj* x_330; obj* x_332; +if (lean::is_shared(x_316)) { + lean::dec(x_316); + x_328 = lean::box(0); } else { - lean::cnstr_release(x_314, 0); - x_326 = x_314; + lean::cnstr_release(x_316, 0); + x_328 = x_316; } -x_327 = l_lean_ir_check__type(x_305, x_311, x_1, x_316); -x_328 = lean::cnstr_get(x_327, 0); -lean::inc(x_328); -x_330 = lean::cnstr_get(x_327, 1); +x_329 = l_lean_ir_check__type(x_307, x_313, x_1, x_318); +x_330 = lean::cnstr_get(x_329, 0); lean::inc(x_330); -lean::dec(x_327); -if (lean::obj_tag(x_328) == 0) +x_332 = lean::cnstr_get(x_329, 1); +lean::inc(x_332); +lean::dec(x_329); +if (lean::obj_tag(x_330) == 0) { -obj* x_333; obj* x_336; obj* x_337; -x_333 = lean::cnstr_get(x_328, 0); -lean::inc(x_333); -lean::dec(x_328); -if (lean::is_scalar(x_326)) { - x_336 = lean::alloc_cnstr(0, 1, 0); +obj* x_335; obj* x_338; obj* x_339; +x_335 = lean::cnstr_get(x_330, 0); +lean::inc(x_335); +lean::dec(x_330); +if (lean::is_scalar(x_328)) { + x_338 = lean::alloc_cnstr(0, 1, 0); } else { - x_336 = x_326; - lean::cnstr_set_tag(x_326, 0); + x_338 = x_328; + lean::cnstr_set_tag(x_328, 0); } -lean::cnstr_set(x_336, 0, x_333); -if (lean::is_scalar(x_318)) { - x_337 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_338, 0, x_335); +if (lean::is_scalar(x_320)) { + x_339 = lean::alloc_cnstr(0, 2, 0); } else { - x_337 = x_318; + x_339 = x_320; } -lean::cnstr_set(x_337, 0, x_336); -lean::cnstr_set(x_337, 1, x_330); -x_3 = x_337; +lean::cnstr_set(x_339, 0, x_338); +lean::cnstr_set(x_339, 1, x_332); +x_3 = x_339; goto lbl_4; } else { -obj* x_340; obj* x_342; -lean::dec(x_326); +obj* x_342; obj* x_344; lean::dec(x_328); -x_340 = l_lean_ir_match__type___closed__5; -lean::inc(x_340); -if (lean::is_scalar(x_318)) { - x_342 = lean::alloc_cnstr(0, 2, 0); +lean::dec(x_330); +x_342 = l_lean_ir_match__type___closed__5; +lean::inc(x_342); +if (lean::is_scalar(x_320)) { + x_344 = lean::alloc_cnstr(0, 2, 0); } else { - x_342 = x_318; + x_344 = x_320; } -lean::cnstr_set(x_342, 0, x_340); -lean::cnstr_set(x_342, 1, x_330); -x_3 = x_342; +lean::cnstr_set(x_344, 0, x_342); +lean::cnstr_set(x_344, 1, x_332); +x_3 = x_344; goto lbl_4; } } } else { -uint8 x_343; obj* x_345; obj* x_346; obj* x_348; obj* x_350; -x_343 = 5; +uint8 x_345; obj* x_347; obj* x_348; obj* x_350; obj* x_352; +x_345 = 5; lean::inc(x_1); -x_345 = l_lean_ir_check__type(x_303, x_343, x_1, x_2); -x_346 = lean::cnstr_get(x_345, 0); -lean::inc(x_346); -x_348 = lean::cnstr_get(x_345, 1); +x_347 = l_lean_ir_check__type(x_305, x_345, x_1, x_2); +x_348 = lean::cnstr_get(x_347, 0); lean::inc(x_348); -if (lean::is_shared(x_345)) { - lean::dec(x_345); - x_350 = lean::box(0); +x_350 = lean::cnstr_get(x_347, 1); +lean::inc(x_350); +if (lean::is_shared(x_347)) { + lean::dec(x_347); + x_352 = lean::box(0); } else { - lean::cnstr_release(x_345, 0); - lean::cnstr_release(x_345, 1); - x_350 = x_345; + lean::cnstr_release(x_347, 0); + lean::cnstr_release(x_347, 1); + x_352 = x_347; } -if (lean::obj_tag(x_346) == 0) +if (lean::obj_tag(x_348) == 0) { -obj* x_353; obj* x_355; obj* x_356; obj* x_357; -lean::dec(x_305); +obj* x_355; obj* x_357; obj* x_358; obj* x_359; lean::dec(x_1); -x_353 = lean::cnstr_get(x_346, 0); -lean::inc(x_353); -if (lean::is_shared(x_346)) { - lean::dec(x_346); - x_355 = lean::box(0); +lean::dec(x_307); +x_355 = lean::cnstr_get(x_348, 0); +lean::inc(x_355); +if (lean::is_shared(x_348)) { + lean::dec(x_348); + x_357 = lean::box(0); } else { - lean::cnstr_release(x_346, 0); - x_355 = x_346; + lean::cnstr_release(x_348, 0); + x_357 = x_348; } -if (lean::is_scalar(x_355)) { - x_356 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_357)) { + x_358 = lean::alloc_cnstr(0, 1, 0); } else { - x_356 = x_355; + x_358 = x_357; } -lean::cnstr_set(x_356, 0, x_353); -if (lean::is_scalar(x_350)) { - x_357 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_358, 0, x_355); +if (lean::is_scalar(x_352)) { + x_359 = lean::alloc_cnstr(0, 2, 0); } else { - x_357 = x_350; + x_359 = x_352; } -lean::cnstr_set(x_357, 0, x_356); -lean::cnstr_set(x_357, 1, x_348); -x_3 = x_357; +lean::cnstr_set(x_359, 0, x_358); +lean::cnstr_set(x_359, 1, x_350); +x_3 = x_359; goto lbl_4; } else { -obj* x_358; obj* x_359; obj* x_360; obj* x_362; -if (lean::is_shared(x_346)) { - lean::dec(x_346); - x_358 = lean::box(0); +obj* x_360; obj* x_361; obj* x_362; obj* x_364; +if (lean::is_shared(x_348)) { + lean::dec(x_348); + x_360 = lean::box(0); } else { - lean::cnstr_release(x_346, 0); - x_358 = x_346; + lean::cnstr_release(x_348, 0); + x_360 = x_348; } -x_359 = l_lean_ir_check__type(x_305, x_343, x_1, x_348); -x_360 = lean::cnstr_get(x_359, 0); -lean::inc(x_360); -x_362 = lean::cnstr_get(x_359, 1); +x_361 = l_lean_ir_check__type(x_307, x_345, x_1, x_350); +x_362 = lean::cnstr_get(x_361, 0); lean::inc(x_362); -lean::dec(x_359); -if (lean::obj_tag(x_360) == 0) +x_364 = lean::cnstr_get(x_361, 1); +lean::inc(x_364); +lean::dec(x_361); +if (lean::obj_tag(x_362) == 0) { -obj* x_365; obj* x_368; obj* x_369; -x_365 = lean::cnstr_get(x_360, 0); -lean::inc(x_365); -lean::dec(x_360); -if (lean::is_scalar(x_358)) { - x_368 = lean::alloc_cnstr(0, 1, 0); +obj* x_367; obj* x_370; obj* x_371; +x_367 = lean::cnstr_get(x_362, 0); +lean::inc(x_367); +lean::dec(x_362); +if (lean::is_scalar(x_360)) { + x_370 = lean::alloc_cnstr(0, 1, 0); } else { - x_368 = x_358; - lean::cnstr_set_tag(x_358, 0); + x_370 = x_360; + lean::cnstr_set_tag(x_360, 0); } -lean::cnstr_set(x_368, 0, x_365); -if (lean::is_scalar(x_350)) { - x_369 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_370, 0, x_367); +if (lean::is_scalar(x_352)) { + x_371 = lean::alloc_cnstr(0, 2, 0); } else { - x_369 = x_350; + x_371 = x_352; } -lean::cnstr_set(x_369, 0, x_368); -lean::cnstr_set(x_369, 1, x_362); -x_3 = x_369; +lean::cnstr_set(x_371, 0, x_370); +lean::cnstr_set(x_371, 1, x_364); +x_3 = x_371; goto lbl_4; } else { -obj* x_372; obj* x_374; +obj* x_374; obj* x_376; +lean::dec(x_362); lean::dec(x_360); -lean::dec(x_358); -x_372 = l_lean_ir_instr_check___closed__5; -lean::inc(x_372); -if (lean::is_scalar(x_350)) { - x_374 = lean::alloc_cnstr(0, 2, 0); +x_374 = l_lean_ir_instr_check___closed__5; +lean::inc(x_374); +if (lean::is_scalar(x_352)) { + x_376 = lean::alloc_cnstr(0, 2, 0); } else { - x_374 = x_350; + x_376 = x_352; } -lean::cnstr_set(x_374, 0, x_372); -lean::cnstr_set(x_374, 1, x_362); -x_3 = x_374; +lean::cnstr_set(x_376, 0, x_374); +lean::cnstr_set(x_376, 1, x_364); +x_3 = x_376; goto lbl_4; } } @@ -5466,149 +5468,149 @@ goto lbl_4; } default: { -obj* x_375; obj* x_377; uint8 x_379; obj* x_381; obj* x_382; obj* x_384; obj* x_386; -x_375 = lean::cnstr_get(x_0, 0); -lean::inc(x_375); -x_377 = lean::cnstr_get(x_0, 1); +obj* x_377; obj* x_379; uint8 x_381; obj* x_383; obj* x_384; obj* x_386; obj* x_388; +x_377 = lean::cnstr_get(x_0, 0); lean::inc(x_377); -x_379 = 11; +x_379 = lean::cnstr_get(x_0, 1); +lean::inc(x_379); +x_381 = 11; lean::inc(x_1); -x_381 = l_lean_ir_check__type(x_375, x_379, x_1, x_2); -x_382 = lean::cnstr_get(x_381, 0); -lean::inc(x_382); -x_384 = lean::cnstr_get(x_381, 1); +x_383 = l_lean_ir_check__type(x_377, x_381, x_1, x_2); +x_384 = lean::cnstr_get(x_383, 0); lean::inc(x_384); -if (lean::is_shared(x_381)) { - lean::dec(x_381); - x_386 = lean::box(0); +x_386 = lean::cnstr_get(x_383, 1); +lean::inc(x_386); +if (lean::is_shared(x_383)) { + lean::dec(x_383); + x_388 = lean::box(0); } else { - lean::cnstr_release(x_381, 0); - lean::cnstr_release(x_381, 1); - x_386 = x_381; + lean::cnstr_release(x_383, 0); + lean::cnstr_release(x_383, 1); + x_388 = x_383; } -if (lean::obj_tag(x_382) == 0) +if (lean::obj_tag(x_384) == 0) { -obj* x_389; obj* x_391; obj* x_392; obj* x_393; +obj* x_391; obj* x_393; obj* x_394; obj* x_395; lean::dec(x_1); -lean::dec(x_377); -x_389 = lean::cnstr_get(x_382, 0); -lean::inc(x_389); -if (lean::is_shared(x_382)) { - lean::dec(x_382); - x_391 = lean::box(0); +lean::dec(x_379); +x_391 = lean::cnstr_get(x_384, 0); +lean::inc(x_391); +if (lean::is_shared(x_384)) { + lean::dec(x_384); + x_393 = lean::box(0); } else { - lean::cnstr_release(x_382, 0); - x_391 = x_382; + lean::cnstr_release(x_384, 0); + x_393 = x_384; } -if (lean::is_scalar(x_391)) { - x_392 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_393)) { + x_394 = lean::alloc_cnstr(0, 1, 0); } else { - x_392 = x_391; + x_394 = x_393; } -lean::cnstr_set(x_392, 0, x_389); -if (lean::is_scalar(x_386)) { - x_393 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_394, 0, x_391); +if (lean::is_scalar(x_388)) { + x_395 = lean::alloc_cnstr(0, 2, 0); } else { - x_393 = x_386; + x_395 = x_388; } -lean::cnstr_set(x_393, 0, x_392); -lean::cnstr_set(x_393, 1, x_384); -x_3 = x_393; +lean::cnstr_set(x_395, 0, x_394); +lean::cnstr_set(x_395, 1, x_386); +x_3 = x_395; goto lbl_4; } else { -uint8 x_396; obj* x_397; -lean::dec(x_382); -lean::dec(x_386); -x_396 = 5; -x_397 = l_lean_ir_check__type(x_377, x_396, x_1, x_384); -x_3 = x_397; +uint8 x_398; obj* x_399; +lean::dec(x_384); +lean::dec(x_388); +x_398 = 5; +x_399 = l_lean_ir_check__type(x_379, x_398, x_1, x_386); +x_3 = x_399; goto lbl_4; } } } lbl_4: { -obj* x_398; obj* x_400; obj* x_402; -x_398 = lean::cnstr_get(x_3, 0); -lean::inc(x_398); -x_400 = lean::cnstr_get(x_3, 1); +obj* x_400; obj* x_402; obj* x_404; +x_400 = lean::cnstr_get(x_3, 0); lean::inc(x_400); +x_402 = lean::cnstr_get(x_3, 1); +lean::inc(x_402); if (lean::is_shared(x_3)) { lean::dec(x_3); - x_402 = lean::box(0); + x_404 = lean::box(0); } else { lean::cnstr_release(x_3, 0); lean::cnstr_release(x_3, 1); - x_402 = x_3; + x_404 = x_3; } -if (lean::obj_tag(x_398) == 0) +if (lean::obj_tag(x_400) == 0) { -obj* x_403; obj* x_405; obj* x_406; uint8 x_407; obj* x_408; obj* x_410; obj* x_411; obj* x_412; obj* x_414; obj* x_415; obj* x_416; obj* x_417; obj* x_418; obj* x_419; obj* x_420; obj* x_421; obj* x_422; -x_403 = lean::cnstr_get(x_398, 0); -lean::inc(x_403); -if (lean::is_shared(x_398)) { - lean::dec(x_398); - x_405 = lean::box(0); +obj* x_405; obj* x_407; obj* x_408; uint8 x_409; obj* x_410; obj* x_412; obj* x_413; obj* x_414; obj* x_416; obj* x_417; obj* x_418; obj* x_419; obj* x_420; obj* x_421; obj* x_422; obj* x_423; obj* x_424; +x_405 = lean::cnstr_get(x_400, 0); +lean::inc(x_405); +if (lean::is_shared(x_400)) { + lean::dec(x_400); + x_407 = lean::box(0); } else { - lean::cnstr_release(x_398, 0); - x_405 = x_398; + lean::cnstr_release(x_400, 0); + x_407 = x_400; } -x_406 = l_lean_ir_instr_to__format___main(x_0); -x_407 = 0; -x_408 = l_lean_ir_instr_decorate__error___rarg___lambda__1___closed__1; -lean::inc(x_408); -x_410 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_410, 0, x_408); -lean::cnstr_set(x_410, 1, x_406); -lean::cnstr_set_scalar(x_410, sizeof(void*)*2, x_407); -x_411 = x_410; -x_412 = l_lean_ir_phi_decorate__error___rarg___lambda__1___closed__2; -lean::inc(x_412); -x_414 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_414, 0, x_411); -lean::cnstr_set(x_414, 1, x_412); -lean::cnstr_set_scalar(x_414, sizeof(void*)*2, x_407); -x_415 = x_414; -x_416 = lean::box(1); -x_417 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_417, 0, x_415); -lean::cnstr_set(x_417, 1, x_416); -lean::cnstr_set_scalar(x_417, sizeof(void*)*2, x_407); -x_418 = x_417; +x_408 = l_lean_ir_instr_to__format___main(x_0); +x_409 = 0; +x_410 = l_lean_ir_instr_decorate__error___rarg___lambda__1___closed__1; +lean::inc(x_410); +x_412 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_412, 0, x_410); +lean::cnstr_set(x_412, 1, x_408); +lean::cnstr_set_scalar(x_412, sizeof(void*)*2, x_409); +x_413 = x_412; +x_414 = l_lean_ir_phi_decorate__error___rarg___lambda__1___closed__2; +lean::inc(x_414); +x_416 = lean::alloc_cnstr(4, 2, 1); +lean::cnstr_set(x_416, 0, x_413); +lean::cnstr_set(x_416, 1, x_414); +lean::cnstr_set_scalar(x_416, sizeof(void*)*2, x_409); +x_417 = x_416; +x_418 = lean::box(1); x_419 = lean::alloc_cnstr(4, 2, 1); -lean::cnstr_set(x_419, 0, x_418); -lean::cnstr_set(x_419, 1, x_403); -lean::cnstr_set_scalar(x_419, sizeof(void*)*2, x_407); +lean::cnstr_set(x_419, 0, x_417); +lean::cnstr_set(x_419, 1, x_418); +lean::cnstr_set_scalar(x_419, sizeof(void*)*2, x_409); x_420 = x_419; -if (lean::is_scalar(x_405)) { - x_421 = lean::alloc_cnstr(0, 1, 0); -} else { - x_421 = x_405; -} +x_421 = lean::alloc_cnstr(4, 2, 1); lean::cnstr_set(x_421, 0, x_420); -if (lean::is_scalar(x_402)) { - x_422 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_421, 1, x_405); +lean::cnstr_set_scalar(x_421, sizeof(void*)*2, x_409); +x_422 = x_421; +if (lean::is_scalar(x_407)) { + x_423 = lean::alloc_cnstr(0, 1, 0); } else { - x_422 = x_402; + x_423 = x_407; } -lean::cnstr_set(x_422, 0, x_421); -lean::cnstr_set(x_422, 1, x_400); -return x_422; +lean::cnstr_set(x_423, 0, x_422); +if (lean::is_scalar(x_404)) { + x_424 = lean::alloc_cnstr(0, 2, 0); +} else { + x_424 = x_404; +} +lean::cnstr_set(x_424, 0, x_423); +lean::cnstr_set(x_424, 1, x_402); +return x_424; } else { -obj* x_424; +obj* x_426; lean::dec(x_0); -if (lean::is_scalar(x_402)) { - x_424 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_404)) { + x_426 = lean::alloc_cnstr(0, 2, 0); } else { - x_424 = x_402; + x_426 = x_404; } -lean::cnstr_set(x_424, 0, x_398); -lean::cnstr_set(x_424, 1, x_400); -return x_424; +lean::cnstr_set(x_426, 0, x_400); +lean::cnstr_set(x_426, 1, x_402); +return x_426; } } } diff --git a/src/boot/init/version.cpp b/src/boot/init/version.cpp index 05b50168e7..aef5070b7e 100644 --- a/src/boot/init/version.cpp +++ b/src/boot/init/version.cpp @@ -41,7 +41,7 @@ obj* _init_l_lean_githash() { _start: { obj* x_0; -x_0 = lean::mk_string("a4f305a4437b8cc8596570cce794622105dad149"); +x_0 = lean::mk_string("2d55c3f73cf26b483826a13606eda8621334f246"); return x_0; } }