diff --git a/src/boot/init/io.cpp b/src/boot/init/io.cpp index 82a2fcd096..624b70f871 100644 --- a/src/boot/init/io.cpp +++ b/src/boot/init/io.cpp @@ -1,6 +1,6 @@ // Lean compiler output // Module: init.io -// Imports: init.control.state init.control.except init.data.string.basic +// Imports: init.control.state init.control.except init.data.string.basic init.fix #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; @@ -14,22 +14,26 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #pragma GCC diagnostic ignored "-Wunused-label" #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif -obj* l_io_prim_iterate___main___boxed(obj*, obj*); -obj* l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4___boxed(obj*, obj*, obj*); +obj* l_io_prim_iterate__aux___main___boxed(obj*, obj*); +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1(obj*, obj*, obj*, obj*); obj* l_io_fs_handle_mk___rarg(obj*, obj*, obj*, obj*, obj*, uint8, uint8); obj* l_io_fs_handle_is__eof___at_io_fs_handle_read__to__end___spec__1(obj*, obj*); obj* l_io_println___at_io_println_x_27___spec__1(obj*, obj*); +obj* l_io_prim_iterate__aux___boxed(obj*, obj*); obj* l_from__eio(obj*, obj*); obj* l_io_print___boxed(obj*, obj*); +obj* l_io_prim_iterate__aux___rarg(obj*, obj*, obj*, obj*); obj* l_id___boxed(obj*); obj* l_io_fs_handle_read__to__end___boxed(obj*, obj*); obj* l_io_prim_lift__eio___rarg___lambda__1(obj*, obj*, obj*, obj*); obj* l_string_has__to__string___boxed(obj*); extern "C" obj* lean_io_prim_handle_mk(obj*, uint8, uint8, obj*); obj* l_io_prim_handle_get__line___boxed(obj*, obj*); +obj* l_io_prim_io__inhabited(obj*); obj* l_io_fs_handle_flush___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_io_has__eval___boxed(obj*); extern obj* l_string_iterator_extract___main___closed__1; +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_io_prim_handle_flush___boxed(obj*, obj*); obj* l_io_fs_handle_is__eof___rarg___lambda__1(obj*, obj*, obj*, obj*); obj* l_io_has__eval(obj*); @@ -40,19 +44,18 @@ obj* l_io_fs_handle_get__line___at_io_fs_handle_read__to__end___spec__2___boxed( obj* l_io_has__eval___rarg(obj*, obj*, obj*); obj* l_eio__unit_has__eval___boxed(obj*); extern "C" obj* lean_io_prim_put_str(obj*, obj*); -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___rarg(obj*, obj*, obj*); obj* l_io_fs_handle_flush(obj*, obj*); obj* l_io_prim_lift__eio___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_io_prim_iterate___main(obj*, obj*); obj* l_io_prim_get__line___boxed(obj*); obj* l_io_prim_handle_is__eof___boxed(obj*, obj*); +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg(obj*, obj*, obj*); obj* l_io_prim_handle_mk___boxed(obj*, obj*, obj*, obj*); obj* l_io_fs_read__file___rarg(obj*, obj*, obj*, obj*, obj*, uint8); obj* l_io_prim_lift__eio(obj*, obj*, obj*); +obj* l_io_prim_io__inhabited___boxed(obj*); obj* l___private_init_io_12__put__str___at_io_println___spec__1(obj*, obj*); obj* l___private_init_io_12__put__str___at_io_println_x_27___spec__3(obj*, obj*); obj* l_io_fs_handle_mk___boxed(obj*, obj*); -obj* l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3___boxed(obj*, obj*); obj* l_io_fs_handle_is__eof___at_io_fs_handle_read__to__end___spec__1___boxed(obj*, obj*); obj* l___private_init_io_12__put__str(obj*, obj*); obj* l_io_println_x_27___boxed(obj*, obj*); @@ -70,34 +73,37 @@ obj* l_io_print___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l___private_init_io_12__put__str___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_io_fs_read__file___boxed(obj*, obj*); obj* l_io_fs_handle_is__eof___boxed(obj*, obj*); -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1(obj*, obj*, obj*); obj* l_io_fs_read__file___rarg___lambda__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_io_fs_handle_read__to__end(obj*, obj*); obj* l_io_prim_put__str___boxed(obj*, obj*); -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___boxed(obj*, obj*, obj*); obj* l___private_init_io_12__put__str___boxed(obj*, obj*); +obj* l_io_prim_iterate__eio___rarg___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_io_12__put__str___at_io_println___spec__1___boxed(obj*, obj*); obj* l_io_prim_iterate__eio___boxed(obj*, obj*, obj*); obj* l_io_error_has__to__string; +obj* l_io_prim_io__inhabited___rarg(obj*); obj* l_io_fs_read__file___rarg___lambda__3(obj*, obj*, obj*, obj*, obj*, obj*); extern "C" obj* lean_io_prim_handle_close(obj*, obj*); obj* l_io_lazy__pure___boxed(obj*); +obj* l_io_prim_inhabited(obj*, obj*); obj* l_io_fs_handle_mk___at_io_fs_read__file___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4(obj*, obj*, obj*); obj* l_io_println___boxed(obj*, obj*); obj* l_io_fs_handle_mk___at_io_fs_read__file___spec__1(obj*, obj*); -obj* l_io_prim_iterate(obj*, obj*); -obj* l_io_prim_iterate___boxed(obj*, obj*); -obj* l_io_prim_iterate__eio___rarg(obj*, obj*, obj*); +obj* l_io_prim_iterate(obj*, obj*, obj*); +obj* l_io_prim_iterate___boxed(obj*, obj*, obj*); +obj* l_io_prim_iterate__eio___rarg(obj*, obj*, obj*, obj*); obj* l_has__repr_has__eval(obj*); obj* l_io_println___rarg___closed__1; obj* l_io_print(obj*, obj*); obj* l_io_fs_handle_is__eof(obj*, obj*); +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg___lambda__1(obj*, obj*, obj*); +obj* l_io_prim_inhabited___rarg(obj*); obj* l_io_fs_handle_close___rarg(obj*, obj*, obj*, obj*, obj*); extern "C" obj* lean_io_prim_handle_flush(obj*, obj*); obj* l_io_fs_read__file___rarg___lambda__1(obj*, obj*, obj*); obj* l_io_monad; obj* l_io_println___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1___rarg(obj*, obj*); obj* l_id_monad___lambda__1___boxed(obj*, obj*, obj*, obj*); obj* l_state__t_monad___rarg(obj*); obj* l_eio__unit_has__eval(obj*); @@ -105,13 +111,16 @@ obj* l_has__repr_has__eval___boxed(obj*); obj* l_eio_has__eval___rarg(obj*, obj*, obj*, obj*); extern "C" obj* lean_io_prim_get_line(obj*); obj* l_string_has__lift___boxed(obj*); +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1(obj*, obj*, obj*); obj* l_io_fs_handle_get__line___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_eio__unit_has__eval___rarg(obj*, obj*, obj*); +obj* l_io_prim_iterate__aux(obj*, obj*); extern "C" obj* lean_io_unsafe(obj*, obj*); obj* l_io_fs_read__file(obj*, obj*); obj* l___private_init_io_12__put__str___at_io_println___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_io_prim_lift__eio___boxed(obj*, obj*, obj*); obj* l_io_fs_handle_flush___boxed(obj*, obj*); +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1(obj*); extern "C" obj* lean_io_prim_handle_get_line(obj*, obj*); obj* l_unsafe__io___boxed(obj*, obj*); obj* l_io_lazy__pure(obj*); @@ -119,9 +128,13 @@ obj* l_io_fs_handle_mk(obj*, obj*); obj* l_io_fs_read__file___rarg___lambda__1___boxed(obj*, obj*, obj*); obj* l_io_println_x_27(obj*, obj*); obj* l_io_lazy__pure___rarg(obj*, obj*); +obj* l_io_error_inhabited; obj* l_io_fs_handle_read__to__end___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_io_prim_handle_close___boxed(obj*, obj*); +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4(obj*, obj*); obj* l_id_bind___boxed(obj*, obj*); +obj* l_io_prim_iterate__aux___main___rarg(obj*, obj*, obj*, obj*); +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1___boxed(obj*, obj*, obj*); obj* l_io_println(obj*, obj*); obj* l_io_print___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_timeit___boxed(obj*, obj*, obj*, obj*); @@ -129,9 +142,11 @@ obj* l_io_print___at_io_println_x_27___spec__2(obj*, obj*); obj* l_io_fs_handle_mk___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern "C" obj* lean_io_timeit(obj*, obj*, obj*, obj*); obj* l_io_fs_handle_mk___at_io_fs_read__file___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, uint8, uint8); +obj* l_io_prim_inhabited___boxed(obj*, obj*); obj* l_io_fs_handle_close(obj*, obj*); obj* l_io_println___at_io_println_x_27___spec__1___boxed(obj*, obj*); obj* l_io__unit_has__eval(obj*, obj*); +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1___boxed(obj*); extern "C" obj* lean_io_prim_handle_is_eof(obj*, obj*); obj* l_eio_has__eval___boxed(obj*, obj*); obj* l_eio_has__eval___rarg___closed__1; @@ -141,9 +156,9 @@ obj* l_io_fs_handle_get__line(obj*, obj*); obj* l_io_fs_handle_mk___at_io_fs_read__file___spec__1___boxed(obj*, obj*); obj* l_id_monad___lambda__3___boxed(obj*, obj*, obj*, obj*); obj* l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3(obj*, obj*); +obj* l_io_prim_iterate__aux___main(obj*, obj*); obj* l_io_fs_read__file___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_io_prim_iterate__eio(obj*, obj*, obj*); -obj* l_io_prim_iterate___main___rarg(obj*, obj*, obj*); obj* _init_l_io_monad() { _start: { @@ -195,6 +210,14 @@ x_0 = lean::alloc_closure(reinterpret_cast(l_string_has__to__string___box return x_0; } } +obj* _init_l_io_error_inhabited() { +_start: +{ +obj* x_0; +x_0 = lean::mk_string(""); +return x_0; +} +} obj* l_string_has__lift(obj* x_0) { _start: { @@ -240,26 +263,24 @@ lean::dec(x_0); return x_1; } } -obj* l_io_prim_iterate___main___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate__aux___main___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; -lean::inc(x_1); -x_4 = lean::apply_2(x_1, x_0, x_2); +x_4 = lean::apply_2(x_0, x_2, x_3); x_5 = lean::cnstr_get(x_4, 0); lean::inc(x_5); if (lean::obj_tag(x_5) == 0) { -obj* x_7; obj* x_10; +obj* x_7; obj* x_10; obj* x_13; x_7 = lean::cnstr_get(x_4, 1); lean::inc(x_7); lean::dec(x_4); x_10 = lean::cnstr_get(x_5, 0); lean::inc(x_10); lean::dec(x_5); -x_0 = x_10; -x_2 = x_7; -goto _start; +x_13 = lean::apply_2(x_1, x_10, x_7); +return x_13; } else { @@ -288,187 +309,350 @@ return x_21; } } } -obj* l_io_prim_iterate___main(obj* x_0, obj* x_1) { +obj* l_io_prim_iterate__aux___main(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___rarg), 3, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___main___rarg), 4, 0); return x_2; } } -obj* l_io_prim_iterate___main___boxed(obj* x_0, obj* x_1) { +obj* l_io_prim_iterate__aux___main___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = l_io_prim_iterate___main(x_0, x_1); +x_2 = l_io_prim_iterate__aux___main(x_0, x_1); lean::dec(x_0); lean::dec(x_1); return x_2; } } +obj* l_io_prim_iterate__aux___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_io_prim_iterate__aux___main___rarg(x_0, x_1, x_2, x_3); +return x_4; +} +} +obj* l_io_prim_iterate__aux(obj* x_0, obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___rarg), 4, 0); +return x_2; +} +} +obj* l_io_prim_iterate__aux___boxed(obj* x_0, obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_io_prim_iterate__aux(x_0, x_1); +lean::dec(x_0); +lean::dec(x_1); +return x_2; +} +} +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1___rarg(obj* x_0, obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_2, 0, x_0); +lean::cnstr_set(x_2, 1, x_1); +return x_2; +} +} +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_state__t_pure___at_io_prim_io__inhabited___spec__1___rarg), 2, 0); +return x_1; +} +} +obj* l_io_prim_io__inhabited___rarg(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_state__t_pure___at_io_prim_io__inhabited___spec__1___rarg), 2, 1); +lean::closure_set(x_1, 0, x_0); +return x_1; +} +} +obj* l_io_prim_io__inhabited(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_io_prim_io__inhabited___rarg), 1, 0); +return x_1; +} +} +obj* l_state__t_pure___at_io_prim_io__inhabited___spec__1___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_state__t_pure___at_io_prim_io__inhabited___spec__1(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_io_prim_io__inhabited___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_io_prim_io__inhabited(x_0); +lean::dec(x_0); +return x_1; +} +} obj* l_io_prim_iterate___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { +obj* x_3; obj* x_4; +x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___rarg), 4, 1); +lean::closure_set(x_3, 0, x_1); +x_4 = lean::fixpoint2(x_3, x_0, x_2); +return x_4; +} +} +obj* l_io_prim_iterate(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ obj* x_3; -x_3 = l_io_prim_iterate___main___rarg(x_0, x_1, x_2); +x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___rarg), 3, 0); return x_3; } } -obj* l_io_prim_iterate(obj* x_0, obj* x_1) { +obj* l_io_prim_iterate___boxed(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_io_prim_iterate(x_0, x_1, x_2); +lean::dec(x_0); +lean::dec(x_1); +lean::dec(x_2); +return x_3; +} +} +obj* l_io_prim_inhabited___rarg(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_1, 0, x_0); +return x_1; +} +} +obj* l_io_prim_inhabited(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___rarg), 3, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_inhabited___rarg), 1, 0); return x_2; } } -obj* l_io_prim_iterate___boxed(obj* x_0, obj* x_1) { +obj* l_io_prim_inhabited___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = l_io_prim_iterate(x_0, x_1); +x_2 = l_io_prim_inhabited(x_0, x_1); lean::dec(x_0); lean::dec(x_1); return x_2; } } -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_4; obj* x_5; -lean::inc(x_0); -x_4 = lean::apply_2(x_0, x_1, x_2); -x_5 = lean::cnstr_get(x_4, 0); -lean::inc(x_5); -if (lean::obj_tag(x_5) == 0) +obj* x_3; obj* x_4; +x_3 = lean::apply_2(x_0, x_1, x_2); +x_4 = lean::cnstr_get(x_3, 0); +lean::inc(x_4); +if (lean::obj_tag(x_4) == 0) { -obj* x_8; obj* x_10; obj* x_11; obj* x_13; obj* x_14; obj* x_15; -lean::dec(x_0); -x_8 = lean::cnstr_get(x_4, 1); +obj* x_6; obj* x_8; obj* x_9; obj* x_11; obj* x_12; obj* x_13; obj* x_14; +x_6 = lean::cnstr_get(x_3, 1); +if (lean::is_exclusive(x_3)) { + lean::cnstr_release(x_3, 0); + x_8 = x_3; +} else { + lean::inc(x_6); + lean::dec(x_3); + x_8 = lean::box(0); +} +x_9 = lean::cnstr_get(x_4, 0); if (lean::is_exclusive(x_4)) { - lean::cnstr_release(x_4, 0); - x_10 = x_4; + x_11 = x_4; } else { - lean::inc(x_8); + lean::inc(x_9); lean::dec(x_4); - x_10 = lean::box(0); + x_11 = lean::box(0); } -x_11 = lean::cnstr_get(x_5, 0); -if (lean::is_exclusive(x_5)) { - x_13 = x_5; +if (lean::is_scalar(x_11)) { + x_12 = lean::alloc_cnstr(0, 1, 0); } else { - lean::inc(x_11); - lean::dec(x_5); - x_13 = lean::box(0); + x_12 = x_11; } -if (lean::is_scalar(x_13)) { - x_14 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_12, 0, x_9); +x_13 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_13, 0, x_12); +if (lean::is_scalar(x_8)) { + x_14 = lean::alloc_cnstr(0, 2, 0); } else { - x_14 = x_13; + x_14 = x_8; } -lean::cnstr_set(x_14, 0, x_11); -if (lean::is_scalar(x_10)) { - x_15 = lean::alloc_cnstr(0, 2, 0); -} else { - x_15 = x_10; -} -lean::cnstr_set(x_15, 0, x_14); -lean::cnstr_set(x_15, 1, x_8); -return x_15; +lean::cnstr_set(x_14, 0, x_13); +lean::cnstr_set(x_14, 1, x_6); +return x_14; } else { -obj* x_16; obj* x_18; -x_16 = lean::cnstr_get(x_5, 0); -if (lean::is_exclusive(x_5)) { - lean::cnstr_set(x_5, 0, lean::box(0)); - x_18 = x_5; +obj* x_15; obj* x_17; +x_15 = lean::cnstr_get(x_4, 0); +if (lean::is_exclusive(x_4)) { + lean::cnstr_set(x_4, 0, lean::box(0)); + x_17 = x_4; } else { - lean::inc(x_16); - lean::dec(x_5); - x_18 = lean::box(0); + lean::inc(x_15); + lean::dec(x_4); + x_17 = lean::box(0); } -if (lean::obj_tag(x_16) == 0) +if (lean::obj_tag(x_15) == 0) { -obj* x_20; obj* x_23; -lean::dec(x_18); -x_20 = lean::cnstr_get(x_4, 1); -lean::inc(x_20); -lean::dec(x_4); -x_23 = lean::cnstr_get(x_16, 0); -lean::inc(x_23); -lean::dec(x_16); -x_1 = x_23; -x_2 = x_20; -goto _start; +obj* x_19; obj* x_21; obj* x_22; obj* x_24; obj* x_25; obj* x_26; +lean::dec(x_17); +x_19 = lean::cnstr_get(x_3, 1); +if (lean::is_exclusive(x_3)) { + lean::cnstr_release(x_3, 0); + x_21 = x_3; +} else { + lean::inc(x_19); + lean::dec(x_3); + x_21 = lean::box(0); +} +x_22 = lean::cnstr_get(x_15, 0); +if (lean::is_exclusive(x_15)) { + x_24 = x_15; +} else { + lean::inc(x_22); + lean::dec(x_15); + x_24 = lean::box(0); +} +if (lean::is_scalar(x_24)) { + x_25 = lean::alloc_cnstr(0, 1, 0); +} else { + x_25 = x_24; +} +lean::cnstr_set(x_25, 0, x_22); +if (lean::is_scalar(x_21)) { + x_26 = lean::alloc_cnstr(0, 2, 0); +} else { + x_26 = x_21; +} +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_19); +return x_26; } else { -obj* x_28; obj* x_30; obj* x_31; obj* x_34; obj* x_35; -lean::dec(x_0); -x_28 = lean::cnstr_get(x_4, 1); -if (lean::is_exclusive(x_4)) { - lean::cnstr_release(x_4, 0); - x_30 = x_4; +obj* x_27; obj* x_29; obj* x_30; obj* x_32; obj* x_33; obj* x_34; obj* x_35; +x_27 = lean::cnstr_get(x_3, 1); +if (lean::is_exclusive(x_3)) { + lean::cnstr_release(x_3, 0); + x_29 = x_3; } else { - lean::inc(x_28); - lean::dec(x_4); - x_30 = lean::box(0); + lean::inc(x_27); + lean::dec(x_3); + x_29 = lean::box(0); } -x_31 = lean::cnstr_get(x_16, 0); -lean::inc(x_31); -lean::dec(x_16); -if (lean::is_scalar(x_18)) { +x_30 = lean::cnstr_get(x_15, 0); +if (lean::is_exclusive(x_15)) { + x_32 = x_15; +} else { + lean::inc(x_30); + lean::dec(x_15); + x_32 = lean::box(0); +} +if (lean::is_scalar(x_17)) { + x_33 = lean::alloc_cnstr(1, 1, 0); +} else { + x_33 = x_17; +} +lean::cnstr_set(x_33, 0, x_30); +if (lean::is_scalar(x_32)) { x_34 = lean::alloc_cnstr(1, 1, 0); } else { - x_34 = x_18; + x_34 = x_32; } -lean::cnstr_set(x_34, 0, x_31); -if (lean::is_scalar(x_30)) { +lean::cnstr_set(x_34, 0, x_33); +if (lean::is_scalar(x_29)) { x_35 = lean::alloc_cnstr(0, 2, 0); } else { - x_35 = x_30; + x_35 = x_29; } lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_28); +lean::cnstr_set(x_35, 1, x_27); return x_35; } } } } -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___rarg), 3, 0); -return x_3; +obj* x_3; obj* x_4; obj* x_5; +x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg___lambda__1), 3, 1); +lean::closure_set(x_3, 0, x_1); +x_4 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___rarg), 4, 1); +lean::closure_set(x_4, 0, x_3); +x_5 = lean::fixpoint2(x_4, x_0, x_2); +return x_5; } } -obj* l_io_prim_iterate__eio___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___rarg(x_1, x_0, x_2); -return x_3; +obj* x_4; +x_4 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg), 3, 0); +return x_4; +} +} +obj* l_io_prim_iterate__eio___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___rarg(x_1, x_2, x_3); +return x_4; } } obj* l_io_prim_iterate__eio(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___rarg), 3, 0); +x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___rarg___boxed), 4, 0); return x_3; } } -obj* l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_prim_iterate__eio___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_io_prim_iterate___main___at_io_prim_iterate__eio___spec__1(x_0, x_1, x_2); +obj* x_4; +x_4 = l_io_prim_iterate___at_io_prim_iterate__eio___spec__1(x_0, x_1, x_2, x_3); lean::dec(x_0); lean::dec(x_1); lean::dec(x_2); -return x_3; +lean::dec(x_3); +return x_4; +} +} +obj* l_io_prim_iterate__eio___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_io_prim_iterate__eio___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; } } obj* l_io_prim_iterate__eio___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -1160,7 +1344,7 @@ return x_20; } } } -obj* l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_4; obj* x_6; obj* x_7; @@ -1292,7 +1476,7 @@ lbl_5: { if (lean::obj_tag(x_3) == 0) { -obj* x_51; obj* x_53; obj* x_54; obj* x_55; +obj* x_51; obj* x_53; obj* x_54; obj* x_55; obj* x_56; x_51 = lean::cnstr_get(x_3, 0); if (lean::is_exclusive(x_3)) { x_53 = x_3; @@ -1307,69 +1491,106 @@ if (lean::is_scalar(x_53)) { x_54 = x_53; } lean::cnstr_set(x_54, 0, x_51); -x_55 = lean::alloc_cnstr(0, 2, 0); +x_55 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_55, 0, x_54); -lean::cnstr_set(x_55, 1, x_4); -return x_55; +x_56 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_56, 0, x_55); +lean::cnstr_set(x_56, 1, x_4); +return x_56; } else { -obj* x_56; obj* x_58; -x_56 = lean::cnstr_get(x_3, 0); +obj* x_57; obj* x_59; +x_57 = lean::cnstr_get(x_3, 0); if (lean::is_exclusive(x_3)) { lean::cnstr_set(x_3, 0, lean::box(0)); - x_58 = x_3; + x_59 = x_3; } else { - lean::inc(x_56); + lean::inc(x_57); lean::dec(x_3); - x_58 = lean::box(0); + x_59 = lean::box(0); } -if (lean::obj_tag(x_56) == 0) +if (lean::obj_tag(x_57) == 0) { -obj* x_60; -lean::dec(x_58); -x_60 = lean::cnstr_get(x_56, 0); -lean::inc(x_60); -lean::dec(x_56); -x_1 = x_60; -x_2 = x_4; -goto _start; +obj* x_61; obj* x_63; obj* x_64; obj* x_65; +lean::dec(x_59); +x_61 = lean::cnstr_get(x_57, 0); +if (lean::is_exclusive(x_57)) { + x_63 = x_57; +} else { + lean::inc(x_61); + lean::dec(x_57); + x_63 = lean::box(0); +} +if (lean::is_scalar(x_63)) { + x_64 = lean::alloc_cnstr(0, 1, 0); +} else { + x_64 = x_63; +} +lean::cnstr_set(x_64, 0, x_61); +x_65 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_65, 0, x_64); +lean::cnstr_set(x_65, 1, x_4); +return x_65; } else { -obj* x_64; obj* x_67; obj* x_68; -x_64 = lean::cnstr_get(x_56, 0); -lean::inc(x_64); -lean::dec(x_56); -if (lean::is_scalar(x_58)) { - x_67 = lean::alloc_cnstr(1, 1, 0); +obj* x_66; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_66 = lean::cnstr_get(x_57, 0); +if (lean::is_exclusive(x_57)) { + x_68 = x_57; } else { - x_67 = x_58; + lean::inc(x_66); + lean::dec(x_57); + x_68 = lean::box(0); } -lean::cnstr_set(x_67, 0, x_64); -x_68 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_68, 0, x_67); -lean::cnstr_set(x_68, 1, x_4); -return x_68; +if (lean::is_scalar(x_59)) { + x_69 = lean::alloc_cnstr(1, 1, 0); +} else { + x_69 = x_59; +} +lean::cnstr_set(x_69, 0, x_66); +if (lean::is_scalar(x_68)) { + x_70 = lean::alloc_cnstr(1, 1, 0); +} else { + x_70 = x_68; +} +lean::cnstr_set(x_70, 0, x_69); +x_71 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_71, 0, x_70); +lean::cnstr_set(x_71, 1, x_4); +return x_71; } } } } } +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4(obj* x_0, obj* x_1) { +_start: +{ +obj* x_2; obj* x_3; obj* x_4; obj* x_5; +x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1___boxed), 3, 1); +lean::closure_set(x_2, 0, x_0); +x_3 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___rarg), 4, 1); +lean::closure_set(x_3, 0, x_2); +x_4 = l_string_iterator_extract___main___closed__1; +x_5 = lean::fixpoint2(x_3, x_4, x_1); +return x_5; +} +} obj* l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3(obj* x_0, obj* x_1) { _start: { -obj* x_2; obj* x_3; -x_2 = l_string_iterator_extract___main___closed__1; -x_3 = l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4(x_0, x_2, x_1); -return x_3; +obj* x_2; +x_2 = l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4(x_0, x_1); +return x_2; } } obj* l_io_fs_handle_read__to__end___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_6; obj* x_8; obj* x_9; obj* x_10; -x_5 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3___boxed), 2, 1); +x_5 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3), 2, 1); lean::closure_set(x_5, 0, x_4); x_6 = lean::cnstr_get(x_3, 1); lean::inc(x_6); @@ -1408,24 +1629,15 @@ lean::dec(x_0); return x_2; } } -obj* l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_io_prim_iterate___main___at_io_fs_handle_read__to__end___spec__4(x_0, x_1, x_2); +x_3 = l_io_prim_iterate___at_io_fs_handle_read__to__end___spec__4___lambda__1(x_0, x_1, x_2); lean::dec(x_0); return x_3; } } -obj* l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_io_prim_iterate__eio___at_io_fs_handle_read__to__end___spec__3(x_0, x_1); -lean::dec(x_0); -return x_2; -} -} obj* l_io_fs_handle_read__to__end___boxed(obj* x_0, obj* x_1) { _start: { @@ -2023,6 +2235,7 @@ return x_1; void initialize_init_control_state(); void initialize_init_control_except(); void initialize_init_data_string_basic(); +void initialize_init_fix(); static bool _G_initialized = false; void initialize_init_io() { if (_G_initialized) return; @@ -2030,10 +2243,13 @@ void initialize_init_io() { initialize_init_control_state(); initialize_init_control_except(); initialize_init_data_string_basic(); + initialize_init_fix(); l_io_monad = _init_l_io_monad(); lean::mark_persistent(l_io_monad); l_io_error_has__to__string = _init_l_io_error_has__to__string(); lean::mark_persistent(l_io_error_has__to__string); + l_io_error_inhabited = _init_l_io_error_inhabited(); +lean::mark_persistent(l_io_error_inhabited); l_io_println___rarg___closed__1 = _init_l_io_println___rarg___closed__1(); lean::mark_persistent(l_io_println___rarg___closed__1); l_eio_has__eval___rarg___closed__1 = _init_l_eio_has__eval___rarg___closed__1(); diff --git a/src/boot/init/lean/elaborator.cpp b/src/boot/init/lean/elaborator.cpp index 448c4f46a9..472eb9d356 100644 --- a/src/boot/init/lean/elaborator.cpp +++ b/src/boot/init/lean/elaborator.cpp @@ -132,6 +132,7 @@ obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3(obj* obj* l_list_filter___main___at_lean_elaborator_resolve__context___main___spec__3___boxed(obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7(obj*); extern obj* l_lean_expander_error___rarg___lambda__1___closed__1; +obj* l_lean_elaborator_process__command___lambda__1___closed__2; obj* l_lean_elaborator_notation_elaborate__aux___closed__1; obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__eqns___closed__2; @@ -149,7 +150,6 @@ obj* l_lean_elaborator_to__pexpr___main___closed__31; obj* l_lean_elaborator_module_header_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_ordered__rbmap_of__list___spec__7___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_register__notation__macro(obj*, obj*, obj*, obj*); -obj* l_lean_elaborator_process__command___lambda__2___closed__2; obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_preresolve___main___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_include_elaborate___spec__1(obj*, obj*); @@ -192,7 +192,6 @@ obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__2(obj obj* l_lean_elaborator_to__level___main___boxed(obj*, obj*, obj*, obj*); obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__6; -obj* l_lean_elaborator_process__command___lambda__1___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_check_elaborate(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__7___closed__2; obj* l_lean_elaborator_elaborator__m_monad; @@ -357,7 +356,6 @@ obj* l_lean_elaborator_elaborator__m_monad__except; obj* l_lean_elaborator_command__parser__config_register__notation__tokens(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__10; obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_variables_elaborate___spec__4(obj*, obj*, obj*); -obj* l_lean_elaborator_process__command___lambda__2___closed__1; obj* l_lean_elaborator_end_elaborate___closed__2; uint8 l_list_foldr___main___at_lean_elaborator_is__open__namespace___main___spec__2(obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_current__scope___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*); @@ -694,7 +692,6 @@ obj* l_dlist_singleton___rarg(obj*, obj*); extern obj* l_lean_expander_get__opt__type___main___closed__1; obj* l_list_mmap___main___at_lean_elaborator_preresolve___main___spec__1(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_level_trailing_has__view; -obj* l_lean_elaborator_process__command___lambda__2(obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_node___at_lean_parser_command_notation__spec_precedence__lit_parser___spec__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_append___rarg(obj*, obj*); obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(obj*, obj*, obj*, obj*); @@ -31512,31 +31509,11 @@ obj* _init_l_lean_elaborator_process__command___lambda__1___closed__1() { _start: { obj* x_0; -x_0 = lean::mk_string("elaborator.run: recursion depth exceeded"); -return x_0; -} -} -obj* l_lean_elaborator_process__command___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; obj* x_5; obj* x_6; -x_4 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_4, 0, x_0); -x_5 = l_lean_elaborator_process__command___lambda__1___closed__1; -x_6 = l_lean_expander_error___at_lean_elaborator_process__command___spec__1___rarg(x_4, x_5, x_2, x_3); -lean::dec(x_4); -return x_6; -} -} -obj* _init_l_lean_elaborator_process__command___lambda__2___closed__1() { -_start: -{ -obj* x_0; x_0 = lean::mk_string("not a command: "); return x_0; } } -obj* _init_l_lean_elaborator_process__command___lambda__2___closed__2() { +obj* _init_l_lean_elaborator_process__command___lambda__1___closed__2() { _start: { obj* x_0; @@ -31544,7 +31521,7 @@ x_0 = lean::mk_string("unknown command: "); return x_0; } } -obj* l_lean_elaborator_process__command___lambda__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_lean_elaborator_process__command___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_5; @@ -31559,7 +31536,7 @@ lean::cnstr_set(x_7, 0, x_1); x_8 = l_lean_parser_syntax_to__format___main(x_1); x_9 = lean::mk_nat_obj(80u); x_10 = l_lean_format_pretty(x_8, x_9); -x_11 = l_lean_elaborator_process__command___lambda__2___closed__1; +x_11 = l_lean_elaborator_process__command___lambda__1___closed__1; x_12 = lean::string_append(x_11, x_10); lean::dec(x_10); x_14 = l_lean_expander_error___at_lean_elaborator_process__command___spec__2___rarg(x_7, x_12, x_0, x_2, x_3); @@ -31596,7 +31573,7 @@ if (lean::is_scalar(x_20)) { lean::cnstr_set(x_26, 0, x_1); x_27 = l_lean_name_to__string___closed__1; x_28 = l_lean_name_to__string__with__sep___main(x_27, x_21); -x_29 = l_lean_elaborator_process__command___lambda__2___closed__2; +x_29 = l_lean_elaborator_process__command___lambda__1___closed__2; x_30 = lean::string_append(x_29, x_28); lean::dec(x_28); x_32 = l_lean_expander_error___at_lean_elaborator_process__command___spec__2___rarg(x_26, x_30, x_0, x_2, x_3); @@ -31659,14 +31636,14 @@ obj* _init_l_lean_elaborator_process__command___closed__1() { _start: { obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_process__command___lambda__2), 4, 0); +x_0 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_process__command___lambda__1), 4, 0); return x_0; } } obj* l_lean_elaborator_process__command(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_19; obj* x_21; obj* x_24; obj* x_35; obj* x_37; obj* x_38; obj* x_39; +obj* x_3; obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_19; obj* x_21; obj* x_24; obj* x_35; obj* x_36; obj* x_37; x_3 = lean::cnstr_get(x_1, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_1, 1); @@ -31711,37 +31688,34 @@ lean::cnstr_set(x_35, 7, x_15); lean::cnstr_set(x_35, 8, x_17); lean::cnstr_set(x_35, 9, x_19); lean::cnstr_set(x_35, 10, x_21); -lean::inc(x_2); -x_37 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_process__command___lambda__1___boxed), 4, 1); -lean::closure_set(x_37, 0, x_2); -x_38 = l_lean_elaborator_process__command___closed__1; -x_39 = lean::fixpoint3(x_38, x_2, x_0, x_35); -if (lean::obj_tag(x_39) == 0) +x_36 = l_lean_elaborator_process__command___closed__1; +x_37 = lean::fixpoint3(x_36, x_2, x_0, x_35); +if (lean::obj_tag(x_37) == 0) { -obj* x_40; obj* x_43; obj* x_44; -x_40 = lean::cnstr_get(x_39, 0); -lean::inc(x_40); -lean::dec(x_39); -x_43 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_43, 0, x_40); -lean::cnstr_set(x_43, 1, x_24); -x_44 = lean::alloc_cnstr(0, 11, 0); -lean::cnstr_set(x_44, 0, x_3); -lean::cnstr_set(x_44, 1, x_5); -lean::cnstr_set(x_44, 2, x_7); -lean::cnstr_set(x_44, 3, x_9); -lean::cnstr_set(x_44, 4, x_11); -lean::cnstr_set(x_44, 5, x_43); -lean::cnstr_set(x_44, 6, x_13); -lean::cnstr_set(x_44, 7, x_15); -lean::cnstr_set(x_44, 8, x_17); -lean::cnstr_set(x_44, 9, x_19); -lean::cnstr_set(x_44, 10, x_21); -return x_44; +obj* x_38; obj* x_41; obj* x_42; +x_38 = lean::cnstr_get(x_37, 0); +lean::inc(x_38); +lean::dec(x_37); +x_41 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_41, 0, x_38); +lean::cnstr_set(x_41, 1, x_24); +x_42 = lean::alloc_cnstr(0, 11, 0); +lean::cnstr_set(x_42, 0, x_3); +lean::cnstr_set(x_42, 1, x_5); +lean::cnstr_set(x_42, 2, x_7); +lean::cnstr_set(x_42, 3, x_9); +lean::cnstr_set(x_42, 4, x_11); +lean::cnstr_set(x_42, 5, x_41); +lean::cnstr_set(x_42, 6, x_13); +lean::cnstr_set(x_42, 7, x_15); +lean::cnstr_set(x_42, 8, x_17); +lean::cnstr_set(x_42, 9, x_19); +lean::cnstr_set(x_42, 10, x_21); +return x_42; } else { -obj* x_55; obj* x_58; +obj* x_53; obj* x_56; lean::dec(x_7); lean::dec(x_15); lean::dec(x_19); @@ -31752,13 +31726,13 @@ lean::dec(x_5); lean::dec(x_9); lean::dec(x_3); lean::dec(x_21); -x_55 = lean::cnstr_get(x_39, 0); -lean::inc(x_55); -lean::dec(x_39); -x_58 = lean::cnstr_get(x_55, 1); -lean::inc(x_58); -lean::dec(x_55); -return x_58; +x_53 = lean::cnstr_get(x_37, 0); +lean::inc(x_53); +lean::dec(x_37); +x_56 = lean::cnstr_get(x_53, 1); +lean::inc(x_56); +lean::dec(x_53); +return x_56; } } } @@ -31810,16 +31784,6 @@ lean::dec(x_1); return x_2; } } -obj* l_lean_elaborator_process__command___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; -x_4 = l_lean_elaborator_process__command___lambda__1(x_0, x_1, x_2, x_3); -lean::dec(x_1); -lean::dec(x_3); -return x_4; -} -} void initialize_init_lean_parser_module(); void initialize_init_lean_expander(); void initialize_init_lean_expr(); @@ -32100,10 +32064,8 @@ lean::mark_persistent(l_lean_elaborator_mk__state___closed__5); lean::mark_persistent(l_lean_elaborator_mk__state___closed__6); l_lean_elaborator_process__command___lambda__1___closed__1 = _init_l_lean_elaborator_process__command___lambda__1___closed__1(); lean::mark_persistent(l_lean_elaborator_process__command___lambda__1___closed__1); - l_lean_elaborator_process__command___lambda__2___closed__1 = _init_l_lean_elaborator_process__command___lambda__2___closed__1(); -lean::mark_persistent(l_lean_elaborator_process__command___lambda__2___closed__1); - l_lean_elaborator_process__command___lambda__2___closed__2 = _init_l_lean_elaborator_process__command___lambda__2___closed__2(); -lean::mark_persistent(l_lean_elaborator_process__command___lambda__2___closed__2); + l_lean_elaborator_process__command___lambda__1___closed__2 = _init_l_lean_elaborator_process__command___lambda__1___closed__2(); +lean::mark_persistent(l_lean_elaborator_process__command___lambda__1___closed__2); l_lean_elaborator_process__command___closed__1 = _init_l_lean_elaborator_process__command___closed__1(); lean::mark_persistent(l_lean_elaborator_process__command___closed__1); } diff --git a/src/boot/init/lean/frontend.cpp b/src/boot/init/lean/frontend.cpp index f4a281e07a..bdf564723d 100644 --- a/src/boot/init/lean/frontend.cpp +++ b/src/boot/init/lean/frontend.cpp @@ -15,13 +15,14 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif obj* l___private_init_io_12__put__str___at_lean_process__file___spec__3___boxed(obj*, obj*); -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6(obj*, uint8, obj*, obj*, obj*, obj*, obj*); +obj* l_io_prim_iterate__aux___rarg(obj*, obj*, obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_run__frontend___spec__2(obj*, obj*, obj*); obj* l_lean_run__frontend___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_expander_expand(obj*, obj*); extern obj* l_lean_elaborator_notation_elaborate___closed__1; extern obj* l_string_iterator_extract___main___closed__1; obj* l_lean_parser_mk__token__trie(obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4(obj*, obj*, uint8, obj*, obj*, obj*, obj*); obj* l_lean_process__file___lambda__1___closed__6; obj* l___private_init_io_12__put__str___at_lean_process__file___spec__3(obj*, obj*); extern "C" obj* lean_io_prim_put_str(obj*, obj*); @@ -33,19 +34,16 @@ extern obj* l_lean_expander_expand__bracketed__binder___main___closed__6; uint8 l_lean_parser_syntax_is__of__kind___main(obj*, obj*); obj* l_lean_parser_parse__command(obj*, obj*); obj* l_string_quote(obj*); -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2; extern obj* l_lean_expander_builtin__transformers; obj* l_lean_mk__config(obj*, obj*); -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3(obj*, obj*, obj*, obj*); obj* l_lean_process__file___lambda__1___closed__5; obj* l_lean_process__file___lambda__1___closed__8; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3; obj* lean_process_file(obj*, obj*, uint8, obj*); obj* l_lean_run__frontend(obj*, obj*, obj*, uint8, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); namespace lean { obj* string_append(obj*, obj*); } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_process__file___lambda__1___closed__2; obj* l_list_mmap_x_27___main___at_lean_run__frontend___spec__1(obj*, obj*, obj*); obj* l_lean_kvmap_set__bool(obj*, obj*, uint8); @@ -53,44 +51,49 @@ obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(obj*, uint8 obj* l_lean_process__file___closed__1; extern obj* l_lean_parser_term_builtin__trailing__parsers_lean_parser_has__tokens; extern obj* l_lean_parser_term_builtin__leading__parsers; +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3___boxed(obj*, obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1; obj* l_lean_process__file___lambda__1___closed__1; obj* l_lean_parser_tokens___rarg(obj*); extern obj* l_lean_parser_module_eoi; obj* l_io_println___at_lean_process__file___spec__1___boxed(obj*, obj*); extern obj* l_lean_format_be___main___closed__1; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2___boxed(obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1___boxed(obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2; obj* l_io_print___at_lean_process__file___spec__2___boxed(obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1(obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3(obj*, obj*, obj*, obj*); obj* l_io_println___at_lean_process__file___spec__1(obj*, obj*); extern obj* l_lean_options_mk; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1(obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1; obj* l_lean_process__file___lambda__1___boxed(obj*, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2___boxed(obj*, obj*, obj*); obj* l_lean_message_to__string(obj*); obj* l_lean_process__file___lambda__1___closed__7; +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3; obj* l_lean_file__map_from__string(obj*); extern obj* l_lean_parser_module_header_parser_lean_parser_has__tokens; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1___boxed(obj*, obj*, obj*); obj* l_lean_process__file___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_builtin__leading__parsers_lean_parser_has__tokens; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1; +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_parse__header(obj*); obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5(obj*, obj*); extern obj* l_lean_parser_command_builtin__command__parsers; +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2(obj*, obj*, obj*); obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_run__frontend___spec__1___closed__1; -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__state(obj*, obj*); extern obj* l_lean_parser_command_builtin__command__parsers_lean_parser_has__tokens; extern obj* l_lean_parser_term_builtin__trailing__parsers; obj* l_nat_repr(obj*); obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___boxed(obj*, obj*); -obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1; obj* l_lean_elaborator_process__command(obj*, obj*, obj*); -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2(obj*, obj*, obj*); obj* l_lean_process__file___lambda__1___closed__9; obj* l_io_print___at_lean_process__file___spec__2(obj*, obj*); obj* l_lean_file__map_to__position(obj*, obj*); obj* l_list_append___rarg(obj*, obj*); obj* l_lean_process__file___lambda__1(uint8, obj*, obj*); +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6(obj*, uint8, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_profileit__pure___rarg(obj*, obj*, obj*, obj*); obj* l_lean_process__file___lambda__1___closed__4; obj* l_list_mmap_x_27___main___at_lean_run__frontend___spec__3(obj*, obj*, obj*); @@ -488,7 +491,7 @@ goto _start; } } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; @@ -496,7 +499,7 @@ x_3 = l_lean_parser_parse__command(x_0, x_1); return x_3; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; @@ -504,7 +507,7 @@ x_3 = l_lean_expander_expand(x_0, x_1); return x_3; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; @@ -512,7 +515,7 @@ x_4 = l_lean_elaborator_process__command(x_0, x_1, x_2); return x_4; } } -obj* _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1() { +obj* _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1() { _start: { obj* x_0; @@ -520,7 +523,7 @@ x_0 = lean::mk_string("parsing"); return x_0; } } -obj* _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2() { +obj* _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2() { _start: { obj* x_0; @@ -528,7 +531,7 @@ x_0 = lean::mk_string("expanding"); return x_0; } } -obj* _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3() { +obj* _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3() { _start: { obj* x_0; @@ -536,7 +539,7 @@ x_0 = lean::mk_string("elaborating"); return x_0; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6(obj* x_0, uint8 x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4(obj* x_0, obj* x_1, uint8 x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { obj* x_7; obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_19; obj* x_22; obj* x_25; obj* x_27; obj* x_30; obj* x_32; obj* x_35; obj* x_38; obj* x_41; obj* x_43; obj* x_46; obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_53; @@ -578,10 +581,10 @@ lean::inc(x_43); lean::dec(x_41); x_46 = l_lean_file__map_to__position(x_38, x_43); lean::inc(x_22); -x_48 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1___boxed), 3, 2); +x_48 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1___boxed), 3, 2); lean::closure_set(x_48, 0, x_22); lean::closure_set(x_48, 1, x_16); -x_49 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1; +x_49 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1; x_50 = l_lean_profileit__pure___rarg(x_49, x_46, x_48, x_6); x_51 = lean::cnstr_get(x_50, 0); lean::inc(x_51); @@ -589,140 +592,143 @@ x_53 = lean::cnstr_get(x_51, 1); lean::inc(x_53); if (lean::obj_tag(x_53) == 0) { -obj* x_59; obj* x_62; obj* x_65; obj* x_69; obj* x_70; +obj* x_60; obj* x_63; obj* x_66; obj* x_70; obj* x_71; lean::dec(x_25); +lean::dec(x_4); lean::dec(x_19); lean::dec(x_22); lean::dec(x_46); -x_59 = lean::cnstr_get(x_50, 1); -lean::inc(x_59); +x_60 = lean::cnstr_get(x_50, 1); +lean::inc(x_60); lean::dec(x_50); -x_62 = lean::cnstr_get(x_51, 0); -lean::inc(x_62); +x_63 = lean::cnstr_get(x_51, 0); +lean::inc(x_63); lean::dec(x_51); -x_65 = lean::cnstr_get(x_53, 0); -lean::inc(x_65); +x_66 = lean::cnstr_get(x_53, 0); +lean::inc(x_66); lean::dec(x_53); lean::inc(x_0); -x_69 = lean::apply_2(x_0, x_65, x_59); -x_70 = lean::cnstr_get(x_69, 0); -lean::inc(x_70); -if (lean::obj_tag(x_70) == 0) +x_70 = lean::apply_2(x_0, x_66, x_60); +x_71 = lean::cnstr_get(x_70, 0); +lean::inc(x_71); +if (lean::obj_tag(x_71) == 0) { -obj* x_74; obj* x_77; obj* x_79; obj* x_80; +obj* x_78; obj* x_81; obj* x_83; obj* x_84; lean::dec(x_27); -lean::dec(x_62); -x_74 = lean::cnstr_get(x_69, 1); -lean::inc(x_74); -lean::dec(x_69); -x_77 = lean::cnstr_get(x_70, 0); -if (lean::is_exclusive(x_70)) { - x_79 = x_70; -} else { - lean::inc(x_77); - lean::dec(x_70); - x_79 = lean::box(0); -} -if (lean::is_scalar(x_79)) { - x_80 = lean::alloc_cnstr(0, 1, 0); -} else { - x_80 = x_79; -} -lean::cnstr_set(x_80, 0, x_77); -x_7 = x_80; -x_8 = x_74; -goto lbl_9; -} -else -{ -obj* x_82; obj* x_87; obj* x_88; +lean::dec(x_1); +lean::dec(x_3); +lean::dec(x_0); +lean::dec(x_63); +x_78 = lean::cnstr_get(x_70, 1); +lean::inc(x_78); lean::dec(x_70); -x_82 = lean::cnstr_get(x_69, 1); -lean::inc(x_82); -lean::dec(x_69); -lean::inc(x_2); -lean::inc(x_0); -x_87 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__2(x_0, x_2, x_82); -x_88 = lean::cnstr_get(x_87, 0); -lean::inc(x_88); -if (lean::obj_tag(x_88) == 0) +x_81 = lean::cnstr_get(x_71, 0); +if (lean::is_exclusive(x_71)) { + x_83 = x_71; +} else { + lean::inc(x_81); + lean::dec(x_71); + x_83 = lean::box(0); +} +if (lean::is_scalar(x_83)) { + x_84 = lean::alloc_cnstr(0, 1, 0); +} else { + x_84 = x_83; +} +lean::cnstr_set(x_84, 0, x_81); +x_7 = x_84; +x_8 = x_78; +goto lbl_9; +} +else { -obj* x_92; obj* x_95; obj* x_97; obj* x_98; +obj* x_86; obj* x_89; obj* x_90; +lean::dec(x_71); +x_86 = lean::cnstr_get(x_70, 1); +lean::inc(x_86); +lean::dec(x_70); +x_89 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__2(x_0, x_1, x_86); +x_90 = lean::cnstr_get(x_89, 0); +lean::inc(x_90); +if (lean::obj_tag(x_90) == 0) +{ +obj* x_95; obj* x_98; obj* x_100; obj* x_101; lean::dec(x_27); -lean::dec(x_62); -x_92 = lean::cnstr_get(x_87, 1); -lean::inc(x_92); -lean::dec(x_87); -x_95 = lean::cnstr_get(x_88, 0); -if (lean::is_exclusive(x_88)) { - x_97 = x_88; +lean::dec(x_3); +lean::dec(x_63); +x_95 = lean::cnstr_get(x_89, 1); +lean::inc(x_95); +lean::dec(x_89); +x_98 = lean::cnstr_get(x_90, 0); +if (lean::is_exclusive(x_90)) { + x_100 = x_90; } else { - lean::inc(x_95); - lean::dec(x_88); - x_97 = lean::box(0); + lean::inc(x_98); + lean::dec(x_90); + x_100 = lean::box(0); } -if (lean::is_scalar(x_97)) { - x_98 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_100)) { + x_101 = lean::alloc_cnstr(0, 1, 0); } else { - x_98 = x_97; + x_101 = x_100; } -lean::cnstr_set(x_98, 0, x_95); -x_7 = x_98; -x_8 = x_92; +lean::cnstr_set(x_101, 0, x_98); +x_7 = x_101; +x_8 = x_95; goto lbl_9; } else { -obj* x_99; -if (lean::is_exclusive(x_88)) { - lean::cnstr_release(x_88, 0); - x_99 = x_88; +obj* x_102; +if (lean::is_exclusive(x_90)) { + lean::cnstr_release(x_90, 0); + x_102 = x_90; } else { - lean::dec(x_88); - x_99 = lean::box(0); + lean::dec(x_90); + x_102 = lean::box(0); } -if (x_1 == 0) +if (x_2 == 0) { -obj* x_102; obj* x_106; obj* x_107; obj* x_108; +obj* x_105; obj* x_108; obj* x_109; obj* x_110; lean::dec(x_27); -lean::dec(x_62); -x_102 = lean::cnstr_get(x_87, 1); -lean::inc(x_102); -lean::dec(x_87); -lean::inc(x_4); -x_106 = l_list_reverse___rarg(x_4); -x_107 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_107, 0, x_106); -if (lean::is_scalar(x_99)) { - x_108 = lean::alloc_cnstr(1, 1, 0); +lean::dec(x_63); +x_105 = lean::cnstr_get(x_89, 1); +lean::inc(x_105); +lean::dec(x_89); +x_108 = l_list_reverse___rarg(x_3); +x_109 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_109, 0, x_108); +if (lean::is_scalar(x_102)) { + x_110 = lean::alloc_cnstr(1, 1, 0); } else { - x_108 = x_99; + x_110 = x_102; } -lean::cnstr_set(x_108, 0, x_107); -x_7 = x_108; -x_8 = x_102; +lean::cnstr_set(x_110, 0, x_109); +x_7 = x_110; +x_8 = x_105; goto lbl_9; } else { -obj* x_109; obj* x_112; obj* x_113; obj* x_114; obj* x_115; -x_109 = lean::cnstr_get(x_87, 1); -lean::inc(x_109); -lean::dec(x_87); -x_112 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_112, 0, x_62); -lean::cnstr_set(x_112, 1, x_27); -x_113 = l_list_reverse___rarg(x_112); -x_114 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_114, 0, x_113); -if (lean::is_scalar(x_99)) { - x_115 = lean::alloc_cnstr(1, 1, 0); +obj* x_112; obj* x_115; obj* x_116; obj* x_117; obj* x_118; +lean::dec(x_3); +x_112 = lean::cnstr_get(x_89, 1); +lean::inc(x_112); +lean::dec(x_89); +x_115 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_115, 0, x_63); +lean::cnstr_set(x_115, 1, x_27); +x_116 = l_list_reverse___rarg(x_115); +x_117 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_117, 0, x_116); +if (lean::is_scalar(x_102)) { + x_118 = lean::alloc_cnstr(1, 1, 0); } else { - x_115 = x_99; + x_118 = x_102; } -lean::cnstr_set(x_115, 0, x_114); -x_7 = x_115; -x_8 = x_109; +lean::cnstr_set(x_118, 0, x_117); +x_7 = x_118; +x_8 = x_112; goto lbl_9; } } @@ -730,597 +736,600 @@ goto lbl_9; } else { -obj* x_116; obj* x_119; obj* x_122; obj* x_125; obj* x_127; obj* x_129; obj* x_130; obj* x_132; obj* x_133; -x_116 = lean::cnstr_get(x_53, 0); -lean::inc(x_116); +obj* x_120; obj* x_123; obj* x_126; obj* x_129; obj* x_131; obj* x_133; obj* x_134; obj* x_136; obj* x_137; +lean::dec(x_1); +x_120 = lean::cnstr_get(x_53, 0); +lean::inc(x_120); lean::dec(x_53); -x_119 = lean::cnstr_get(x_50, 1); -lean::inc(x_119); +x_123 = lean::cnstr_get(x_50, 1); +lean::inc(x_123); lean::dec(x_50); -x_122 = lean::cnstr_get(x_51, 0); -lean::inc(x_122); +x_126 = lean::cnstr_get(x_51, 0); +lean::inc(x_126); lean::dec(x_51); -x_125 = lean::cnstr_get(x_116, 0); -x_127 = lean::cnstr_get(x_116, 1); -if (lean::is_exclusive(x_116)) { - lean::cnstr_set(x_116, 0, lean::box(0)); - lean::cnstr_set(x_116, 1, lean::box(0)); - x_129 = x_116; +x_129 = lean::cnstr_get(x_120, 0); +x_131 = lean::cnstr_get(x_120, 1); +if (lean::is_exclusive(x_120)) { + lean::cnstr_set(x_120, 0, lean::box(0)); + lean::cnstr_set(x_120, 1, lean::box(0)); + x_133 = x_120; } else { - lean::inc(x_125); - lean::inc(x_127); - lean::dec(x_116); - x_129 = lean::box(0); + lean::inc(x_129); + lean::inc(x_131); + lean::dec(x_120); + x_133 = lean::box(0); } -x_130 = l_list_reverse___rarg(x_127); +x_134 = l_list_reverse___rarg(x_131); lean::inc(x_0); -x_132 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__3(x_0, x_130, x_119); -x_133 = lean::cnstr_get(x_132, 0); -lean::inc(x_133); -if (lean::obj_tag(x_133) == 0) +x_136 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__3(x_0, x_134, x_123); +x_137 = lean::cnstr_get(x_136, 0); +lean::inc(x_137); +if (lean::obj_tag(x_137) == 0) { -obj* x_143; obj* x_146; obj* x_148; obj* x_149; +obj* x_150; obj* x_153; obj* x_155; obj* x_156; lean::dec(x_25); lean::dec(x_27); +lean::dec(x_4); +lean::dec(x_3); +lean::dec(x_0); lean::dec(x_19); lean::dec(x_22); lean::dec(x_46); -lean::dec(x_122); -lean::dec(x_125); +lean::dec(x_126); +lean::dec(x_133); lean::dec(x_129); -x_143 = lean::cnstr_get(x_132, 1); -lean::inc(x_143); -lean::dec(x_132); -x_146 = lean::cnstr_get(x_133, 0); -if (lean::is_exclusive(x_133)) { - x_148 = x_133; +x_150 = lean::cnstr_get(x_136, 1); +lean::inc(x_150); +lean::dec(x_136); +x_153 = lean::cnstr_get(x_137, 0); +if (lean::is_exclusive(x_137)) { + x_155 = x_137; } else { - lean::inc(x_146); - lean::dec(x_133); - x_148 = lean::box(0); + lean::inc(x_153); + lean::dec(x_137); + x_155 = lean::box(0); } -if (lean::is_scalar(x_148)) { - x_149 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_155)) { + x_156 = lean::alloc_cnstr(0, 1, 0); } else { - x_149 = x_148; + x_156 = x_155; } -lean::cnstr_set(x_149, 0, x_146); -x_7 = x_149; -x_8 = x_143; +lean::cnstr_set(x_156, 0, x_153); +x_7 = x_156; +x_8 = x_150; goto lbl_9; } else { -obj* x_150; obj* x_151; obj* x_153; obj* x_156; obj* x_157; obj* x_158; obj* x_159; -if (lean::is_exclusive(x_133)) { - lean::cnstr_release(x_133, 0); - x_150 = x_133; +obj* x_157; obj* x_158; obj* x_160; obj* x_163; obj* x_164; obj* x_165; obj* x_166; +if (lean::is_exclusive(x_137)) { + lean::cnstr_release(x_137, 0); + x_157 = x_137; } else { - lean::dec(x_133); - x_150 = lean::box(0); + lean::dec(x_137); + x_157 = lean::box(0); } -x_151 = lean::cnstr_get(x_132, 1); -if (lean::is_exclusive(x_132)) { - lean::cnstr_release(x_132, 0); - lean::cnstr_set(x_132, 1, lean::box(0)); - x_153 = x_132; +x_158 = lean::cnstr_get(x_136, 1); +if (lean::is_exclusive(x_136)) { + lean::cnstr_release(x_136, 0); + lean::cnstr_set(x_136, 1, lean::box(0)); + x_160 = x_136; } else { - lean::inc(x_151); - lean::dec(x_132); - x_153 = lean::box(0); + lean::inc(x_158); + lean::dec(x_136); + x_160 = lean::box(0); } lean::inc(x_25); -lean::inc(x_122); -x_156 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2___boxed), 3, 2); -lean::closure_set(x_156, 0, x_122); -lean::closure_set(x_156, 1, x_25); -x_157 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2; -x_158 = l_lean_profileit__pure___rarg(x_157, x_46, x_156, x_151); -x_159 = lean::cnstr_get(x_158, 0); -lean::inc(x_159); -if (lean::obj_tag(x_159) == 0) +lean::inc(x_126); +x_163 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2___boxed), 3, 2); +lean::closure_set(x_163, 0, x_126); +lean::closure_set(x_163, 1, x_25); +x_164 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2; +x_165 = l_lean_profileit__pure___rarg(x_164, x_46, x_163, x_158); +x_166 = lean::cnstr_get(x_165, 0); +lean::inc(x_166); +if (lean::obj_tag(x_166) == 0) { +lean::dec(x_4); lean::dec(x_46); -lean::dec(x_150); -if (x_1 == 0) +lean::dec(x_157); +if (x_2 == 0) { -obj* x_165; obj* x_167; obj* x_168; obj* x_172; obj* x_173; +obj* x_173; obj* x_175; obj* x_176; obj* x_179; obj* x_180; lean::dec(x_27); -lean::dec(x_122); -x_165 = lean::cnstr_get(x_158, 1); -if (lean::is_exclusive(x_158)) { - lean::cnstr_release(x_158, 0); - lean::cnstr_set(x_158, 1, lean::box(0)); - x_167 = x_158; +lean::dec(x_126); +x_173 = lean::cnstr_get(x_165, 1); +if (lean::is_exclusive(x_165)) { + lean::cnstr_release(x_165, 0); + lean::cnstr_set(x_165, 1, lean::box(0)); + x_175 = x_165; } else { - lean::inc(x_165); - lean::dec(x_158); - x_167 = lean::box(0); + lean::inc(x_173); + lean::dec(x_165); + x_175 = lean::box(0); } -x_168 = lean::cnstr_get(x_159, 0); -lean::inc(x_168); -lean::dec(x_159); -lean::inc(x_0); -x_172 = lean::apply_2(x_0, x_168, x_165); -x_173 = lean::cnstr_get(x_172, 0); -lean::inc(x_173); -if (lean::obj_tag(x_173) == 0) +x_176 = lean::cnstr_get(x_166, 0); +lean::inc(x_176); +lean::dec(x_166); +x_179 = lean::apply_2(x_0, x_176, x_173); +x_180 = lean::cnstr_get(x_179, 0); +lean::inc(x_180); +if (lean::obj_tag(x_180) == 0) { -obj* x_182; obj* x_185; obj* x_187; obj* x_188; +obj* x_190; obj* x_193; obj* x_195; obj* x_196; lean::dec(x_25); +lean::dec(x_3); lean::dec(x_19); lean::dec(x_22); -lean::dec(x_153); -lean::dec(x_167); -lean::dec(x_125); +lean::dec(x_175); +lean::dec(x_160); +lean::dec(x_133); lean::dec(x_129); -x_182 = lean::cnstr_get(x_172, 1); -lean::inc(x_182); -lean::dec(x_172); -x_185 = lean::cnstr_get(x_173, 0); -if (lean::is_exclusive(x_173)) { - x_187 = x_173; +x_190 = lean::cnstr_get(x_179, 1); +lean::inc(x_190); +lean::dec(x_179); +x_193 = lean::cnstr_get(x_180, 0); +if (lean::is_exclusive(x_180)) { + x_195 = x_180; } else { - lean::inc(x_185); - lean::dec(x_173); - x_187 = lean::box(0); + lean::inc(x_193); + lean::dec(x_180); + x_195 = lean::box(0); } -if (lean::is_scalar(x_187)) { - x_188 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_195)) { + x_196 = lean::alloc_cnstr(0, 1, 0); } else { - x_188 = x_187; + x_196 = x_195; } -lean::cnstr_set(x_188, 0, x_185); -x_7 = x_188; -x_8 = x_182; -goto lbl_9; -} -else -{ -obj* x_189; obj* x_190; obj* x_192; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_198; obj* x_199; -if (lean::is_exclusive(x_173)) { - lean::cnstr_release(x_173, 0); - x_189 = x_173; -} else { - lean::dec(x_173); - x_189 = lean::box(0); -} -x_190 = lean::cnstr_get(x_172, 1); -if (lean::is_exclusive(x_172)) { - lean::cnstr_release(x_172, 0); - x_192 = x_172; -} else { - lean::inc(x_190); - lean::dec(x_172); - x_192 = lean::box(0); -} -lean::inc(x_4); -if (lean::is_scalar(x_192)) { - x_194 = lean::alloc_cnstr(0, 2, 0); -} else { - x_194 = x_192; -} -lean::cnstr_set(x_194, 0, x_25); -lean::cnstr_set(x_194, 1, x_4); -if (lean::is_scalar(x_167)) { - x_195 = lean::alloc_cnstr(0, 2, 0); -} else { - x_195 = x_167; -} -lean::cnstr_set(x_195, 0, x_22); -lean::cnstr_set(x_195, 1, x_194); -if (lean::is_scalar(x_153)) { - x_196 = lean::alloc_cnstr(0, 2, 0); -} else { - x_196 = x_153; -} -lean::cnstr_set(x_196, 0, x_19); -lean::cnstr_set(x_196, 1, x_195); -if (lean::is_scalar(x_129)) { - x_197 = lean::alloc_cnstr(0, 2, 0); -} else { - x_197 = x_129; -} -lean::cnstr_set(x_197, 0, x_125); -lean::cnstr_set(x_197, 1, x_196); -x_198 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_198, 0, x_197); -if (lean::is_scalar(x_189)) { - x_199 = lean::alloc_cnstr(1, 1, 0); -} else { - x_199 = x_189; -} -lean::cnstr_set(x_199, 0, x_198); -x_7 = x_199; +lean::cnstr_set(x_196, 0, x_193); +x_7 = x_196; x_8 = x_190; goto lbl_9; } +else +{ +obj* x_197; obj* x_198; obj* x_200; obj* x_201; obj* x_202; obj* x_203; obj* x_204; obj* x_205; obj* x_206; +if (lean::is_exclusive(x_180)) { + lean::cnstr_release(x_180, 0); + x_197 = x_180; +} else { + lean::dec(x_180); + x_197 = lean::box(0); +} +x_198 = lean::cnstr_get(x_179, 1); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + x_200 = x_179; +} else { + lean::inc(x_198); + lean::dec(x_179); + x_200 = lean::box(0); +} +if (lean::is_scalar(x_200)) { + x_201 = lean::alloc_cnstr(0, 2, 0); +} else { + x_201 = x_200; +} +lean::cnstr_set(x_201, 0, x_25); +lean::cnstr_set(x_201, 1, x_3); +if (lean::is_scalar(x_175)) { + x_202 = lean::alloc_cnstr(0, 2, 0); +} else { + x_202 = x_175; +} +lean::cnstr_set(x_202, 0, x_22); +lean::cnstr_set(x_202, 1, x_201); +if (lean::is_scalar(x_160)) { + x_203 = lean::alloc_cnstr(0, 2, 0); +} else { + x_203 = x_160; +} +lean::cnstr_set(x_203, 0, x_19); +lean::cnstr_set(x_203, 1, x_202); +if (lean::is_scalar(x_133)) { + x_204 = lean::alloc_cnstr(0, 2, 0); +} else { + x_204 = x_133; +} +lean::cnstr_set(x_204, 0, x_129); +lean::cnstr_set(x_204, 1, x_203); +x_205 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_205, 0, x_204); +if (lean::is_scalar(x_197)) { + x_206 = lean::alloc_cnstr(1, 1, 0); +} else { + x_206 = x_197; +} +lean::cnstr_set(x_206, 0, x_205); +x_7 = x_206; +x_8 = x_198; +goto lbl_9; +} } else { -obj* x_200; obj* x_202; obj* x_203; obj* x_207; obj* x_208; -x_200 = lean::cnstr_get(x_158, 1); -if (lean::is_exclusive(x_158)) { - lean::cnstr_release(x_158, 0); - lean::cnstr_set(x_158, 1, lean::box(0)); - x_202 = x_158; +obj* x_208; obj* x_210; obj* x_211; obj* x_214; obj* x_215; +lean::dec(x_3); +x_208 = lean::cnstr_get(x_165, 1); +if (lean::is_exclusive(x_165)) { + lean::cnstr_release(x_165, 0); + lean::cnstr_set(x_165, 1, lean::box(0)); + x_210 = x_165; } else { - lean::inc(x_200); - lean::dec(x_158); - x_202 = lean::box(0); + lean::inc(x_208); + lean::dec(x_165); + x_210 = lean::box(0); } -x_203 = lean::cnstr_get(x_159, 0); -lean::inc(x_203); -lean::dec(x_159); -lean::inc(x_0); -x_207 = lean::apply_2(x_0, x_203, x_200); -x_208 = lean::cnstr_get(x_207, 0); -lean::inc(x_208); -if (lean::obj_tag(x_208) == 0) +x_211 = lean::cnstr_get(x_166, 0); +lean::inc(x_211); +lean::dec(x_166); +x_214 = lean::apply_2(x_0, x_211, x_208); +x_215 = lean::cnstr_get(x_214, 0); +lean::inc(x_215); +if (lean::obj_tag(x_215) == 0) { -obj* x_219; obj* x_222; obj* x_224; obj* x_225; -lean::dec(x_202); +obj* x_226; obj* x_229; obj* x_231; obj* x_232; +lean::dec(x_210); lean::dec(x_25); lean::dec(x_27); lean::dec(x_19); lean::dec(x_22); -lean::dec(x_153); -lean::dec(x_122); -lean::dec(x_125); +lean::dec(x_160); +lean::dec(x_126); +lean::dec(x_133); lean::dec(x_129); -x_219 = lean::cnstr_get(x_207, 1); -lean::inc(x_219); -lean::dec(x_207); -x_222 = lean::cnstr_get(x_208, 0); -if (lean::is_exclusive(x_208)) { - x_224 = x_208; +x_226 = lean::cnstr_get(x_214, 1); +lean::inc(x_226); +lean::dec(x_214); +x_229 = lean::cnstr_get(x_215, 0); +if (lean::is_exclusive(x_215)) { + x_231 = x_215; } else { - lean::inc(x_222); - lean::dec(x_208); - x_224 = lean::box(0); + lean::inc(x_229); + lean::dec(x_215); + x_231 = lean::box(0); } -if (lean::is_scalar(x_224)) { - x_225 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_231)) { + x_232 = lean::alloc_cnstr(0, 1, 0); } else { - x_225 = x_224; + x_232 = x_231; } -lean::cnstr_set(x_225, 0, x_222); -x_7 = x_225; -x_8 = x_219; +lean::cnstr_set(x_232, 0, x_229); +x_7 = x_232; +x_8 = x_226; goto lbl_9; } else { -obj* x_226; obj* x_227; obj* x_229; obj* x_230; obj* x_231; obj* x_232; obj* x_233; obj* x_234; obj* x_235; obj* x_236; -if (lean::is_exclusive(x_208)) { - lean::cnstr_release(x_208, 0); - x_226 = x_208; +obj* x_233; obj* x_234; obj* x_236; obj* x_237; obj* x_238; obj* x_239; obj* x_240; obj* x_241; obj* x_242; obj* x_243; +if (lean::is_exclusive(x_215)) { + lean::cnstr_release(x_215, 0); + x_233 = x_215; } else { - lean::dec(x_208); - x_226 = lean::box(0); + lean::dec(x_215); + x_233 = lean::box(0); } -x_227 = lean::cnstr_get(x_207, 1); -if (lean::is_exclusive(x_207)) { - lean::cnstr_release(x_207, 0); - x_229 = x_207; +x_234 = lean::cnstr_get(x_214, 1); +if (lean::is_exclusive(x_214)) { + lean::cnstr_release(x_214, 0); + x_236 = x_214; } else { - lean::inc(x_227); - lean::dec(x_207); - x_229 = lean::box(0); + lean::inc(x_234); + lean::dec(x_214); + x_236 = lean::box(0); } -x_230 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_230, 0, x_122); -lean::cnstr_set(x_230, 1, x_27); -if (lean::is_scalar(x_229)) { - x_231 = lean::alloc_cnstr(0, 2, 0); +x_237 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_237, 0, x_126); +lean::cnstr_set(x_237, 1, x_27); +if (lean::is_scalar(x_236)) { + x_238 = lean::alloc_cnstr(0, 2, 0); } else { - x_231 = x_229; + x_238 = x_236; } -lean::cnstr_set(x_231, 0, x_25); -lean::cnstr_set(x_231, 1, x_230); -if (lean::is_scalar(x_202)) { - x_232 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_238, 0, x_25); +lean::cnstr_set(x_238, 1, x_237); +if (lean::is_scalar(x_210)) { + x_239 = lean::alloc_cnstr(0, 2, 0); } else { - x_232 = x_202; + x_239 = x_210; } -lean::cnstr_set(x_232, 0, x_22); -lean::cnstr_set(x_232, 1, x_231); -if (lean::is_scalar(x_153)) { - x_233 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_239, 0, x_22); +lean::cnstr_set(x_239, 1, x_238); +if (lean::is_scalar(x_160)) { + x_240 = lean::alloc_cnstr(0, 2, 0); } else { - x_233 = x_153; + x_240 = x_160; } -lean::cnstr_set(x_233, 0, x_19); -lean::cnstr_set(x_233, 1, x_232); -if (lean::is_scalar(x_129)) { - x_234 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_240, 0, x_19); +lean::cnstr_set(x_240, 1, x_239); +if (lean::is_scalar(x_133)) { + x_241 = lean::alloc_cnstr(0, 2, 0); } else { - x_234 = x_129; + x_241 = x_133; } -lean::cnstr_set(x_234, 0, x_125); -lean::cnstr_set(x_234, 1, x_233); -x_235 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_235, 0, x_234); -if (lean::is_scalar(x_226)) { - x_236 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_241, 0, x_129); +lean::cnstr_set(x_241, 1, x_240); +x_242 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_242, 0, x_241); +if (lean::is_scalar(x_233)) { + x_243 = lean::alloc_cnstr(1, 1, 0); } else { - x_236 = x_226; + x_243 = x_233; } -lean::cnstr_set(x_236, 0, x_235); -x_7 = x_236; -x_8 = x_227; +lean::cnstr_set(x_243, 0, x_242); +x_7 = x_243; +x_8 = x_234; goto lbl_9; } } } else { -obj* x_240; obj* x_242; obj* x_243; obj* x_245; obj* x_248; obj* x_249; obj* x_250; obj* x_252; obj* x_254; obj* x_256; obj* x_257; obj* x_259; obj* x_261; obj* x_262; obj* x_264; obj* x_266; obj* x_267; obj* x_269; +obj* x_247; obj* x_249; obj* x_250; obj* x_252; obj* x_254; obj* x_255; obj* x_256; obj* x_258; obj* x_260; obj* x_262; obj* x_263; obj* x_265; obj* x_266; obj* x_267; obj* x_269; obj* x_271; obj* x_272; obj* x_274; lean::dec(x_25); lean::dec(x_22); -lean::dec(x_129); -x_240 = lean::cnstr_get(x_158, 1); -if (lean::is_exclusive(x_158)) { - lean::cnstr_release(x_158, 0); - lean::cnstr_set(x_158, 1, lean::box(0)); - x_242 = x_158; +lean::dec(x_133); +x_247 = lean::cnstr_get(x_165, 1); +if (lean::is_exclusive(x_165)) { + lean::cnstr_release(x_165, 0); + lean::cnstr_set(x_165, 1, lean::box(0)); + x_249 = x_165; } else { - lean::inc(x_240); - lean::dec(x_158); - x_242 = lean::box(0); + lean::inc(x_247); + lean::dec(x_165); + x_249 = lean::box(0); } -x_243 = lean::cnstr_get(x_159, 0); -if (lean::is_exclusive(x_159)) { - lean::cnstr_set(x_159, 0, lean::box(0)); - x_245 = x_159; +x_250 = lean::cnstr_get(x_166, 0); +if (lean::is_exclusive(x_166)) { + lean::cnstr_set(x_166, 0, lean::box(0)); + x_252 = x_166; } else { - lean::inc(x_243); - lean::dec(x_159); - x_245 = lean::box(0); + lean::inc(x_250); + lean::dec(x_166); + x_252 = lean::box(0); } -lean::inc(x_243); -lean::inc(x_3); -x_248 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3___boxed), 4, 3); -lean::closure_set(x_248, 0, x_3); -lean::closure_set(x_248, 1, x_19); -lean::closure_set(x_248, 2, x_243); -x_249 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3; -x_250 = l_lean_profileit__pure___rarg(x_249, x_46, x_248, x_240); +lean::inc(x_250); +x_254 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3___boxed), 4, 3); +lean::closure_set(x_254, 0, x_4); +lean::closure_set(x_254, 1, x_19); +lean::closure_set(x_254, 2, x_250); +x_255 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3; +x_256 = l_lean_profileit__pure___rarg(x_255, x_46, x_254, x_247); lean::dec(x_46); -x_252 = lean::cnstr_get(x_250, 0); -x_254 = lean::cnstr_get(x_250, 1); -if (lean::is_exclusive(x_250)) { - lean::cnstr_set(x_250, 0, lean::box(0)); - lean::cnstr_set(x_250, 1, lean::box(0)); - x_256 = x_250; +x_258 = lean::cnstr_get(x_256, 0); +x_260 = lean::cnstr_get(x_256, 1); +if (lean::is_exclusive(x_256)) { + lean::cnstr_set(x_256, 0, lean::box(0)); + lean::cnstr_set(x_256, 1, lean::box(0)); + x_262 = x_256; } else { - lean::inc(x_252); - lean::inc(x_254); - lean::dec(x_250); - x_256 = lean::box(0); + lean::inc(x_258); + lean::inc(x_260); + lean::dec(x_256); + x_262 = lean::box(0); } -x_257 = lean::cnstr_get(x_252, 5); -lean::inc(x_257); -x_259 = l_list_reverse___rarg(x_257); -lean::inc(x_0); -x_261 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__4(x_0, x_259, x_254); -x_262 = lean::cnstr_get(x_261, 0); -x_264 = lean::cnstr_get(x_261, 1); -if (lean::is_exclusive(x_261)) { - lean::cnstr_set(x_261, 0, lean::box(0)); - lean::cnstr_set(x_261, 1, lean::box(0)); - x_266 = x_261; +x_263 = lean::cnstr_get(x_258, 5); +lean::inc(x_263); +x_265 = l_list_reverse___rarg(x_263); +x_266 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__4(x_0, x_265, x_260); +x_267 = lean::cnstr_get(x_266, 0); +x_269 = lean::cnstr_get(x_266, 1); +if (lean::is_exclusive(x_266)) { + lean::cnstr_set(x_266, 0, lean::box(0)); + lean::cnstr_set(x_266, 1, lean::box(0)); + x_271 = x_266; } else { - lean::inc(x_262); - lean::inc(x_264); - lean::dec(x_261); - x_266 = lean::box(0); + lean::inc(x_267); + lean::inc(x_269); + lean::dec(x_266); + x_271 = lean::box(0); } -if (lean::obj_tag(x_262) == 0) +if (lean::obj_tag(x_267) == 0) { -obj* x_282; obj* x_284; obj* x_285; -lean::dec(x_252); -lean::dec(x_242); -lean::dec(x_243); -lean::dec(x_245); -lean::dec(x_27); -lean::dec(x_266); -lean::dec(x_256); -lean::dec(x_153); -lean::dec(x_150); -lean::dec(x_122); -lean::dec(x_125); -x_282 = lean::cnstr_get(x_262, 0); -if (lean::is_exclusive(x_262)) { - x_284 = x_262; -} else { - lean::inc(x_282); - lean::dec(x_262); - x_284 = lean::box(0); -} -if (lean::is_scalar(x_284)) { - x_285 = lean::alloc_cnstr(0, 1, 0); -} else { - x_285 = x_284; -} -lean::cnstr_set(x_285, 0, x_282); -x_7 = x_285; -x_8 = x_264; -goto lbl_9; -} -else -{ -obj* x_287; uint8 x_288; +obj* x_288; obj* x_290; obj* x_291; +lean::dec(x_249); +lean::dec(x_258); lean::dec(x_262); -x_287 = l_lean_parser_module_eoi; -x_288 = l_lean_parser_syntax_is__of__kind___main(x_287, x_243); -lean::dec(x_243); -if (x_288 == 0) -{ -obj* x_291; -lean::dec(x_150); -x_291 = lean::box(0); -x_267 = x_291; -goto lbl_268; -} -else -{ -obj* x_299; lean::dec(x_252); -lean::dec(x_242); -lean::dec(x_245); -lean::dec(x_266); -lean::dec(x_256); -lean::dec(x_153); -lean::dec(x_125); -x_299 = lean::box(0); -x_269 = x_299; -goto lbl_270; +lean::dec(x_27); +lean::dec(x_3); +lean::dec(x_250); +lean::dec(x_271); +lean::dec(x_157); +lean::dec(x_160); +lean::dec(x_126); +lean::dec(x_129); +x_288 = lean::cnstr_get(x_267, 0); +if (lean::is_exclusive(x_267)) { + x_290 = x_267; +} else { + lean::inc(x_288); + lean::dec(x_267); + x_290 = lean::box(0); } +if (lean::is_scalar(x_290)) { + x_291 = lean::alloc_cnstr(0, 1, 0); +} else { + x_291 = x_290; } -lbl_268: +lean::cnstr_set(x_291, 0, x_288); +x_7 = x_291; +x_8 = x_269; +goto lbl_9; +} +else { +obj* x_293; uint8 x_294; lean::dec(x_267); -if (x_1 == 0) +x_293 = l_lean_parser_module_eoi; +x_294 = l_lean_parser_syntax_is__of__kind___main(x_293, x_250); +lean::dec(x_250); +if (x_294 == 0) { -obj* x_303; obj* x_305; obj* x_308; obj* x_309; obj* x_310; obj* x_311; obj* x_312; obj* x_313; +obj* x_297; +lean::dec(x_157); +x_297 = lean::box(0); +x_272 = x_297; +goto lbl_273; +} +else +{ +obj* x_305; +lean::dec(x_249); +lean::dec(x_258); +lean::dec(x_262); +lean::dec(x_252); +lean::dec(x_271); +lean::dec(x_160); +lean::dec(x_129); +x_305 = lean::box(0); +x_274 = x_305; +goto lbl_275; +} +} +lbl_273: +{ +lean::dec(x_272); +if (x_2 == 0) +{ +obj* x_309; obj* x_311; obj* x_313; obj* x_314; obj* x_315; obj* x_316; obj* x_317; obj* x_318; lean::dec(x_27); -lean::dec(x_122); -x_303 = lean::cnstr_get(x_252, 6); -lean::inc(x_303); -x_305 = lean::cnstr_get(x_252, 7); -lean::inc(x_305); -lean::inc(x_4); -if (lean::is_scalar(x_266)) { - x_308 = lean::alloc_cnstr(0, 2, 0); +lean::dec(x_126); +x_309 = lean::cnstr_get(x_258, 6); +lean::inc(x_309); +x_311 = lean::cnstr_get(x_258, 7); +lean::inc(x_311); +if (lean::is_scalar(x_271)) { + x_313 = lean::alloc_cnstr(0, 2, 0); } else { - x_308 = x_266; + x_313 = x_271; } -lean::cnstr_set(x_308, 0, x_305); -lean::cnstr_set(x_308, 1, x_4); -if (lean::is_scalar(x_256)) { - x_309 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_313, 0, x_311); +lean::cnstr_set(x_313, 1, x_3); +if (lean::is_scalar(x_262)) { + x_314 = lean::alloc_cnstr(0, 2, 0); } else { - x_309 = x_256; + x_314 = x_262; } -lean::cnstr_set(x_309, 0, x_303); -lean::cnstr_set(x_309, 1, x_308); -if (lean::is_scalar(x_242)) { - x_310 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_314, 0, x_309); +lean::cnstr_set(x_314, 1, x_313); +if (lean::is_scalar(x_249)) { + x_315 = lean::alloc_cnstr(0, 2, 0); } else { - x_310 = x_242; + x_315 = x_249; } -lean::cnstr_set(x_310, 0, x_252); -lean::cnstr_set(x_310, 1, x_309); -if (lean::is_scalar(x_153)) { - x_311 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_315, 0, x_258); +lean::cnstr_set(x_315, 1, x_314); +if (lean::is_scalar(x_160)) { + x_316 = lean::alloc_cnstr(0, 2, 0); } else { - x_311 = x_153; + x_316 = x_160; } -lean::cnstr_set(x_311, 0, x_125); -lean::cnstr_set(x_311, 1, x_310); -x_312 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_312, 0, x_311); -if (lean::is_scalar(x_245)) { - x_313 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_316, 0, x_129); +lean::cnstr_set(x_316, 1, x_315); +x_317 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_317, 0, x_316); +if (lean::is_scalar(x_252)) { + x_318 = lean::alloc_cnstr(1, 1, 0); } else { - x_313 = x_245; + x_318 = x_252; } -lean::cnstr_set(x_313, 0, x_312); -x_7 = x_313; -x_8 = x_264; +lean::cnstr_set(x_318, 0, x_317); +x_7 = x_318; +x_8 = x_269; goto lbl_9; } else { -obj* x_314; obj* x_316; obj* x_318; obj* x_319; obj* x_320; obj* x_321; obj* x_322; obj* x_323; obj* x_324; -x_314 = lean::cnstr_get(x_252, 6); -lean::inc(x_314); -x_316 = lean::cnstr_get(x_252, 7); -lean::inc(x_316); -x_318 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_318, 0, x_122); -lean::cnstr_set(x_318, 1, x_27); -if (lean::is_scalar(x_266)) { - x_319 = lean::alloc_cnstr(0, 2, 0); +obj* x_320; obj* x_322; obj* x_324; obj* x_325; obj* x_326; obj* x_327; obj* x_328; obj* x_329; obj* x_330; +lean::dec(x_3); +x_320 = lean::cnstr_get(x_258, 6); +lean::inc(x_320); +x_322 = lean::cnstr_get(x_258, 7); +lean::inc(x_322); +x_324 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_324, 0, x_126); +lean::cnstr_set(x_324, 1, x_27); +if (lean::is_scalar(x_271)) { + x_325 = lean::alloc_cnstr(0, 2, 0); } else { - x_319 = x_266; + x_325 = x_271; } -lean::cnstr_set(x_319, 0, x_316); -lean::cnstr_set(x_319, 1, x_318); -if (lean::is_scalar(x_256)) { - x_320 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_325, 0, x_322); +lean::cnstr_set(x_325, 1, x_324); +if (lean::is_scalar(x_262)) { + x_326 = lean::alloc_cnstr(0, 2, 0); } else { - x_320 = x_256; + x_326 = x_262; } -lean::cnstr_set(x_320, 0, x_314); -lean::cnstr_set(x_320, 1, x_319); -if (lean::is_scalar(x_242)) { - x_321 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_326, 0, x_320); +lean::cnstr_set(x_326, 1, x_325); +if (lean::is_scalar(x_249)) { + x_327 = lean::alloc_cnstr(0, 2, 0); } else { - x_321 = x_242; + x_327 = x_249; } -lean::cnstr_set(x_321, 0, x_252); -lean::cnstr_set(x_321, 1, x_320); -if (lean::is_scalar(x_153)) { - x_322 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_327, 0, x_258); +lean::cnstr_set(x_327, 1, x_326); +if (lean::is_scalar(x_160)) { + x_328 = lean::alloc_cnstr(0, 2, 0); } else { - x_322 = x_153; + x_328 = x_160; } -lean::cnstr_set(x_322, 0, x_125); -lean::cnstr_set(x_322, 1, x_321); -x_323 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_323, 0, x_322); -if (lean::is_scalar(x_245)) { - x_324 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_328, 0, x_129); +lean::cnstr_set(x_328, 1, x_327); +x_329 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_329, 0, x_328); +if (lean::is_scalar(x_252)) { + x_330 = lean::alloc_cnstr(1, 1, 0); } else { - x_324 = x_245; + x_330 = x_252; } -lean::cnstr_set(x_324, 0, x_323); -x_7 = x_324; -x_8 = x_264; -goto lbl_9; -} -} -lbl_270: -{ -lean::dec(x_269); -if (x_1 == 0) -{ -obj* x_329; obj* x_330; obj* x_331; -lean::dec(x_27); -lean::dec(x_122); -lean::inc(x_4); -x_329 = l_list_reverse___rarg(x_4); -x_330 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_330, 0, x_329); -if (lean::is_scalar(x_150)) { - x_331 = lean::alloc_cnstr(1, 1, 0); -} else { - x_331 = x_150; +x_7 = x_330; +x_8 = x_269; +goto lbl_9; } -lean::cnstr_set(x_331, 0, x_330); -x_7 = x_331; -x_8 = x_264; +} +lbl_275: +{ +lean::dec(x_274); +if (x_2 == 0) +{ +obj* x_334; obj* x_335; obj* x_336; +lean::dec(x_27); +lean::dec(x_126); +x_334 = l_list_reverse___rarg(x_3); +x_335 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_335, 0, x_334); +if (lean::is_scalar(x_157)) { + x_336 = lean::alloc_cnstr(1, 1, 0); +} else { + x_336 = x_157; +} +lean::cnstr_set(x_336, 0, x_335); +x_7 = x_336; +x_8 = x_269; goto lbl_9; } else { -obj* x_332; obj* x_333; obj* x_334; obj* x_335; -x_332 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_332, 0, x_122); -lean::cnstr_set(x_332, 1, x_27); -x_333 = l_list_reverse___rarg(x_332); -x_334 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_334, 0, x_333); -if (lean::is_scalar(x_150)) { - x_335 = lean::alloc_cnstr(1, 1, 0); +obj* x_338; obj* x_339; obj* x_340; obj* x_341; +lean::dec(x_3); +x_338 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_338, 0, x_126); +lean::cnstr_set(x_338, 1, x_27); +x_339 = l_list_reverse___rarg(x_338); +x_340 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_340, 0, x_339); +if (lean::is_scalar(x_157)) { + x_341 = lean::alloc_cnstr(1, 1, 0); } else { - x_335 = x_150; + x_341 = x_157; } -lean::cnstr_set(x_335, 0, x_334); -x_7 = x_335; -x_8 = x_264; +lean::cnstr_set(x_341, 0, x_340); +x_7 = x_341; +x_8 = x_269; goto lbl_9; } } @@ -1331,79 +1340,96 @@ lbl_9: { if (lean::obj_tag(x_7) == 0) { -obj* x_340; obj* x_342; obj* x_343; obj* x_344; -lean::dec(x_4); -lean::dec(x_3); -lean::dec(x_0); -lean::dec(x_2); -x_340 = lean::cnstr_get(x_7, 0); +obj* x_342; obj* x_344; obj* x_345; obj* x_346; obj* x_347; +x_342 = lean::cnstr_get(x_7, 0); if (lean::is_exclusive(x_7)) { - x_342 = x_7; + x_344 = x_7; } else { - lean::inc(x_340); + lean::inc(x_342); lean::dec(x_7); - x_342 = lean::box(0); + x_344 = lean::box(0); } -if (lean::is_scalar(x_342)) { - x_343 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_344)) { + x_345 = lean::alloc_cnstr(0, 1, 0); } else { - x_343 = x_342; + x_345 = x_344; } -lean::cnstr_set(x_343, 0, x_340); -x_344 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_344, 0, x_343); -lean::cnstr_set(x_344, 1, x_8); -return x_344; +lean::cnstr_set(x_345, 0, x_342); +x_346 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_346, 0, x_345); +x_347 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_347, 0, x_346); +lean::cnstr_set(x_347, 1, x_8); +return x_347; } else { -obj* x_345; obj* x_347; -x_345 = lean::cnstr_get(x_7, 0); +obj* x_348; obj* x_350; +x_348 = lean::cnstr_get(x_7, 0); if (lean::is_exclusive(x_7)) { lean::cnstr_set(x_7, 0, lean::box(0)); - x_347 = x_7; + x_350 = x_7; } else { - lean::inc(x_345); + lean::inc(x_348); lean::dec(x_7); - x_347 = lean::box(0); + x_350 = lean::box(0); } -if (lean::obj_tag(x_345) == 0) +if (lean::obj_tag(x_348) == 0) { -obj* x_349; -lean::dec(x_347); -x_349 = lean::cnstr_get(x_345, 0); -lean::inc(x_349); -lean::dec(x_345); -x_5 = x_349; -x_6 = x_8; -goto _start; +obj* x_352; obj* x_354; obj* x_355; obj* x_356; +lean::dec(x_350); +x_352 = lean::cnstr_get(x_348, 0); +if (lean::is_exclusive(x_348)) { + x_354 = x_348; +} else { + lean::inc(x_352); + lean::dec(x_348); + x_354 = lean::box(0); +} +if (lean::is_scalar(x_354)) { + x_355 = lean::alloc_cnstr(0, 1, 0); +} else { + x_355 = x_354; +} +lean::cnstr_set(x_355, 0, x_352); +x_356 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_356, 0, x_355); +lean::cnstr_set(x_356, 1, x_8); +return x_356; } else { -obj* x_357; obj* x_360; obj* x_361; -lean::dec(x_4); -lean::dec(x_3); -lean::dec(x_0); -lean::dec(x_2); -x_357 = lean::cnstr_get(x_345, 0); -lean::inc(x_357); -lean::dec(x_345); -if (lean::is_scalar(x_347)) { +obj* x_357; obj* x_359; obj* x_360; obj* x_361; obj* x_362; +x_357 = lean::cnstr_get(x_348, 0); +if (lean::is_exclusive(x_348)) { + x_359 = x_348; +} else { + lean::inc(x_357); + lean::dec(x_348); + x_359 = lean::box(0); +} +if (lean::is_scalar(x_350)) { x_360 = lean::alloc_cnstr(1, 1, 0); } else { - x_360 = x_347; + x_360 = x_350; } lean::cnstr_set(x_360, 0, x_357); -x_361 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_359)) { + x_361 = lean::alloc_cnstr(1, 1, 0); +} else { + x_361 = x_359; +} lean::cnstr_set(x_361, 0, x_360); -lean::cnstr_set(x_361, 1, x_8); -return x_361; +x_362 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_362, 0, x_361); +lean::cnstr_set(x_362, 1, x_8); +return x_362; } } } } } -obj* _init_l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1() { +obj* _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1() { _start: { obj* x_0; obj* x_1; obj* x_2; obj* x_3; obj* x_4; obj* x_5; uint8 x_6; obj* x_7; @@ -1418,10 +1444,10 @@ x_7 = l_lean_kvmap_set__bool(x_5, x_4, x_6); return x_7; } } -obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(obj* x_0, uint8 x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6(obj* x_0, uint8 x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { -obj* x_8; obj* x_10; obj* x_13; obj* x_16; obj* x_17; obj* x_18; obj* x_20; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +obj* x_8; obj* x_10; obj* x_13; obj* x_16; obj* x_17; obj* x_18; obj* x_20; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; x_8 = lean::cnstr_get(x_2, 0); lean::inc(x_8); x_10 = lean::cnstr_get(x_8, 0); @@ -1434,7 +1460,7 @@ x_16 = l_lean_expander_builtin__transformers; x_17 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_17, 0, x_13); lean::cnstr_set(x_17, 1, x_16); -x_18 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1; +x_18 = l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1; lean::inc(x_6); x_20 = l_lean_elaborator_mk__state(x_6, x_18); lean::inc(x_7); @@ -1450,8 +1476,25 @@ lean::cnstr_set(x_24, 1, x_23); x_25 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_25, 0, x_3); lean::cnstr_set(x_25, 1, x_24); -x_26 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6(x_0, x_1, x_4, x_6, x_7, x_25, x_5); -return x_26; +x_26 = lean::box(x_1); +x_27 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___boxed), 7, 5); +lean::closure_set(x_27, 0, x_0); +lean::closure_set(x_27, 1, x_4); +lean::closure_set(x_27, 2, x_26); +lean::closure_set(x_27, 3, x_7); +lean::closure_set(x_27, 4, x_6); +x_28 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__aux___rarg), 4, 1); +lean::closure_set(x_28, 0, x_27); +x_29 = lean::fixpoint2(x_28, x_25, x_5); +return x_29; +} +} +obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(obj* x_0, uint8 x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +_start: +{ +obj* x_8; +x_8 = l_io_prim_iterate___at_lean_run__frontend___spec__6(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_8; } } obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5(obj* x_0, obj* x_1) { @@ -1707,7 +1750,7 @@ x_105 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_105, 0, x_103); lean::cnstr_set(x_105, 1, x_29); x_106 = lean::box(0); -x_107 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(x_2, x_3, x_29, x_63, x_68, x_89, x_105, x_106); +x_107 = l_io_prim_iterate___at_lean_run__frontend___spec__6(x_2, x_3, x_29, x_63, x_68, x_89, x_105, x_106); return x_107; } } @@ -1715,42 +1758,51 @@ return x_107; } } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1(x_0, x_1, x_2); +x_3 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__1(x_0, x_1, x_2); lean::dec(x_2); return x_3; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__2(x_0, x_1, x_2); +x_3 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__2(x_0, x_1, x_2); lean::dec(x_2); return x_3; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__3(x_0, x_1, x_2, x_3); +x_4 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__3(x_0, x_1, x_2, x_3); lean::dec(x_3); return x_4; } } -obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { uint8 x_7; obj* x_8; -x_7 = lean::unbox(x_1); -x_8 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6(x_0, x_7, x_2, x_3, x_4, x_5, x_6); +x_7 = lean::unbox(x_2); +x_8 = l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4(x_0, x_1, x_7, x_3, x_4, x_5, x_6); return x_8; } } +obj* l_io_prim_iterate___at_lean_run__frontend___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +_start: +{ +uint8 x_8; obj* x_9; +x_8 = lean::unbox(x_1); +x_9 = l_io_prim_iterate___at_lean_run__frontend___spec__6(x_0, x_8, x_2, x_3, x_4, x_5, x_6, x_7); +return x_9; +} +} obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { @@ -2333,14 +2385,14 @@ void initialize_init_lean_frontend() { initialize_init_io(); l_list_mmap_x_27___main___at_lean_run__frontend___spec__1___closed__1 = _init_l_list_mmap_x_27___main___at_lean_run__frontend___spec__1___closed__1(); lean::mark_persistent(l_list_mmap_x_27___main___at_lean_run__frontend___spec__1___closed__1); - l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1 = _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1(); -lean::mark_persistent(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1); - l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2 = _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2(); -lean::mark_persistent(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2); - l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3 = _init_l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3(); -lean::mark_persistent(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3); - l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1 = _init_l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1(); -lean::mark_persistent(l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1); + l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1 = _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1(); +lean::mark_persistent(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__1); + l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2 = _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2(); +lean::mark_persistent(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__2); + l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3 = _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3(); +lean::mark_persistent(l_io_prim_iterate___at_lean_run__frontend___spec__6___lambda__4___closed__3); + l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1 = _init_l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1(); +lean::mark_persistent(l_io_prim_iterate___at_lean_run__frontend___spec__6___closed__1); l_lean_process__file___lambda__1___closed__1 = _init_l_lean_process__file___lambda__1___closed__1(); lean::mark_persistent(l_lean_process__file___lambda__1___closed__1); l_lean_process__file___lambda__1___closed__2 = _init_l_lean_process__file___lambda__1___closed__2();