From 907627ee9ebafafdfb627d5deacfe3df407f7f94 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 12 Mar 2019 14:11:27 -0700 Subject: [PATCH] chore(boot): update --- src/boot/init/lean/compiler/ir.cpp | 4 +- src/boot/init/lean/elaborator.cpp | 10396 ++++++++++---------- src/boot/init/lean/expander.cpp | 5063 +++++----- src/boot/init/lean/frontend.cpp | 1605 ++- src/boot/init/lean/name.cpp | 2175 ++-- src/boot/init/lean/parser/basic.cpp | 2184 ++-- src/boot/init/lean/parser/combinators.cpp | 184 +- src/boot/init/lean/parser/command.cpp | 64 +- src/boot/init/lean/parser/declaration.cpp | 7204 +++++++------- src/boot/init/lean/parser/parsec.cpp | 124 +- src/boot/init/lean/parser/term.cpp | 914 +- src/boot/init/lean/parser/token.cpp | 2750 +++--- src/boot/init/lean/parser/trie.cpp | 42 +- src/boot/init/lean/position.cpp | 371 +- src/boot/init/lean/trace.cpp | 355 +- 15 files changed, 15927 insertions(+), 17508 deletions(-) diff --git a/src/boot/init/lean/compiler/ir.cpp b/src/boot/init/lean/compiler/ir.cpp index 9d6ece3afc..c88198a571 100644 --- a/src/boot/init/lean/compiler/ir.cpp +++ b/src/boot/init/lean/compiler/ir.cpp @@ -15,7 +15,7 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif uint8 l_lean_ir_alts_is__pure(obj*); -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_ir_insert__params___spec__1(obj*, obj*); uint8 l_lean_ir_ctor__info_beq___main(obj*, obj*); obj* l_lean_ir_expr_has__aeqv; @@ -837,7 +837,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } diff --git a/src/boot/init/lean/elaborator.cpp b/src/boot/init/lean/elaborator.cpp index 9877e2ff66..448c4f46a9 100644 --- a/src/boot/init/lean/elaborator.cpp +++ b/src/boot/init/lean/elaborator.cpp @@ -14,9 +14,9 @@ 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_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___boxed(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_token__map_insert___rarg(obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_eoi_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_to__pexpr___main___spec__24(obj*, obj*); obj* l_list_mfilter___main___at_lean_elaborator_variables_elaborate___spec__9___lambda__1___boxed(obj*, obj*, obj*, obj*); @@ -25,16 +25,15 @@ obj* l_lean_elaborator_section_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_modify__current__scope___boxed(obj*, obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_insert___spec__1___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr___closed__1; -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__4(obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__8___closed__1; -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_modify__current__scope(obj*, obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_elaborator_ordered__rbmap_find___spec__1___boxed(obj*, obj*, obj*); extern obj* l_lean_parser_command_variables; -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___rarg(obj*, obj*, obj*); extern "C" obj* lean_expr_mk_pi(obj*, uint8, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___boxed(obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_module_header_elaborate___closed__1; obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_elab__def__like___spec__4(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__19(obj*, obj*, obj*, obj*); @@ -46,23 +45,21 @@ obj* l_lean_elaborator_level__get__app__args___main___closed__1; obj* l_list_filter___main___at_lean_elaborator_resolve__context___main___spec__4___boxed(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_simple__binders__to__pexpr___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_elaborator_process__command___spec__3(obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___boxed(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_level__get__app__args___main(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__3___closed__1; obj* l_lean_elaborator_elab__def__like(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_ordered__rbmap_of__list___spec__7___boxed(obj*, obj*, obj*); obj* l_id___boxed(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(obj*, obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_process__command___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*); extern "C" obj* lean_expr_mk_sort(obj*); obj* l_lean_elaborator_ordered__rbmap_of__list___at_lean_elaborator_old__elab__command___spec__1(obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_attrs__to__pexpr(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_attrs__to__pexpr___spec__2___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_attribute_has__view; obj* l_lean_elaborator_namespace_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_process__command___spec__2(obj*); @@ -71,14 +68,14 @@ obj* l_lean_elaborator_match__spec___closed__1; obj* l_lean_elaborator_resolve__context___main___closed__1; obj* l_lean_elaborator_init__quot_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_open_elaborate___lambda__1(obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_of__list___rarg(obj*, obj*); extern obj* l_lean_parser_level_leading_has__view; extern obj* l_lean_parser_command_reserve__notation_has__view; obj* l_lean_elaborator_notation_elaborate___closed__1; obj* l_list_foldl___main___at_lean_expr_mk__app___spec__1(obj*, obj*); obj* l_lean_elaborator_current__scope___closed__1; -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___boxed(obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_resolve__context___main___boxed(obj*, obj*, obj*, obj*); obj* l_list_mfoldl___main___at_lean_elaborator_update__parser__config___spec__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_set__option_elaborate___boxed(obj*, obj*, obj*, obj*); @@ -89,7 +86,7 @@ obj* nat_add(obj*, obj*); } obj* l_list_mmap___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__2___closed__1; obj* l_lean_elaborator_to__level(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___boxed(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__16(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_get__namespace(obj*, obj*, obj*); obj* l_lean_elaborator_no__kind_elaborate___closed__1; @@ -107,16 +104,14 @@ obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__1(obj*, ob obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_to__level___main___spec__5(obj*, obj*); obj* l_lean_elaborator_declaration_elaborate___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_include_elaborate(obj*, obj*, obj*, obj*); uint8 l_list_decidable__mem___main___at_lean_elaborator_is__open__namespace___main___spec__1(obj*, obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_ordered__rbmap_of__list___spec__6___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___rarg(obj*, obj*, obj*); obj* l_list_filter__map___main___rarg(obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__9___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_match_has__view; -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___boxed(obj*, obj*); +obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_insert___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_level__get__app__args(obj*, obj*, obj*, obj*); obj* l_list_span___main___at_lean_elaborator_to__pexpr___main___spec__5(obj*); @@ -124,20 +119,18 @@ obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__9(obj* extern obj* l_lean_parser_command_open; obj* l_lean_elaborator_declaration_elaborate___closed__4; obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_of__list___spec__2(obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_elaborator__config__coe__frontend__config(obj*); obj* l_lean_elaborator_ordered__rbmap_empty___closed__1; obj* l_lean_elaborator_to__pexpr___main___closed__26; obj* l_lean_elaborator_declaration_elaborate___lambda__5___closed__1; obj* l_lean_kvmap_set__string(obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__14(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_elab__def__like___lambda__1(obj*, obj*); obj* l_lean_parser_term_get__leading___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__9(obj*, obj*, obj*, obj*, obj*); obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3(obj*, obj*, 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*, 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_notation_elaborate__aux___closed__1; obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__1___boxed(obj*, obj*, obj*, obj*); @@ -145,10 +138,10 @@ obj* l_lean_elaborator_mk__eqns___closed__2; obj* l_reader__t_lift___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_notation_elaborate__aux___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_current__scope___spec__1(obj*); -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(obj*, obj*, obj*, obj*); +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(obj*, obj*, obj*); obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___boxed(obj*, obj*, obj*); obj* l_list_reverse___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__state___closed__5; obj* l_lean_elaborator_universe_elaborate___boxed(obj*, obj*, obj*, obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); @@ -157,7 +150,7 @@ 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* 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*); obj* l_list_enum__from___main___rarg(obj*, obj*); @@ -167,7 +160,8 @@ obj* l_lean_elaborator_mk__state___closed__6; obj* l_lean_elaborator_variables_elaborate___closed__2; uint8 l_lean_elaborator_match__precedence___main(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__39; -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___boxed(obj*); +extern obj* l_lean_expander_expand__bracketed__binder___main___closed__6; +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_number_view_to__nat___main(obj*); obj* l_list_mmap___main___at_lean_elaborator_to__level___main___spec__1___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_sort_has__view_x_27___lambda__1___closed__4; @@ -175,40 +169,37 @@ obj* l_lean_elaborator_end_elaborate___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_open_has__view; obj* l_lean_elaborator_mk__notation__kind___rarg(obj*); obj* l_lean_elaborator_resolve__context___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___boxed(obj*, obj*, obj*, obj*); uint8 l_lean_parser_syntax_is__of__kind___main(obj*, obj*); extern "C" obj* lean_expr_mk_lit(obj*); obj* l_list_foldl___main___at_lean_elaborator_declaration_elaborate___spec__13(obj*, obj*); extern "C" obj* lean_expr_local(obj*, obj*, obj*, uint8); obj* l_lean_parser_term_simple__binder_view_to__binder__info___main(obj*); -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg(obj*, obj*); extern obj* l_lean_parser_command_set__option; obj* l_rbnode_find___main___at_lean_elaborator_ordered__rbmap_find___spec__2(obj*, obj*); obj* l_list_decidable__mem___main___at_lean_elaborator_is__open__namespace___main___spec__1___boxed(obj*, obj*); obj* l_lean_elaborator_section_elaborate___closed__1; obj* l_lean_elaborator_elab__def__like___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__11(obj*); obj* l_rbnode_find___main___at_lean_elaborator_ordered__rbmap_find___spec__2___rarg(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_expr_mk__annotation___closed__1; obj* l_list_zip___rarg___lambda__1(obj*, obj*); obj* l_lean_parser_command_notation__spec_precedence__term_view_to__nat___main(obj*); -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___boxed(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___boxed(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__2(obj*, obj*, obj*, obj*, 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* 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_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg___boxed(obj*, obj*); obj* l_lean_elaborator_elaborator__m_monad; extern obj* l_lean_expander_builtin__transformers; obj* l_lean_elaborator_declaration_elaborate___closed__2; obj* l_lean_elaborator_eoi_elaborate___closed__1; obj* l_lean_elaborator_declaration_elaborate___closed__5; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_attribute_elaborate___spec__1___closed__2; obj* l_rbmap_find___main___at_lean_elaborator_ordered__rbmap_find___spec__1(obj*, obj*, obj*); obj* l_lean_elaborator_old__elab__command___boxed(obj*, obj*, obj*, obj*, obj*); @@ -221,7 +212,7 @@ obj* l_lean_kvmap_set__name(obj*, obj*, obj*); uint8 l_lean_elaborator_is__open__namespace(obj*, obj*); obj* l_lean_elaborator_to__pexpr___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_elaborators; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___boxed(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_elab__def__like___spec__9(obj*); extern obj* l_lean_parser_string__lit_has__view; obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__8___boxed(obj*, obj*, obj*, obj*); @@ -238,26 +229,24 @@ obj* l_lean_elaborator_resolve__context___main___lambda__1(obj*, obj*); extern obj* l_lean_parser_command_universe_has__view; extern "C" obj* lean_expr_mk_mdata(obj*, obj*); obj* l_state__t_monad__state___rarg(obj*); -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7___boxed(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7___boxed(obj*); extern "C" obj* lean_expr_mk_lambda(obj*, uint8, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___boxed(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___boxed(obj*, obj*, obj*, obj*); obj* l_lean_kvmap_set__nat(obj*, obj*, obj*); obj* l_lean_elaborator_declaration_elaborate(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_elab__def__like___spec__11(obj*); obj* l_list_mmap___main___at_lean_elaborator_to__level___main___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__level___main___closed__4; obj* l_lean_elaborator_check_elaborate___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___boxed(obj*, obj*, obj*); extern obj* l_lean_parser_command_include; -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg(obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__8(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_set__option_elaborate___lambda__1(obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_declaration_elaborate___spec__6(obj*, obj*); obj* l_coe___at_lean_elaborator_command__parser__config_register__notation__parser___spec__4(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__13(obj*, obj*, obj*, obj*, obj*); obj* l_lean_environment_contains___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_name_to__string___closed__1; obj* l_lean_elaborator_notation_elaborate___boxed(obj*, obj*, obj*, obj*); namespace lean { @@ -270,22 +259,21 @@ obj* l_lean_elaborator_mk__state___closed__4; extern obj* l_lean_parser_term_have_has__view; obj* l_lean_elaborator_init__quot_elaborate(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_variables_has__view; -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__13___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_kvmap_set__bool(obj*, obj*, uint8); obj* l_list_mfoldl___main___at_lean_elaborator_command__parser__config_register__notation__tokens___spec__1(obj*, obj*); -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(obj*, obj*); +obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__32; -obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_number_view_of__nat(obj*); obj* l_lean_parser_trie_insert___rarg(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr___closed__3; obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__1(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_preresolve___main(obj*, obj*, obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_current__scope___spec__1___boxed(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__notation__kind___rarg___closed__1; obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_variables_elaborate___spec__1(obj*, obj*); uint8 l_option_is__some___main___rarg(obj*); @@ -293,10 +281,9 @@ obj* l_lean_elaborator_to__pexpr___main___closed__5; obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_variables_elaborate___spec__1___boxed(obj*, obj*); obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___boxed(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_simple__binders__to__pexpr___spec__1(obj*, obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___boxed(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__3; -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(obj*, obj*); +obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_mk__eqns___spec__1(obj*, obj*); obj* l_lean_elaborator_expr_mk__annotation(obj*, obj*); obj* l_list_filter___main___at_lean_elaborator_resolve__context___main___spec__3(obj*, obj*); @@ -314,22 +301,21 @@ obj* l_lean_elaborator_mangle__ident(obj*); obj* l_lean_elaborator_universe_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_of__list(obj*, obj*, obj*); obj* l_lean_elaborator_process__command___lambda__1___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(obj*, obj*, obj*); obj* l_lean_expander_error___at_lean_elaborator_process__command___spec__2___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_name__set_insert___spec__1(obj*, obj*, obj*); extern obj* l_lean_parser_number_has__view; obj* l_lean_elaborator_to__pexpr___main___closed__4; obj* l_lean_parser_syntax_get__pos(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_node___at_lean_parser_term_sort__app_parser_lean_parser_has__tokens___spec__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_reader__t_bind___at_lean_elaborator_declaration_elaborate___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__notation__kind(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(obj*, obj*, obj*); extern "C" obj* level_mk_imax(obj*, obj*); obj* l_lean_environment_mk__empty___boxed(obj*); -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___boxed(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_attribute_elaborate___closed__2; obj* l_list_mmap___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__2___closed__5; obj* l_list_zip__with___main___rarg(obj*, obj*, obj*); @@ -339,7 +325,7 @@ obj* l_list_filter___main___at_lean_elaborator_resolve__context___main___spec__2 obj* l_lean_elaborator_is__open__namespace___boxed(obj*, obj*); obj* l_list_map___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__6(obj*); obj* l_lean_elaborator_namespace_elaborate___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_command__parser__config_register__notation__parser(obj*, obj*, obj*); obj* l_lean_elaborator_match__open__spec(obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__1___rarg(obj*, obj*, obj*, obj*); @@ -347,11 +333,8 @@ obj* l_lean_elaborator_to__pexpr___main___closed__11; obj* l_lean_elaborator_level__add___main___boxed(obj*, obj*); obj* l_lean_elaborator_end_elaborate___closed__4; obj* l_lean_elaborator_ordered__rbmap_empty(obj*, obj*, obj*, obj*); -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___boxed(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__16; -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(obj*, obj*, obj*); -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___rarg(obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_elaborator_ordered__rbmap_find___spec__1___rarg(obj*, obj*, obj*); obj* l_option_get__or__else___main___rarg(obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__level___main___spec__4___boxed(obj*, obj*); @@ -363,7 +346,7 @@ obj* l_lean_elaborator_level__get__app__args___main___boxed(obj*, obj*, obj*, ob obj* l_list_map___main___at_lean_elaborator_names__to__pexpr___spec__1(obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__36; -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_update__parser__config(obj*, obj*, obj*); extern obj* l_lean_parser_no__kind; obj* l_lean_elaborator_level__add___boxed(obj*, obj*); @@ -378,27 +361,24 @@ 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*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(obj*, obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_notation_elaborate___spec__1___boxed(obj*); obj* l_lean_elaborator_namespace_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_match__precedence___boxed(obj*, obj*); extern obj* l_lean_message__log_empty; obj* l_lean_elaborator_ordered__rbmap_of__list___at_lean_elaborator_old__elab__command___spec__9(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_register__notation__macro___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_export_elaborate(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__18___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___boxed(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__19___boxed(obj*, obj*, obj*, obj*); namespace lean { uint8 nat_dec_eq(obj*, obj*); } -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(obj*); -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__38; -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___boxed(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__8(obj*); obj* l_list_map___main___at_lean_elaborator_to__pexpr___main___spec__21(obj*); uint8 l_lean_elaborator_is__open__namespace___main(obj*, obj*); @@ -416,31 +396,28 @@ extern obj* l_lean_expander_binding__annotation__update; extern obj* l_lean_parser_command_attribute; extern obj* l_lean_parser_term_let_has__view; obj* l_lean_elaborator_ordered__rbmap_find___boxed(obj*, obj*, obj*); -obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg___boxed(obj*, obj*); +obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6___boxed(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__2___closed__3; obj* l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__17(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(obj*, obj*, obj*, obj*); extern "C" obj* level_mk_succ(obj*); obj* l_list_foldr___main___at_lean_elaborator_to__level___main___spec__2(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__45; obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__1___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__14; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_universe_elaborate___closed__2; obj* l_lean_elaborator_is__open__namespace___main___boxed(obj*, obj*); extern obj* l_lean_parser_term_projection_has__view; obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__7(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_end_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__5___closed__2; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_variables_elaborate___closed__1; -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___boxed(obj*, obj*); -obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___boxed(obj*, obj*, obj*, obj*); +obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__12; obj* l_lean_parser_syntax_to__format___main(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(obj*, obj*, obj*, obj*); obj* l_lean_name_append___main(obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__2___closed__4; obj* l_lean_expander_error___at_lean_elaborator_process__command___spec__1___boxed(obj*); @@ -449,21 +426,18 @@ obj* l_lean_elaborator_to__pexpr___main___closed__35; obj* l_lean_elaborator_to__pexpr___main___closed__25; obj* l_lean_elaborator_names__to__pexpr(obj*); obj* l_lean_elaborator_modify__current__scope___closed__1; -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__15___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_check_has__view; obj* l_lean_elaborator_set__option_elaborate(obj*, obj*, obj*, obj*); obj* l_reader__t_read___rarg(obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___boxed(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_no__kind_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_resolve__context___main(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_max__prec; obj* l_lean_elaborator_notation_elaborate__aux(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__12(obj*, obj*, obj*, obj*, obj*); -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg(obj*, obj*); obj* l_lean_elaborator_elaborator__m_lean_parser_monad__rec; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(obj*, obj*, obj*); obj* l_reader__t_bind___at_lean_elaborator_declaration_elaborate___spec__1___boxed(obj*, obj*); obj* l_coe___at_lean_elaborator_command__parser__config_register__notation__parser___spec__4___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_filter___main___at_lean_elaborator_resolve__context___main___spec__1___boxed(obj*, obj*, obj*); @@ -477,24 +451,23 @@ obj* l_rbnode_balance2___main___rarg(obj*, obj*); obj* l_lean_expander_get__opt__type___main(obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(obj*, obj*); +obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(obj*, obj*, obj*); extern obj* l_lean_parser_term_struct__inst_has__view; extern obj* l_lean_parser_term_lambda_has__view; -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___boxed(obj*, obj*); +obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__eqns___closed__1; -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg___boxed(obj*, obj*); obj* l_list_span___main___at_lean_elaborator_to__pexpr___main___spec__6(obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_resolve__context(obj*, obj*, obj*, obj*); obj* l_except__t_monad___rarg(obj*); obj* l_lean_elaborator_declaration_elaborate___lambda__5(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern "C" obj* lean_expr_mk_let(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_app_has__view; -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(obj*, obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__level___main___spec__2___boxed(obj*, obj*); obj* l_list_mfoldl___main___at_lean_elaborator_update__parser__config___spec__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr___closed__6; -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___boxed(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__level___main(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_ident__univs_has__view; obj* l_lean_elaborator_to__pexpr___main___closed__9; @@ -527,21 +500,21 @@ obj* l_lean_elaborator_to__level___main___closed__1; obj* l_lean_elaborator_to__pexpr___main___closed__27; obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__7___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_match__open__spec___spec__1___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(obj*, obj*, obj*, obj*); obj* l_state__t_monad___rarg(obj*); -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(obj*, obj*, obj*, obj*); obj* l_list_mfoldl___main___at_lean_elaborator_command__parser__config_register__notation__tokens___spec__1___closed__1; obj* l_lean_elaborator_end_elaborate___closed__3; obj* l_lean_format_pretty(obj*, obj*); -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___boxed(obj*, obj*); +obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_namespace_has__view; obj* l_lean_elaborator_preresolve___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__15; obj* l_lean_elaborator_notation_elaborate___closed__2; obj* l_lean_elaborator_to__pexpr___main___closed__18; -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___boxed(obj*, obj*); +obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___boxed(obj*, obj*, obj*); extern obj* l_lean_parser_term_inaccessible_has__view; obj* l_rbmap_from__list___at_lean_elaborator_elaborators___spec__1; obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_to__level___main___spec__5___boxed(obj*, obj*); @@ -553,11 +526,10 @@ extern "C" uint8 lean_name_dec_eq(obj*, obj*); obj* l_lean_parser_syntax_kind___main(obj*); obj* l_lean_elaborator_eoi_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__2; -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_infer__mod__to__pexpr___boxed(obj*); obj* l_list_mfilter___main___at_lean_elaborator_variables_elaborate___spec__9___lambda__1(obj*, uint8, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__2___closed__1; -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_section_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_preresolve(obj*, obj*, obj*, obj*); obj* l_lean_parser_rec__t_recurse___rarg(obj*, obj*); @@ -577,40 +549,36 @@ extern "C" obj* level_mk_max(obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_empty___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_struct__inst__item_has__view; obj* l_list_mmap___main___at_lean_elaborator_attrs__to__pexpr___spec__1(obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___rarg(obj*, obj*, obj*); obj* l_lean_parser_symbol__core___at_lean_parser_command_notation__spec_precedence__term_parser_lean_parser_has__tokens___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_match__precedence___main___boxed(obj*, obj*); extern obj* l_lean_parser_term_borrowed_has__view; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_binders_parser(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_current__scope___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_find(obj*, obj*, obj*); obj* l_list_mfoldl___main___at_lean_elaborator_update__parser__config___spec__1(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_mk__state___spec__1; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_universe; obj* l_lean_elaborator_to__pexpr___main___closed__19; obj* l_list_map___main___at_lean_elaborator_ident__univ__params__to__pexpr___spec__1(obj*); extern obj* l_lean_parser_term_show_has__view; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(obj*, obj*, obj*, obj*); obj* l_lean_level_of__nat___main(obj*); extern obj* l_lean_parser_syntax_reprint__lst___main___closed__1; obj* l_lean_elaborator_declaration_elaborate___lambda__5___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__22; -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg(obj*, obj*); obj* l_reader__t_lift___rarg___boxed(obj*, obj*); obj* l_lean_parser_term_binder__ident_parser(obj*, obj*, obj*, obj*, obj*); obj* l_rbnode_balance1___main___rarg(obj*, obj*); obj* l_list_length__aux___main___rarg(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__8; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___boxed(obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_insert___spec__1___rarg(obj*, obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__43; obj* l_lean_elaborator_attribute_elaborate___closed__1; uint8 l_lean_elaborator_match__precedence(obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__12(obj*); obj* l_lean_elaborator_to__pexpr___main___closed__23; obj* l_lean_elaborator_elab__def__like___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); @@ -627,22 +595,21 @@ obj* l_lean_elaborator_to__level___main___closed__2; obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__4(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_curr__lbp___rarg___lambda__3___closed__1; obj* l_lean_elaborator_open_elaborate___boxed(obj*, obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_of__list___at_lean_elaborator_old__elab__command___spec__1___closed__1; obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__7(obj*); obj* l_lean_elaborator_match__spec(obj*, obj*); obj* l_lean_expander_mk__notation__transformer(obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_insert(obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__30; obj* l_lean_expr_local___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_mk__eqns(obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__10___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__14(obj*); obj* l_lean_elaborator_level__add___main(obj*, obj*); -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(obj*, obj*, obj*, obj*); +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(obj*, obj*, obj*); obj* l_lean_elaborator_elaborate__command___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_simple__binders__to__pexpr___boxed(obj*, obj*, obj*, obj*); obj* l_reader__t_monad___rarg(obj*); @@ -659,21 +626,17 @@ extern obj* l_lean_parser_command_declaration_has__view; obj* l_list_map___main___at_lean_elaborator_mk__eqns___spec__1___closed__1; extern obj* l_lean_parser_level_leading_has__view_x_27___lambda__1___closed__5; obj* l_lean_elaborator_include_elaborate___lambda__1(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___boxed(obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___boxed(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__3___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___rarg(obj*, obj*, obj*); obj* l_lean_elaborator_mk__state(obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___rarg(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__15(obj*, obj*, obj*, obj*, obj*); obj* l_lean_kvmap_insert__core___main(obj*, obj*, obj*); extern "C" obj* lean_name_mk_numeral(obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__28; obj* l_lean_elaborator_to__level___main___closed__3; extern obj* l_lean_parser_command_end_has__view; -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___boxed(obj*, obj*, obj*, obj*); obj* l_id_bind___boxed(obj*, obj*); -extern obj* l_lean_expander_expand__bracketed__binder___main___closed__8; obj* l_rbtree_of__list___main___at_lean_elaborator_old__elab__command___spec__17(obj*); obj* l_lean_elaborator_process__command(obj*, obj*, obj*); namespace lean { @@ -685,24 +648,22 @@ extern obj* l_lean_parser_term_anonymous__constructor_has__view; obj* l_list_mmap___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__2___closed__2; obj* l_lean_elaborator_to__pexpr___main___closed__37; obj* l_lean_elaborator_attribute_elaborate(obj*, obj*, obj*, obj*); -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(obj*, obj*); +obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_to__pexpr___main___spec__2(obj*); -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16___boxed(obj*, obj*, obj*, obj*); +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16___boxed(obj*, obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_ordered__rbmap_of__list___spec__6(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_init__quot; obj* l_lean_elaborator_variables_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__41; obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__7___closed__1; -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___rarg(obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__3(obj*); obj* l_lean_elaborator_ident__univ__params__to__pexpr(obj*); obj* l_list_mmap___main___at_lean_elaborator_declaration_elaborate___spec__10(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_rbtree_to__list___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___boxed(obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_update__parser__config___boxed(obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(obj*, obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_elaborator_process__command___spec__3___boxed(obj*, obj*); obj* l_lean_elaborator_to__pexpr(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__16___boxed(obj*, obj*, obj*, obj*, obj*); @@ -712,12 +673,12 @@ extern obj* l_lean_parser_command_include_has__view; obj* l_list_map___main___at_lean_elaborator_declaration_elaborate___spec__5(obj*); extern obj* l_lean_parser_command_namespace; obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_of__list___spec__2___boxed(obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(obj*, obj*, obj*, obj*); namespace lean { obj* nat_sub(obj*, obj*); } obj* l_list_mmap___main___at_lean_elaborator_attribute_elaborate___spec__1___boxed(obj*, obj*, obj*, obj*); -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___boxed(obj*); +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_elaborator_elab__def__like___spec__3(obj*); obj* l_lean_elaborator_old__elab__command(obj*, obj*, obj*, obj*, obj*); obj* l_option_to__monad___main___at_lean_elaborator_command__parser__config_register__notation__parser___spec__1___boxed(obj*); @@ -730,26 +691,24 @@ uint8 l_rbnode_is__red___main___rarg(obj*); obj* l_lean_expander_error___at_lean_elaborator_process__command___spec__1(obj*); extern "C" obj* lean_elaborator_elaborate_command(obj*, obj*, obj*); obj* l_dlist_singleton___rarg(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(obj*, 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* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg___boxed(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_decl__modifiers__to__pexpr___closed__5; obj* l_lean_elaborator_attribute_elaborate___boxed(obj*, obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__23(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_to__pexpr___main___closed__29; -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__23___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_number_has__view_x_27___lambda__1___closed__6; extern obj* l_lean_expander_no__expansion___closed__1; extern "C" obj* lean_expr_mk_bvar(obj*); obj* l_lean_elaborator_to__pexpr___main___closed__40; -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(obj*, obj*); +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(obj*); obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_of__list___spec__2___rarg(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(obj*, obj*); obj* l_list_mmap___main___at_lean_elaborator_to__pexpr___main___spec__18(obj*, obj*, obj*, obj*, obj*); @@ -758,11 +717,11 @@ extern "C" obj* lean_expr_mk_mvar(obj*, obj*); obj* l_lean_parser_substring_of__string(obj*); obj* l_id_monad___lambda__2___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldr___main___at_lean_elaborator_to__pexpr___main___spec__11(obj*); -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(obj*); +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8___boxed(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_command_elaborate(obj*, obj*, obj*, obj*); obj* l_lean_elaborator_prec__to__nat___main(obj*); -obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(obj*, obj*, obj*, obj*); +obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(obj*, obj*, obj*); obj* l_lean_parser_string__lit_view_value(obj*); obj* l_lean_elaborator_mk__state___closed__3; obj* l_reader__t_bind___at_lean_elaborator_declaration_elaborate___spec__1(obj*, obj*); @@ -770,13 +729,12 @@ obj* l_list_foldr___main___at_lean_elaborator_is__open__namespace___main___spec_ obj* l_lean_elaborator_to__pexpr___main___closed__42; extern "C" uint8 lean_environment_contains(obj*, obj*); extern obj* l_lean_parser_command_notation_has__view; -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___boxed(obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___boxed(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_check; obj* l_list_mfoldl___main___at_lean_elaborator_update__parser__config___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_id_monad___lambda__3___boxed(obj*, obj*, obj*, obj*); obj* l_list_foldl___main___at_lean_elaborator_elab__def__like___spec__10(obj*, obj*); -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(obj*, obj*); -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___rarg(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_export; obj* l_lean_elaborator_old__elab__command___lambda__1(obj*, obj*); obj* l_lean_elaborator_ordered__rbmap_of__list___boxed(obj*, obj*, obj*); @@ -787,7 +745,6 @@ obj* l_lean_elaborator_to__pexpr___main___closed__44; obj* l_rbnode_set__black___main___rarg(obj*); obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2(obj*, obj*, obj*); obj* l_lean_elaborator_variables_elaborate___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_elaborator_command__parser__config_register__notation__parser___closed__1; obj* l_lean_elaborator_init__quot_elaborate___closed__1; obj* l_lean_elaborator_postprocess__notation__spec___closed__1; @@ -865,539 +822,539 @@ lean::dec(x_3); return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_2) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_6; obj* x_7; obj* x_8; +uint8 x_5; obj* x_6; obj* x_7; lean::dec(x_0); -x_6 = 0; -x_7 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_7, 0, x_2); -lean::cnstr_set(x_7, 1, x_3); -lean::cnstr_set(x_7, 2, x_4); -lean::cnstr_set(x_7, 3, x_2); -lean::cnstr_set_scalar(x_7, sizeof(void*)*4, x_6); -x_8 = x_7; -return x_8; +x_5 = 0; +x_6 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +lean::cnstr_set(x_6, 2, x_3); +lean::cnstr_set(x_6, 3, x_1); +lean::cnstr_set_scalar(x_6, sizeof(void*)*4, x_5); +x_7 = x_6; +return x_7; } else { -uint8 x_9; -x_9 = lean::cnstr_get_scalar(x_2, sizeof(void*)*4); -if (x_9 == 0) +uint8 x_8; +x_8 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_8 == 0) { -obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_22; uint8 x_23; -x_10 = lean::cnstr_get(x_2, 0); -x_12 = lean::cnstr_get(x_2, 1); -x_14 = lean::cnstr_get(x_2, 2); -x_16 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_18 = x_2; +obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_21; uint8 x_22; +x_9 = lean::cnstr_get(x_1, 0); +x_11 = lean::cnstr_get(x_1, 1); +x_13 = lean::cnstr_get(x_1, 2); +x_15 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_17 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_2); - x_18 = lean::box(0); + lean::inc(x_9); + lean::inc(x_11); + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_1); + x_17 = lean::box(0); } -lean::inc(x_12); -lean::inc(x_3); +lean::inc(x_11); +lean::inc(x_2); lean::inc(x_0); -x_22 = lean::apply_2(x_0, x_3, x_12); -x_23 = lean::unbox(x_22); -if (x_23 == 0) +x_21 = lean::apply_2(x_0, x_2, x_11); +x_22 = lean::unbox(x_21); +if (x_22 == 0) { -obj* x_27; uint8 x_28; -lean::inc(x_3); -lean::inc(x_12); +obj* x_26; uint8 x_27; +lean::inc(x_2); +lean::inc(x_11); lean::inc(x_0); -x_27 = lean::apply_2(x_0, x_12, x_3); -x_28 = lean::unbox(x_27); -if (x_28 == 0) +x_26 = lean::apply_2(x_0, x_11, x_2); +x_27 = lean::unbox(x_26); +if (x_27 == 0) { -obj* x_32; obj* x_33; -lean::dec(x_14); +obj* x_31; obj* x_32; lean::dec(x_0); -lean::dec(x_12); -if (lean::is_scalar(x_18)) { - x_32 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_11); +lean::dec(x_13); +if (lean::is_scalar(x_17)) { + x_31 = lean::alloc_cnstr(1, 4, 1); } else { - x_32 = x_18; + x_31 = x_17; } -lean::cnstr_set(x_32, 0, x_10); -lean::cnstr_set(x_32, 1, x_3); -lean::cnstr_set(x_32, 2, x_4); -lean::cnstr_set(x_32, 3, x_16); -lean::cnstr_set_scalar(x_32, sizeof(void*)*4, x_9); -x_33 = x_32; -return x_33; +lean::cnstr_set(x_31, 0, x_9); +lean::cnstr_set(x_31, 1, x_2); +lean::cnstr_set(x_31, 2, x_3); +lean::cnstr_set(x_31, 3, x_15); +lean::cnstr_set_scalar(x_31, sizeof(void*)*4, x_8); +x_32 = x_31; +return x_32; } else { -obj* x_34; obj* x_35; obj* x_36; -x_34 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_16, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_35 = lean::alloc_cnstr(1, 4, 1); +obj* x_33; obj* x_34; obj* x_35; +x_33 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_15, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_34 = lean::alloc_cnstr(1, 4, 1); } else { - x_35 = x_18; + x_34 = x_17; } -lean::cnstr_set(x_35, 0, x_10); -lean::cnstr_set(x_35, 1, x_12); -lean::cnstr_set(x_35, 2, x_14); -lean::cnstr_set(x_35, 3, x_34); -lean::cnstr_set_scalar(x_35, sizeof(void*)*4, x_9); -x_36 = x_35; -return x_36; +lean::cnstr_set(x_34, 0, x_9); +lean::cnstr_set(x_34, 1, x_11); +lean::cnstr_set(x_34, 2, x_13); +lean::cnstr_set(x_34, 3, x_33); +lean::cnstr_set_scalar(x_34, sizeof(void*)*4, x_8); +x_35 = x_34; +return x_35; } } else { -obj* x_37; obj* x_38; obj* x_39; -x_37 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_10, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_38 = lean::alloc_cnstr(1, 4, 1); +obj* x_36; obj* x_37; obj* x_38; +x_36 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_9, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_37 = lean::alloc_cnstr(1, 4, 1); } else { - x_38 = x_18; + x_37 = x_17; } -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_12); -lean::cnstr_set(x_38, 2, x_14); -lean::cnstr_set(x_38, 3, x_16); -lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_9); -x_39 = x_38; -return x_39; +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_11); +lean::cnstr_set(x_37, 2, x_13); +lean::cnstr_set(x_37, 3, x_15); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_8); +x_38 = x_37; +return x_38; } } else { -obj* x_40; obj* x_42; obj* x_44; obj* x_46; obj* x_48; obj* x_52; uint8 x_53; -x_40 = lean::cnstr_get(x_2, 0); -x_42 = lean::cnstr_get(x_2, 1); -x_44 = lean::cnstr_get(x_2, 2); -x_46 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_48 = x_2; +obj* x_39; obj* x_41; obj* x_43; obj* x_45; obj* x_47; obj* x_51; uint8 x_52; +x_39 = lean::cnstr_get(x_1, 0); +x_41 = lean::cnstr_get(x_1, 1); +x_43 = lean::cnstr_get(x_1, 2); +x_45 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_47 = x_1; } else { - lean::inc(x_40); - lean::inc(x_42); - lean::inc(x_44); - lean::inc(x_46); - lean::dec(x_2); - x_48 = lean::box(0); + lean::inc(x_39); + lean::inc(x_41); + lean::inc(x_43); + lean::inc(x_45); + lean::dec(x_1); + x_47 = lean::box(0); } -lean::inc(x_42); -lean::inc(x_3); +lean::inc(x_41); +lean::inc(x_2); lean::inc(x_0); -x_52 = lean::apply_2(x_0, x_3, x_42); -x_53 = lean::unbox(x_52); -if (x_53 == 0) +x_51 = lean::apply_2(x_0, x_2, x_41); +x_52 = lean::unbox(x_51); +if (x_52 == 0) { -obj* x_57; uint8 x_58; -lean::inc(x_3); -lean::inc(x_42); +obj* x_56; uint8 x_57; +lean::inc(x_2); +lean::inc(x_41); lean::inc(x_0); -x_57 = lean::apply_2(x_0, x_42, x_3); -x_58 = lean::unbox(x_57); -if (x_58 == 0) +x_56 = lean::apply_2(x_0, x_41, x_2); +x_57 = lean::unbox(x_56); +if (x_57 == 0) { -obj* x_62; obj* x_63; +obj* x_61; obj* x_62; lean::dec(x_0); -lean::dec(x_44); -lean::dec(x_42); -if (lean::is_scalar(x_48)) { - x_62 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_41); +lean::dec(x_43); +if (lean::is_scalar(x_47)) { + x_61 = lean::alloc_cnstr(1, 4, 1); } else { - x_62 = x_48; + x_61 = x_47; } -lean::cnstr_set(x_62, 0, x_40); -lean::cnstr_set(x_62, 1, x_3); -lean::cnstr_set(x_62, 2, x_4); -lean::cnstr_set(x_62, 3, x_46); -lean::cnstr_set_scalar(x_62, sizeof(void*)*4, x_9); -x_63 = x_62; -return x_63; +lean::cnstr_set(x_61, 0, x_39); +lean::cnstr_set(x_61, 1, x_2); +lean::cnstr_set(x_61, 2, x_3); +lean::cnstr_set(x_61, 3, x_45); +lean::cnstr_set_scalar(x_61, sizeof(void*)*4, x_8); +x_62 = x_61; +return x_62; } else { -uint8 x_64; -x_64 = l_rbnode_is__red___main___rarg(x_46); -if (x_64 == 0) +uint8 x_63; +x_63 = l_rbnode_is__red___main___rarg(x_45); +if (x_63 == 0) { -obj* x_65; obj* x_66; obj* x_67; -x_65 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_46, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_66 = lean::alloc_cnstr(1, 4, 1); +obj* x_64; obj* x_65; obj* x_66; +x_64 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_45, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_65 = lean::alloc_cnstr(1, 4, 1); } else { - x_66 = x_48; + x_65 = x_47; } -lean::cnstr_set(x_66, 0, x_40); -lean::cnstr_set(x_66, 1, x_42); -lean::cnstr_set(x_66, 2, x_44); -lean::cnstr_set(x_66, 3, x_65); -lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_9); -x_67 = x_66; -return x_67; +lean::cnstr_set(x_65, 0, x_39); +lean::cnstr_set(x_65, 1, x_41); +lean::cnstr_set(x_65, 2, x_43); +lean::cnstr_set(x_65, 3, x_64); +lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_8); +x_66 = x_65; +return x_66; } else { -obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; -x_68 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_69 = lean::alloc_cnstr(1, 4, 1); +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_67 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_68 = lean::alloc_cnstr(1, 4, 1); } else { - x_69 = x_48; + x_68 = x_47; } -lean::cnstr_set(x_69, 0, x_40); -lean::cnstr_set(x_69, 1, x_42); -lean::cnstr_set(x_69, 2, x_44); -lean::cnstr_set(x_69, 3, x_68); -lean::cnstr_set_scalar(x_69, sizeof(void*)*4, x_9); -x_70 = x_69; -x_71 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_46, x_3, x_4); -x_72 = l_rbnode_balance2___main___rarg(x_70, x_71); -return x_72; +lean::cnstr_set(x_68, 0, x_39); +lean::cnstr_set(x_68, 1, x_41); +lean::cnstr_set(x_68, 2, x_43); +lean::cnstr_set(x_68, 3, x_67); +lean::cnstr_set_scalar(x_68, sizeof(void*)*4, x_8); +x_69 = x_68; +x_70 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_45, x_2, x_3); +x_71 = l_rbnode_balance2___main___rarg(x_69, x_70); +return x_71; } } } else { -uint8 x_73; -x_73 = l_rbnode_is__red___main___rarg(x_40); -if (x_73 == 0) +uint8 x_72; +x_72 = l_rbnode_is__red___main___rarg(x_39); +if (x_72 == 0) { -obj* x_74; obj* x_75; obj* x_76; -x_74 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_40, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_75 = lean::alloc_cnstr(1, 4, 1); +obj* x_73; obj* x_74; obj* x_75; +x_73 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_39, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_74 = lean::alloc_cnstr(1, 4, 1); } else { - x_75 = x_48; + x_74 = x_47; } -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_42); -lean::cnstr_set(x_75, 2, x_44); -lean::cnstr_set(x_75, 3, x_46); -lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_9); -x_76 = x_75; -return x_76; +lean::cnstr_set(x_74, 0, x_73); +lean::cnstr_set(x_74, 1, x_41); +lean::cnstr_set(x_74, 2, x_43); +lean::cnstr_set(x_74, 3, x_45); +lean::cnstr_set_scalar(x_74, sizeof(void*)*4, x_8); +x_75 = x_74; +return x_75; } else { -obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; -x_77 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_78 = lean::alloc_cnstr(1, 4, 1); +obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +x_76 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_77 = lean::alloc_cnstr(1, 4, 1); } else { - x_78 = x_48; + x_77 = x_47; } -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_42); -lean::cnstr_set(x_78, 2, x_44); -lean::cnstr_set(x_78, 3, x_46); -lean::cnstr_set_scalar(x_78, sizeof(void*)*4, x_9); -x_79 = x_78; -x_80 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_40, x_3, x_4); -x_81 = l_rbnode_balance1___main___rarg(x_79, x_80); -return x_81; +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_41); +lean::cnstr_set(x_77, 2, x_43); +lean::cnstr_set(x_77, 3, x_45); +lean::cnstr_set_scalar(x_77, sizeof(void*)*4, x_8); +x_78 = x_77; +x_79 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_39, x_2, x_3); +x_80 = l_rbnode_balance1___main___rarg(x_78, x_79); +return x_80; } } } } } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg___boxed), 5, 0); -return x_2; +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg), 4, 0); +return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_2) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_6; obj* x_7; obj* x_8; +uint8 x_5; obj* x_6; obj* x_7; lean::dec(x_0); -x_6 = 0; -x_7 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_7, 0, x_2); -lean::cnstr_set(x_7, 1, x_3); -lean::cnstr_set(x_7, 2, x_4); -lean::cnstr_set(x_7, 3, x_2); -lean::cnstr_set_scalar(x_7, sizeof(void*)*4, x_6); -x_8 = x_7; -return x_8; +x_5 = 0; +x_6 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +lean::cnstr_set(x_6, 2, x_3); +lean::cnstr_set(x_6, 3, x_1); +lean::cnstr_set_scalar(x_6, sizeof(void*)*4, x_5); +x_7 = x_6; +return x_7; } else { -uint8 x_9; -x_9 = lean::cnstr_get_scalar(x_2, sizeof(void*)*4); -if (x_9 == 0) +uint8 x_8; +x_8 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_8 == 0) { -obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_22; uint8 x_23; -x_10 = lean::cnstr_get(x_2, 0); -x_12 = lean::cnstr_get(x_2, 1); -x_14 = lean::cnstr_get(x_2, 2); -x_16 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_18 = x_2; +obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_21; uint8 x_22; +x_9 = lean::cnstr_get(x_1, 0); +x_11 = lean::cnstr_get(x_1, 1); +x_13 = lean::cnstr_get(x_1, 2); +x_15 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_17 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_2); - x_18 = lean::box(0); + lean::inc(x_9); + lean::inc(x_11); + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_1); + x_17 = lean::box(0); } -lean::inc(x_12); -lean::inc(x_3); +lean::inc(x_11); +lean::inc(x_2); lean::inc(x_0); -x_22 = lean::apply_2(x_0, x_3, x_12); -x_23 = lean::unbox(x_22); -if (x_23 == 0) +x_21 = lean::apply_2(x_0, x_2, x_11); +x_22 = lean::unbox(x_21); +if (x_22 == 0) { -obj* x_27; uint8 x_28; -lean::inc(x_3); -lean::inc(x_12); +obj* x_26; uint8 x_27; +lean::inc(x_2); +lean::inc(x_11); lean::inc(x_0); -x_27 = lean::apply_2(x_0, x_12, x_3); -x_28 = lean::unbox(x_27); -if (x_28 == 0) +x_26 = lean::apply_2(x_0, x_11, x_2); +x_27 = lean::unbox(x_26); +if (x_27 == 0) { -obj* x_32; obj* x_33; -lean::dec(x_14); +obj* x_31; obj* x_32; lean::dec(x_0); -lean::dec(x_12); -if (lean::is_scalar(x_18)) { - x_32 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_11); +lean::dec(x_13); +if (lean::is_scalar(x_17)) { + x_31 = lean::alloc_cnstr(1, 4, 1); } else { - x_32 = x_18; + x_31 = x_17; } -lean::cnstr_set(x_32, 0, x_10); -lean::cnstr_set(x_32, 1, x_3); -lean::cnstr_set(x_32, 2, x_4); -lean::cnstr_set(x_32, 3, x_16); -lean::cnstr_set_scalar(x_32, sizeof(void*)*4, x_9); -x_33 = x_32; -return x_33; +lean::cnstr_set(x_31, 0, x_9); +lean::cnstr_set(x_31, 1, x_2); +lean::cnstr_set(x_31, 2, x_3); +lean::cnstr_set(x_31, 3, x_15); +lean::cnstr_set_scalar(x_31, sizeof(void*)*4, x_8); +x_32 = x_31; +return x_32; } else { -obj* x_34; obj* x_35; obj* x_36; -x_34 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_16, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_35 = lean::alloc_cnstr(1, 4, 1); +obj* x_33; obj* x_34; obj* x_35; +x_33 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_15, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_34 = lean::alloc_cnstr(1, 4, 1); } else { - x_35 = x_18; + x_34 = x_17; } -lean::cnstr_set(x_35, 0, x_10); -lean::cnstr_set(x_35, 1, x_12); -lean::cnstr_set(x_35, 2, x_14); -lean::cnstr_set(x_35, 3, x_34); -lean::cnstr_set_scalar(x_35, sizeof(void*)*4, x_9); -x_36 = x_35; -return x_36; +lean::cnstr_set(x_34, 0, x_9); +lean::cnstr_set(x_34, 1, x_11); +lean::cnstr_set(x_34, 2, x_13); +lean::cnstr_set(x_34, 3, x_33); +lean::cnstr_set_scalar(x_34, sizeof(void*)*4, x_8); +x_35 = x_34; +return x_35; } } else { -obj* x_37; obj* x_38; obj* x_39; -x_37 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_10, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_38 = lean::alloc_cnstr(1, 4, 1); +obj* x_36; obj* x_37; obj* x_38; +x_36 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_9, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_37 = lean::alloc_cnstr(1, 4, 1); } else { - x_38 = x_18; + x_37 = x_17; } -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_12); -lean::cnstr_set(x_38, 2, x_14); -lean::cnstr_set(x_38, 3, x_16); -lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_9); -x_39 = x_38; -return x_39; +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_11); +lean::cnstr_set(x_37, 2, x_13); +lean::cnstr_set(x_37, 3, x_15); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_8); +x_38 = x_37; +return x_38; } } else { -obj* x_40; obj* x_42; obj* x_44; obj* x_46; obj* x_48; obj* x_52; uint8 x_53; -x_40 = lean::cnstr_get(x_2, 0); -x_42 = lean::cnstr_get(x_2, 1); -x_44 = lean::cnstr_get(x_2, 2); -x_46 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_48 = x_2; +obj* x_39; obj* x_41; obj* x_43; obj* x_45; obj* x_47; obj* x_51; uint8 x_52; +x_39 = lean::cnstr_get(x_1, 0); +x_41 = lean::cnstr_get(x_1, 1); +x_43 = lean::cnstr_get(x_1, 2); +x_45 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_47 = x_1; } else { - lean::inc(x_40); - lean::inc(x_42); - lean::inc(x_44); - lean::inc(x_46); - lean::dec(x_2); - x_48 = lean::box(0); + lean::inc(x_39); + lean::inc(x_41); + lean::inc(x_43); + lean::inc(x_45); + lean::dec(x_1); + x_47 = lean::box(0); } -lean::inc(x_42); -lean::inc(x_3); +lean::inc(x_41); +lean::inc(x_2); lean::inc(x_0); -x_52 = lean::apply_2(x_0, x_3, x_42); -x_53 = lean::unbox(x_52); -if (x_53 == 0) +x_51 = lean::apply_2(x_0, x_2, x_41); +x_52 = lean::unbox(x_51); +if (x_52 == 0) { -obj* x_57; uint8 x_58; -lean::inc(x_3); -lean::inc(x_42); +obj* x_56; uint8 x_57; +lean::inc(x_2); +lean::inc(x_41); lean::inc(x_0); -x_57 = lean::apply_2(x_0, x_42, x_3); -x_58 = lean::unbox(x_57); -if (x_58 == 0) +x_56 = lean::apply_2(x_0, x_41, x_2); +x_57 = lean::unbox(x_56); +if (x_57 == 0) { -obj* x_62; obj* x_63; +obj* x_61; obj* x_62; lean::dec(x_0); -lean::dec(x_44); -lean::dec(x_42); -if (lean::is_scalar(x_48)) { - x_62 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_41); +lean::dec(x_43); +if (lean::is_scalar(x_47)) { + x_61 = lean::alloc_cnstr(1, 4, 1); } else { - x_62 = x_48; + x_61 = x_47; } -lean::cnstr_set(x_62, 0, x_40); -lean::cnstr_set(x_62, 1, x_3); -lean::cnstr_set(x_62, 2, x_4); -lean::cnstr_set(x_62, 3, x_46); -lean::cnstr_set_scalar(x_62, sizeof(void*)*4, x_9); -x_63 = x_62; -return x_63; +lean::cnstr_set(x_61, 0, x_39); +lean::cnstr_set(x_61, 1, x_2); +lean::cnstr_set(x_61, 2, x_3); +lean::cnstr_set(x_61, 3, x_45); +lean::cnstr_set_scalar(x_61, sizeof(void*)*4, x_8); +x_62 = x_61; +return x_62; } else { -uint8 x_64; -x_64 = l_rbnode_is__red___main___rarg(x_46); -if (x_64 == 0) +uint8 x_63; +x_63 = l_rbnode_is__red___main___rarg(x_45); +if (x_63 == 0) { -obj* x_65; obj* x_66; obj* x_67; -x_65 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_46, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_66 = lean::alloc_cnstr(1, 4, 1); +obj* x_64; obj* x_65; obj* x_66; +x_64 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_45, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_65 = lean::alloc_cnstr(1, 4, 1); } else { - x_66 = x_48; + x_65 = x_47; } -lean::cnstr_set(x_66, 0, x_40); -lean::cnstr_set(x_66, 1, x_42); -lean::cnstr_set(x_66, 2, x_44); -lean::cnstr_set(x_66, 3, x_65); -lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_9); -x_67 = x_66; -return x_67; +lean::cnstr_set(x_65, 0, x_39); +lean::cnstr_set(x_65, 1, x_41); +lean::cnstr_set(x_65, 2, x_43); +lean::cnstr_set(x_65, 3, x_64); +lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_8); +x_66 = x_65; +return x_66; } else { -obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; -x_68 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_69 = lean::alloc_cnstr(1, 4, 1); +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_67 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_68 = lean::alloc_cnstr(1, 4, 1); } else { - x_69 = x_48; + x_68 = x_47; } -lean::cnstr_set(x_69, 0, x_40); -lean::cnstr_set(x_69, 1, x_42); -lean::cnstr_set(x_69, 2, x_44); -lean::cnstr_set(x_69, 3, x_68); -lean::cnstr_set_scalar(x_69, sizeof(void*)*4, x_9); -x_70 = x_69; -x_71 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_46, x_3, x_4); -x_72 = l_rbnode_balance2___main___rarg(x_70, x_71); -return x_72; +lean::cnstr_set(x_68, 0, x_39); +lean::cnstr_set(x_68, 1, x_41); +lean::cnstr_set(x_68, 2, x_43); +lean::cnstr_set(x_68, 3, x_67); +lean::cnstr_set_scalar(x_68, sizeof(void*)*4, x_8); +x_69 = x_68; +x_70 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_45, x_2, x_3); +x_71 = l_rbnode_balance2___main___rarg(x_69, x_70); +return x_71; } } } else { -uint8 x_73; -x_73 = l_rbnode_is__red___main___rarg(x_40); -if (x_73 == 0) +uint8 x_72; +x_72 = l_rbnode_is__red___main___rarg(x_39); +if (x_72 == 0) { -obj* x_74; obj* x_75; obj* x_76; -x_74 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_40, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_75 = lean::alloc_cnstr(1, 4, 1); +obj* x_73; obj* x_74; obj* x_75; +x_73 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_39, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_74 = lean::alloc_cnstr(1, 4, 1); } else { - x_75 = x_48; + x_74 = x_47; } -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_42); -lean::cnstr_set(x_75, 2, x_44); -lean::cnstr_set(x_75, 3, x_46); -lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_9); -x_76 = x_75; -return x_76; +lean::cnstr_set(x_74, 0, x_73); +lean::cnstr_set(x_74, 1, x_41); +lean::cnstr_set(x_74, 2, x_43); +lean::cnstr_set(x_74, 3, x_45); +lean::cnstr_set_scalar(x_74, sizeof(void*)*4, x_8); +x_75 = x_74; +return x_75; } else { -obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; -x_77 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_78 = lean::alloc_cnstr(1, 4, 1); +obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +x_76 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_77 = lean::alloc_cnstr(1, 4, 1); } else { - x_78 = x_48; + x_77 = x_47; } -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_42); -lean::cnstr_set(x_78, 2, x_44); -lean::cnstr_set(x_78, 3, x_46); -lean::cnstr_set_scalar(x_78, sizeof(void*)*4, x_9); -x_79 = x_78; -x_80 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_40, x_3, x_4); -x_81 = l_rbnode_balance1___main___rarg(x_79, x_80); -return x_81; +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_41); +lean::cnstr_set(x_77, 2, x_43); +lean::cnstr_set(x_77, 3, x_45); +lean::cnstr_set_scalar(x_77, sizeof(void*)*4, x_8); +x_78 = x_77; +x_79 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_39, x_2, x_3); +x_80 = l_rbnode_balance1___main___rarg(x_78, x_79); +return x_80; } } } } } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg___boxed), 5, 0); -return x_2; +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg), 4, 0); +return x_3; } } -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -uint8 x_5; -x_5 = l_rbnode_is__red___main___rarg(x_2); -if (x_5 == 0) +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) { -obj* x_6; -x_6 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, lean::box(0), x_2, x_3, x_4); -return x_6; +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_1, x_2, x_3); +return x_5; } else { -obj* x_7; obj* x_8; -x_7 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, lean::box(0), x_2, x_3, x_4); -x_8 = l_rbnode_set__black___main___rarg(x_7); -return x_8; +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } } @@ -1405,7 +1362,7 @@ obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2(obj* x _start: { obj* x_3; -x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg___boxed), 5, 0); +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg), 4, 0); return x_3; } } @@ -1413,7 +1370,7 @@ obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_insert___spec__1_ _start: { obj* x_4; -x_4 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(x_0, lean::box(0), x_1, x_2, x_3); +x_4 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(x_0, x_1, x_2, x_3); return x_4; } } @@ -1448,7 +1405,7 @@ lean::inc(x_12); x_16 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_16, 0, x_12); lean::cnstr_set(x_16, 1, x_3); -x_17 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(x_0, lean::box(0), x_10, x_2, x_16); +x_17 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(x_0, x_10, x_2, x_16); x_18 = lean::mk_nat_obj(1u); x_19 = lean::nat_add(x_12, x_18); lean::dec(x_12); @@ -1467,51 +1424,26 @@ x_3 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_ordered__rbm return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; -x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(x_0, x_1); +obj* x_3; +x_3 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__3(x_0, x_1, x_2); lean::dec(x_0); lean::dec(x_1); -return x_2; +lean::dec(x_2); +return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; -x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(x_0, x_1); +obj* x_3; +x_3 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_insert___spec__4(x_0, x_1, x_2); lean::dec(x_0); lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -obj* x_5; -x_5 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; +lean::dec(x_2); +return x_3; } } obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_insert___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -1697,539 +1629,539 @@ lean::dec(x_2); return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_2) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_6; obj* x_7; obj* x_8; +uint8 x_5; obj* x_6; obj* x_7; lean::dec(x_0); -x_6 = 0; -x_7 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_7, 0, x_2); -lean::cnstr_set(x_7, 1, x_3); -lean::cnstr_set(x_7, 2, x_4); -lean::cnstr_set(x_7, 3, x_2); -lean::cnstr_set_scalar(x_7, sizeof(void*)*4, x_6); -x_8 = x_7; -return x_8; +x_5 = 0; +x_6 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +lean::cnstr_set(x_6, 2, x_3); +lean::cnstr_set(x_6, 3, x_1); +lean::cnstr_set_scalar(x_6, sizeof(void*)*4, x_5); +x_7 = x_6; +return x_7; } else { -uint8 x_9; -x_9 = lean::cnstr_get_scalar(x_2, sizeof(void*)*4); -if (x_9 == 0) +uint8 x_8; +x_8 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_8 == 0) { -obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_22; uint8 x_23; -x_10 = lean::cnstr_get(x_2, 0); -x_12 = lean::cnstr_get(x_2, 1); -x_14 = lean::cnstr_get(x_2, 2); -x_16 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_18 = x_2; +obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_21; uint8 x_22; +x_9 = lean::cnstr_get(x_1, 0); +x_11 = lean::cnstr_get(x_1, 1); +x_13 = lean::cnstr_get(x_1, 2); +x_15 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_17 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_2); - x_18 = lean::box(0); + lean::inc(x_9); + lean::inc(x_11); + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_1); + x_17 = lean::box(0); } -lean::inc(x_12); -lean::inc(x_3); +lean::inc(x_11); +lean::inc(x_2); lean::inc(x_0); -x_22 = lean::apply_2(x_0, x_3, x_12); -x_23 = lean::unbox(x_22); -if (x_23 == 0) +x_21 = lean::apply_2(x_0, x_2, x_11); +x_22 = lean::unbox(x_21); +if (x_22 == 0) { -obj* x_27; uint8 x_28; -lean::inc(x_3); -lean::inc(x_12); +obj* x_26; uint8 x_27; +lean::inc(x_2); +lean::inc(x_11); lean::inc(x_0); -x_27 = lean::apply_2(x_0, x_12, x_3); -x_28 = lean::unbox(x_27); -if (x_28 == 0) +x_26 = lean::apply_2(x_0, x_11, x_2); +x_27 = lean::unbox(x_26); +if (x_27 == 0) { -obj* x_32; obj* x_33; -lean::dec(x_14); +obj* x_31; obj* x_32; lean::dec(x_0); -lean::dec(x_12); -if (lean::is_scalar(x_18)) { - x_32 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_11); +lean::dec(x_13); +if (lean::is_scalar(x_17)) { + x_31 = lean::alloc_cnstr(1, 4, 1); } else { - x_32 = x_18; + x_31 = x_17; } -lean::cnstr_set(x_32, 0, x_10); -lean::cnstr_set(x_32, 1, x_3); -lean::cnstr_set(x_32, 2, x_4); -lean::cnstr_set(x_32, 3, x_16); -lean::cnstr_set_scalar(x_32, sizeof(void*)*4, x_9); -x_33 = x_32; -return x_33; +lean::cnstr_set(x_31, 0, x_9); +lean::cnstr_set(x_31, 1, x_2); +lean::cnstr_set(x_31, 2, x_3); +lean::cnstr_set(x_31, 3, x_15); +lean::cnstr_set_scalar(x_31, sizeof(void*)*4, x_8); +x_32 = x_31; +return x_32; } else { -obj* x_34; obj* x_35; obj* x_36; -x_34 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_16, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_35 = lean::alloc_cnstr(1, 4, 1); +obj* x_33; obj* x_34; obj* x_35; +x_33 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_15, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_34 = lean::alloc_cnstr(1, 4, 1); } else { - x_35 = x_18; + x_34 = x_17; } -lean::cnstr_set(x_35, 0, x_10); -lean::cnstr_set(x_35, 1, x_12); -lean::cnstr_set(x_35, 2, x_14); -lean::cnstr_set(x_35, 3, x_34); -lean::cnstr_set_scalar(x_35, sizeof(void*)*4, x_9); -x_36 = x_35; -return x_36; +lean::cnstr_set(x_34, 0, x_9); +lean::cnstr_set(x_34, 1, x_11); +lean::cnstr_set(x_34, 2, x_13); +lean::cnstr_set(x_34, 3, x_33); +lean::cnstr_set_scalar(x_34, sizeof(void*)*4, x_8); +x_35 = x_34; +return x_35; } } else { -obj* x_37; obj* x_38; obj* x_39; -x_37 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_10, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_38 = lean::alloc_cnstr(1, 4, 1); +obj* x_36; obj* x_37; obj* x_38; +x_36 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_9, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_37 = lean::alloc_cnstr(1, 4, 1); } else { - x_38 = x_18; + x_37 = x_17; } -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_12); -lean::cnstr_set(x_38, 2, x_14); -lean::cnstr_set(x_38, 3, x_16); -lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_9); -x_39 = x_38; -return x_39; +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_11); +lean::cnstr_set(x_37, 2, x_13); +lean::cnstr_set(x_37, 3, x_15); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_8); +x_38 = x_37; +return x_38; } } else { -obj* x_40; obj* x_42; obj* x_44; obj* x_46; obj* x_48; obj* x_52; uint8 x_53; -x_40 = lean::cnstr_get(x_2, 0); -x_42 = lean::cnstr_get(x_2, 1); -x_44 = lean::cnstr_get(x_2, 2); -x_46 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_48 = x_2; +obj* x_39; obj* x_41; obj* x_43; obj* x_45; obj* x_47; obj* x_51; uint8 x_52; +x_39 = lean::cnstr_get(x_1, 0); +x_41 = lean::cnstr_get(x_1, 1); +x_43 = lean::cnstr_get(x_1, 2); +x_45 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_47 = x_1; } else { - lean::inc(x_40); - lean::inc(x_42); - lean::inc(x_44); - lean::inc(x_46); - lean::dec(x_2); - x_48 = lean::box(0); + lean::inc(x_39); + lean::inc(x_41); + lean::inc(x_43); + lean::inc(x_45); + lean::dec(x_1); + x_47 = lean::box(0); } -lean::inc(x_42); -lean::inc(x_3); +lean::inc(x_41); +lean::inc(x_2); lean::inc(x_0); -x_52 = lean::apply_2(x_0, x_3, x_42); -x_53 = lean::unbox(x_52); -if (x_53 == 0) +x_51 = lean::apply_2(x_0, x_2, x_41); +x_52 = lean::unbox(x_51); +if (x_52 == 0) { -obj* x_57; uint8 x_58; -lean::inc(x_3); -lean::inc(x_42); +obj* x_56; uint8 x_57; +lean::inc(x_2); +lean::inc(x_41); lean::inc(x_0); -x_57 = lean::apply_2(x_0, x_42, x_3); -x_58 = lean::unbox(x_57); -if (x_58 == 0) +x_56 = lean::apply_2(x_0, x_41, x_2); +x_57 = lean::unbox(x_56); +if (x_57 == 0) { -obj* x_62; obj* x_63; +obj* x_61; obj* x_62; lean::dec(x_0); -lean::dec(x_44); -lean::dec(x_42); -if (lean::is_scalar(x_48)) { - x_62 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_41); +lean::dec(x_43); +if (lean::is_scalar(x_47)) { + x_61 = lean::alloc_cnstr(1, 4, 1); } else { - x_62 = x_48; + x_61 = x_47; } -lean::cnstr_set(x_62, 0, x_40); -lean::cnstr_set(x_62, 1, x_3); -lean::cnstr_set(x_62, 2, x_4); -lean::cnstr_set(x_62, 3, x_46); -lean::cnstr_set_scalar(x_62, sizeof(void*)*4, x_9); -x_63 = x_62; -return x_63; +lean::cnstr_set(x_61, 0, x_39); +lean::cnstr_set(x_61, 1, x_2); +lean::cnstr_set(x_61, 2, x_3); +lean::cnstr_set(x_61, 3, x_45); +lean::cnstr_set_scalar(x_61, sizeof(void*)*4, x_8); +x_62 = x_61; +return x_62; } else { -uint8 x_64; -x_64 = l_rbnode_is__red___main___rarg(x_46); -if (x_64 == 0) +uint8 x_63; +x_63 = l_rbnode_is__red___main___rarg(x_45); +if (x_63 == 0) { -obj* x_65; obj* x_66; obj* x_67; -x_65 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_46, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_66 = lean::alloc_cnstr(1, 4, 1); +obj* x_64; obj* x_65; obj* x_66; +x_64 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_45, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_65 = lean::alloc_cnstr(1, 4, 1); } else { - x_66 = x_48; + x_65 = x_47; } -lean::cnstr_set(x_66, 0, x_40); -lean::cnstr_set(x_66, 1, x_42); -lean::cnstr_set(x_66, 2, x_44); -lean::cnstr_set(x_66, 3, x_65); -lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_9); -x_67 = x_66; -return x_67; +lean::cnstr_set(x_65, 0, x_39); +lean::cnstr_set(x_65, 1, x_41); +lean::cnstr_set(x_65, 2, x_43); +lean::cnstr_set(x_65, 3, x_64); +lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_8); +x_66 = x_65; +return x_66; } else { -obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; -x_68 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_69 = lean::alloc_cnstr(1, 4, 1); +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_67 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_68 = lean::alloc_cnstr(1, 4, 1); } else { - x_69 = x_48; + x_68 = x_47; } -lean::cnstr_set(x_69, 0, x_40); -lean::cnstr_set(x_69, 1, x_42); -lean::cnstr_set(x_69, 2, x_44); -lean::cnstr_set(x_69, 3, x_68); -lean::cnstr_set_scalar(x_69, sizeof(void*)*4, x_9); -x_70 = x_69; -x_71 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_46, x_3, x_4); -x_72 = l_rbnode_balance2___main___rarg(x_70, x_71); -return x_72; +lean::cnstr_set(x_68, 0, x_39); +lean::cnstr_set(x_68, 1, x_41); +lean::cnstr_set(x_68, 2, x_43); +lean::cnstr_set(x_68, 3, x_67); +lean::cnstr_set_scalar(x_68, sizeof(void*)*4, x_8); +x_69 = x_68; +x_70 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_45, x_2, x_3); +x_71 = l_rbnode_balance2___main___rarg(x_69, x_70); +return x_71; } } } else { -uint8 x_73; -x_73 = l_rbnode_is__red___main___rarg(x_40); -if (x_73 == 0) +uint8 x_72; +x_72 = l_rbnode_is__red___main___rarg(x_39); +if (x_72 == 0) { -obj* x_74; obj* x_75; obj* x_76; -x_74 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_40, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_75 = lean::alloc_cnstr(1, 4, 1); +obj* x_73; obj* x_74; obj* x_75; +x_73 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_39, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_74 = lean::alloc_cnstr(1, 4, 1); } else { - x_75 = x_48; + x_74 = x_47; } -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_42); -lean::cnstr_set(x_75, 2, x_44); -lean::cnstr_set(x_75, 3, x_46); -lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_9); -x_76 = x_75; -return x_76; +lean::cnstr_set(x_74, 0, x_73); +lean::cnstr_set(x_74, 1, x_41); +lean::cnstr_set(x_74, 2, x_43); +lean::cnstr_set(x_74, 3, x_45); +lean::cnstr_set_scalar(x_74, sizeof(void*)*4, x_8); +x_75 = x_74; +return x_75; } else { -obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; -x_77 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_78 = lean::alloc_cnstr(1, 4, 1); +obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +x_76 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_77 = lean::alloc_cnstr(1, 4, 1); } else { - x_78 = x_48; + x_77 = x_47; } -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_42); -lean::cnstr_set(x_78, 2, x_44); -lean::cnstr_set(x_78, 3, x_46); -lean::cnstr_set_scalar(x_78, sizeof(void*)*4, x_9); -x_79 = x_78; -x_80 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_40, x_3, x_4); -x_81 = l_rbnode_balance1___main___rarg(x_79, x_80); -return x_81; +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_41); +lean::cnstr_set(x_77, 2, x_43); +lean::cnstr_set(x_77, 3, x_45); +lean::cnstr_set_scalar(x_77, sizeof(void*)*4, x_8); +x_78 = x_77; +x_79 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_39, x_2, x_3); +x_80 = l_rbnode_balance1___main___rarg(x_78, x_79); +return x_80; } } } } } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg___boxed), 5, 0); -return x_2; +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg), 4, 0); +return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_2) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_6; obj* x_7; obj* x_8; +uint8 x_5; obj* x_6; obj* x_7; lean::dec(x_0); -x_6 = 0; -x_7 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_7, 0, x_2); -lean::cnstr_set(x_7, 1, x_3); -lean::cnstr_set(x_7, 2, x_4); -lean::cnstr_set(x_7, 3, x_2); -lean::cnstr_set_scalar(x_7, sizeof(void*)*4, x_6); -x_8 = x_7; -return x_8; +x_5 = 0; +x_6 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +lean::cnstr_set(x_6, 2, x_3); +lean::cnstr_set(x_6, 3, x_1); +lean::cnstr_set_scalar(x_6, sizeof(void*)*4, x_5); +x_7 = x_6; +return x_7; } else { -uint8 x_9; -x_9 = lean::cnstr_get_scalar(x_2, sizeof(void*)*4); -if (x_9 == 0) +uint8 x_8; +x_8 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_8 == 0) { -obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_22; uint8 x_23; -x_10 = lean::cnstr_get(x_2, 0); -x_12 = lean::cnstr_get(x_2, 1); -x_14 = lean::cnstr_get(x_2, 2); -x_16 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_18 = x_2; +obj* x_9; obj* x_11; obj* x_13; obj* x_15; obj* x_17; obj* x_21; uint8 x_22; +x_9 = lean::cnstr_get(x_1, 0); +x_11 = lean::cnstr_get(x_1, 1); +x_13 = lean::cnstr_get(x_1, 2); +x_15 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_17 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_2); - x_18 = lean::box(0); + lean::inc(x_9); + lean::inc(x_11); + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_1); + x_17 = lean::box(0); } -lean::inc(x_12); -lean::inc(x_3); +lean::inc(x_11); +lean::inc(x_2); lean::inc(x_0); -x_22 = lean::apply_2(x_0, x_3, x_12); -x_23 = lean::unbox(x_22); -if (x_23 == 0) +x_21 = lean::apply_2(x_0, x_2, x_11); +x_22 = lean::unbox(x_21); +if (x_22 == 0) { -obj* x_27; uint8 x_28; -lean::inc(x_3); -lean::inc(x_12); +obj* x_26; uint8 x_27; +lean::inc(x_2); +lean::inc(x_11); lean::inc(x_0); -x_27 = lean::apply_2(x_0, x_12, x_3); -x_28 = lean::unbox(x_27); -if (x_28 == 0) +x_26 = lean::apply_2(x_0, x_11, x_2); +x_27 = lean::unbox(x_26); +if (x_27 == 0) { -obj* x_32; obj* x_33; -lean::dec(x_14); +obj* x_31; obj* x_32; lean::dec(x_0); -lean::dec(x_12); -if (lean::is_scalar(x_18)) { - x_32 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_11); +lean::dec(x_13); +if (lean::is_scalar(x_17)) { + x_31 = lean::alloc_cnstr(1, 4, 1); } else { - x_32 = x_18; + x_31 = x_17; } -lean::cnstr_set(x_32, 0, x_10); -lean::cnstr_set(x_32, 1, x_3); -lean::cnstr_set(x_32, 2, x_4); -lean::cnstr_set(x_32, 3, x_16); -lean::cnstr_set_scalar(x_32, sizeof(void*)*4, x_9); -x_33 = x_32; -return x_33; +lean::cnstr_set(x_31, 0, x_9); +lean::cnstr_set(x_31, 1, x_2); +lean::cnstr_set(x_31, 2, x_3); +lean::cnstr_set(x_31, 3, x_15); +lean::cnstr_set_scalar(x_31, sizeof(void*)*4, x_8); +x_32 = x_31; +return x_32; } else { -obj* x_34; obj* x_35; obj* x_36; -x_34 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_16, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_35 = lean::alloc_cnstr(1, 4, 1); +obj* x_33; obj* x_34; obj* x_35; +x_33 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_15, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_34 = lean::alloc_cnstr(1, 4, 1); } else { - x_35 = x_18; + x_34 = x_17; } -lean::cnstr_set(x_35, 0, x_10); -lean::cnstr_set(x_35, 1, x_12); -lean::cnstr_set(x_35, 2, x_14); -lean::cnstr_set(x_35, 3, x_34); -lean::cnstr_set_scalar(x_35, sizeof(void*)*4, x_9); -x_36 = x_35; -return x_36; +lean::cnstr_set(x_34, 0, x_9); +lean::cnstr_set(x_34, 1, x_11); +lean::cnstr_set(x_34, 2, x_13); +lean::cnstr_set(x_34, 3, x_33); +lean::cnstr_set_scalar(x_34, sizeof(void*)*4, x_8); +x_35 = x_34; +return x_35; } } else { -obj* x_37; obj* x_38; obj* x_39; -x_37 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_10, x_3, x_4); -if (lean::is_scalar(x_18)) { - x_38 = lean::alloc_cnstr(1, 4, 1); +obj* x_36; obj* x_37; obj* x_38; +x_36 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_9, x_2, x_3); +if (lean::is_scalar(x_17)) { + x_37 = lean::alloc_cnstr(1, 4, 1); } else { - x_38 = x_18; + x_37 = x_17; } -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_12); -lean::cnstr_set(x_38, 2, x_14); -lean::cnstr_set(x_38, 3, x_16); -lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_9); -x_39 = x_38; -return x_39; +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_11); +lean::cnstr_set(x_37, 2, x_13); +lean::cnstr_set(x_37, 3, x_15); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_8); +x_38 = x_37; +return x_38; } } else { -obj* x_40; obj* x_42; obj* x_44; obj* x_46; obj* x_48; obj* x_52; uint8 x_53; -x_40 = lean::cnstr_get(x_2, 0); -x_42 = lean::cnstr_get(x_2, 1); -x_44 = lean::cnstr_get(x_2, 2); -x_46 = lean::cnstr_get(x_2, 3); -if (lean::is_exclusive(x_2)) { - lean::cnstr_set(x_2, 0, lean::box(0)); - lean::cnstr_set(x_2, 1, lean::box(0)); - lean::cnstr_set(x_2, 2, lean::box(0)); - lean::cnstr_set(x_2, 3, lean::box(0)); - x_48 = x_2; +obj* x_39; obj* x_41; obj* x_43; obj* x_45; obj* x_47; obj* x_51; uint8 x_52; +x_39 = lean::cnstr_get(x_1, 0); +x_41 = lean::cnstr_get(x_1, 1); +x_43 = lean::cnstr_get(x_1, 2); +x_45 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_47 = x_1; } else { - lean::inc(x_40); - lean::inc(x_42); - lean::inc(x_44); - lean::inc(x_46); - lean::dec(x_2); - x_48 = lean::box(0); + lean::inc(x_39); + lean::inc(x_41); + lean::inc(x_43); + lean::inc(x_45); + lean::dec(x_1); + x_47 = lean::box(0); } -lean::inc(x_42); -lean::inc(x_3); +lean::inc(x_41); +lean::inc(x_2); lean::inc(x_0); -x_52 = lean::apply_2(x_0, x_3, x_42); -x_53 = lean::unbox(x_52); -if (x_53 == 0) +x_51 = lean::apply_2(x_0, x_2, x_41); +x_52 = lean::unbox(x_51); +if (x_52 == 0) { -obj* x_57; uint8 x_58; -lean::inc(x_3); -lean::inc(x_42); +obj* x_56; uint8 x_57; +lean::inc(x_2); +lean::inc(x_41); lean::inc(x_0); -x_57 = lean::apply_2(x_0, x_42, x_3); -x_58 = lean::unbox(x_57); -if (x_58 == 0) +x_56 = lean::apply_2(x_0, x_41, x_2); +x_57 = lean::unbox(x_56); +if (x_57 == 0) { -obj* x_62; obj* x_63; +obj* x_61; obj* x_62; lean::dec(x_0); -lean::dec(x_44); -lean::dec(x_42); -if (lean::is_scalar(x_48)) { - x_62 = lean::alloc_cnstr(1, 4, 1); +lean::dec(x_41); +lean::dec(x_43); +if (lean::is_scalar(x_47)) { + x_61 = lean::alloc_cnstr(1, 4, 1); } else { - x_62 = x_48; + x_61 = x_47; } -lean::cnstr_set(x_62, 0, x_40); -lean::cnstr_set(x_62, 1, x_3); -lean::cnstr_set(x_62, 2, x_4); -lean::cnstr_set(x_62, 3, x_46); -lean::cnstr_set_scalar(x_62, sizeof(void*)*4, x_9); -x_63 = x_62; -return x_63; +lean::cnstr_set(x_61, 0, x_39); +lean::cnstr_set(x_61, 1, x_2); +lean::cnstr_set(x_61, 2, x_3); +lean::cnstr_set(x_61, 3, x_45); +lean::cnstr_set_scalar(x_61, sizeof(void*)*4, x_8); +x_62 = x_61; +return x_62; } else { -uint8 x_64; -x_64 = l_rbnode_is__red___main___rarg(x_46); -if (x_64 == 0) +uint8 x_63; +x_63 = l_rbnode_is__red___main___rarg(x_45); +if (x_63 == 0) { -obj* x_65; obj* x_66; obj* x_67; -x_65 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_46, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_66 = lean::alloc_cnstr(1, 4, 1); +obj* x_64; obj* x_65; obj* x_66; +x_64 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_45, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_65 = lean::alloc_cnstr(1, 4, 1); } else { - x_66 = x_48; + x_65 = x_47; } -lean::cnstr_set(x_66, 0, x_40); -lean::cnstr_set(x_66, 1, x_42); -lean::cnstr_set(x_66, 2, x_44); -lean::cnstr_set(x_66, 3, x_65); -lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_9); -x_67 = x_66; -return x_67; +lean::cnstr_set(x_65, 0, x_39); +lean::cnstr_set(x_65, 1, x_41); +lean::cnstr_set(x_65, 2, x_43); +lean::cnstr_set(x_65, 3, x_64); +lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_8); +x_66 = x_65; +return x_66; } else { -obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; -x_68 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_69 = lean::alloc_cnstr(1, 4, 1); +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_67 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_68 = lean::alloc_cnstr(1, 4, 1); } else { - x_69 = x_48; + x_68 = x_47; } -lean::cnstr_set(x_69, 0, x_40); -lean::cnstr_set(x_69, 1, x_42); -lean::cnstr_set(x_69, 2, x_44); -lean::cnstr_set(x_69, 3, x_68); -lean::cnstr_set_scalar(x_69, sizeof(void*)*4, x_9); -x_70 = x_69; -x_71 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_46, x_3, x_4); -x_72 = l_rbnode_balance2___main___rarg(x_70, x_71); -return x_72; +lean::cnstr_set(x_68, 0, x_39); +lean::cnstr_set(x_68, 1, x_41); +lean::cnstr_set(x_68, 2, x_43); +lean::cnstr_set(x_68, 3, x_67); +lean::cnstr_set_scalar(x_68, sizeof(void*)*4, x_8); +x_69 = x_68; +x_70 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_45, x_2, x_3); +x_71 = l_rbnode_balance2___main___rarg(x_69, x_70); +return x_71; } } } else { -uint8 x_73; -x_73 = l_rbnode_is__red___main___rarg(x_40); -if (x_73 == 0) +uint8 x_72; +x_72 = l_rbnode_is__red___main___rarg(x_39); +if (x_72 == 0) { -obj* x_74; obj* x_75; obj* x_76; -x_74 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_40, x_3, x_4); -if (lean::is_scalar(x_48)) { - x_75 = lean::alloc_cnstr(1, 4, 1); +obj* x_73; obj* x_74; obj* x_75; +x_73 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_39, x_2, x_3); +if (lean::is_scalar(x_47)) { + x_74 = lean::alloc_cnstr(1, 4, 1); } else { - x_75 = x_48; + x_74 = x_47; } -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_42); -lean::cnstr_set(x_75, 2, x_44); -lean::cnstr_set(x_75, 3, x_46); -lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_9); -x_76 = x_75; -return x_76; +lean::cnstr_set(x_74, 0, x_73); +lean::cnstr_set(x_74, 1, x_41); +lean::cnstr_set(x_74, 2, x_43); +lean::cnstr_set(x_74, 3, x_45); +lean::cnstr_set_scalar(x_74, sizeof(void*)*4, x_8); +x_75 = x_74; +return x_75; } else { -obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; -x_77 = lean::box(0); -if (lean::is_scalar(x_48)) { - x_78 = lean::alloc_cnstr(1, 4, 1); +obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +x_76 = lean::box(0); +if (lean::is_scalar(x_47)) { + x_77 = lean::alloc_cnstr(1, 4, 1); } else { - x_78 = x_48; + x_77 = x_47; } -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_42); -lean::cnstr_set(x_78, 2, x_44); -lean::cnstr_set(x_78, 3, x_46); -lean::cnstr_set_scalar(x_78, sizeof(void*)*4, x_9); -x_79 = x_78; -x_80 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_40, x_3, x_4); -x_81 = l_rbnode_balance1___main___rarg(x_79, x_80); -return x_81; +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_41); +lean::cnstr_set(x_77, 2, x_43); +lean::cnstr_set(x_77, 3, x_45); +lean::cnstr_set_scalar(x_77, sizeof(void*)*4, x_8); +x_78 = x_77; +x_79 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_39, x_2, x_3); +x_80 = l_rbnode_balance1___main___rarg(x_78, x_79); +return x_80; } } } } } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg___boxed), 5, 0); -return x_2; +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg), 4, 0); +return x_3; } } -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -uint8 x_5; -x_5 = l_rbnode_is__red___main___rarg(x_2); -if (x_5 == 0) +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) { -obj* x_6; -x_6 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, lean::box(0), x_2, x_3, x_4); -return x_6; +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_1, x_2, x_3); +return x_5; } else { -obj* x_7; obj* x_8; -x_7 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, lean::box(0), x_2, x_3, x_4); -x_8 = l_rbnode_set__black___main___rarg(x_7); -return x_8; +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } } @@ -2237,7 +2169,7 @@ obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3(obj* _start: { obj* x_3; -x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg___boxed), 5, 0); +x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg), 4, 0); return x_3; } } @@ -2245,7 +2177,7 @@ obj* l_rbmap_insert___main___at_lean_elaborator_ordered__rbmap_of__list___spec__ _start: { obj* x_4; -x_4 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(x_0, lean::box(0), x_1, x_2, x_3); +x_4 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(x_0, x_1, x_2, x_3); return x_4; } } @@ -2280,7 +2212,7 @@ lean::inc(x_12); x_16 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_16, 0, x_12); lean::cnstr_set(x_16, 1, x_3); -x_17 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(x_0, lean::box(0), x_10, x_2, x_16); +x_17 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(x_0, x_10, x_2, x_16); x_18 = lean::mk_nat_obj(1u); x_19 = lean::nat_add(x_12, x_18); lean::dec(x_12); @@ -2361,51 +2293,26 @@ x_3 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_ordered__rbm return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; -x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(x_0, x_1); +obj* x_3; +x_3 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__4(x_0, x_1, x_2); lean::dec(x_0); lean::dec(x_1); -return x_2; +lean::dec(x_2); +return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; -x_5 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(x_0, x_1); +obj* x_3; +x_3 = l_rbnode_ins___main___at_lean_elaborator_ordered__rbmap_of__list___spec__5(x_0, x_1, x_2); lean::dec(x_0); lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -obj* x_5; -x_5 = l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -return x_5; +lean::dec(x_2); +return x_3; } } obj* l_rbnode_insert___at_lean_elaborator_ordered__rbmap_of__list___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -3510,93 +3417,80 @@ return x_9; } } } -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg(obj* x_0, obj* x_1) { +obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_2; -x_2 = lean::box(0); -return x_2; +obj* x_4; +x_4 = lean::box(0); +return x_4; } else { -obj* x_3; obj* x_5; obj* x_7; obj* x_9; uint8 x_12; -x_3 = lean::cnstr_get(x_0, 0); -lean::inc(x_3); -x_5 = lean::cnstr_get(x_0, 1); +obj* x_5; obj* x_7; obj* x_9; obj* x_11; uint8 x_14; +x_5 = lean::cnstr_get(x_2, 0); lean::inc(x_5); -x_7 = lean::cnstr_get(x_0, 2); +x_7 = lean::cnstr_get(x_2, 1); lean::inc(x_7); -x_9 = lean::cnstr_get(x_0, 3); +x_9 = lean::cnstr_get(x_2, 2); lean::inc(x_9); -lean::dec(x_0); -x_12 = l_lean_name_quick__lt(x_1, x_5); -if (x_12 == 0) -{ -uint8 x_14; -lean::dec(x_3); -x_14 = l_lean_name_quick__lt(x_5, x_1); -lean::dec(x_5); +x_11 = lean::cnstr_get(x_2, 3); +lean::inc(x_11); +lean::dec(x_2); +x_14 = l_lean_name_quick__lt(x_3, x_7); if (x_14 == 0) { -obj* x_17; -lean::dec(x_9); -x_17 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_17, 0, x_7); -return x_17; -} -else -{ -lean::dec(x_7); -x_0 = x_9; -goto _start; -} -} -else -{ -lean::dec(x_7); -lean::dec(x_9); +uint8 x_16; lean::dec(x_5); -x_0 = x_3; +x_16 = l_lean_name_quick__lt(x_7, x_3); +lean::dec(x_7); +if (x_16 == 0) +{ +obj* x_19; +lean::dec(x_11); +x_19 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_19, 0, x_9); +return x_19; +} +else +{ +lean::dec(x_9); +x_1 = x_0; +x_2 = x_11; +goto _start; +} +} +else +{ +lean::dec(x_7); +lean::dec(x_9); +lean::dec(x_11); +x_1 = x_0; +x_2 = x_5; goto _start; } } } } -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(obj* x_0, obj* x_1) { +obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg___boxed), 2, 0); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg(x_0, x_1); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg___boxed), 2, 0); -return x_2; +obj* x_3; +x_3 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(x_0, lean::box(0), x_1, x_2); +return x_3; } } obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_to__level___main___spec__5(obj* x_0, obj* x_1) { _start: { -obj* x_2; obj* x_5; -x_2 = lean::cnstr_get(x_0, 1); -lean::inc(x_2); +obj* x_2; obj* x_3; obj* x_6; +x_2 = lean::box(0); +x_3 = lean::cnstr_get(x_0, 1); +lean::inc(x_3); lean::dec(x_0); -x_5 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg(x_2, x_1); -return x_5; +x_6 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(x_2, lean::box(0), x_3, x_1); +return x_6; } } obj* _init_l_lean_elaborator_to__level___main___closed__1() { @@ -4420,42 +4314,25 @@ lean::dec(x_0); return x_2; } } -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___rarg(x_0, x_1); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_find___main___at_lean_elaborator_to__level___main___spec__7(x_0, x_1, x_2, x_3); lean::dec(x_0); lean::dec(x_1); -return x_2; +lean::dec(x_3); +return x_4; } } -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg___boxed(obj* x_0, obj* x_1) { +obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___rarg(x_0, x_1); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(x_0, x_1); +obj* x_3; +x_3 = l_rbmap_find___main___at_lean_elaborator_to__level___main___spec__6(x_0, x_1, x_2); lean::dec(x_0); -lean::dec(x_1); -return x_2; +lean::dec(x_2); +return x_3; } } obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_to__level___main___spec__5___boxed(obj* x_0, obj* x_1) { @@ -14057,602 +13934,561 @@ lean::dec(x_0); return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___rarg(x_0, x_1, x_2); -return x_3; +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(obj* x_0) { +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(x_0, x_1, x_2, x_3); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_12; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_21; +lean::inc(x_3); +lean::inc(x_2); +x_6 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_6, 0, x_2); +lean::cnstr_set(x_6, 1, x_3); +x_7 = lean::cnstr_get(x_1, 0); +lean::inc(x_7); +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_6); +lean::cnstr_set(x_9, 1, x_7); +x_10 = lean::cnstr_get(x_1, 1); +lean::inc(x_10); +x_12 = lean::cnstr_get(x_1, 2); +lean::inc(x_12); +lean::dec(x_1); +lean::inc(x_12); +x_16 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_16, 0, x_12); +lean::cnstr_set(x_16, 1, x_3); +x_17 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(x_0, x_10, x_2, x_16); +x_18 = lean::mk_nat_obj(1u); +x_19 = lean::nat_add(x_12, x_18); +lean::dec(x_12); +x_21 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_21, 0, x_9); +lean::cnstr_set(x_21, 1, x_17); +lean::cnstr_set(x_21, 2, x_19); +return x_21; +} +} +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7(obj* x_0) { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___rarg), 3, 0); +x_1 = l_lean_elaborator_ordered__rbmap_empty___closed__1; return x_1; } } -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; obj* x_6; obj* x_8; obj* x_9; obj* x_11; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_20; -lean::inc(x_2); -lean::inc(x_1); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_1); -lean::cnstr_set(x_5, 1, x_2); -x_6 = lean::cnstr_get(x_0, 0); -lean::inc(x_6); -x_8 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_8, 0, x_5); -lean::cnstr_set(x_8, 1, x_6); -x_9 = lean::cnstr_get(x_0, 1); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_0, 2); -lean::inc(x_11); -lean::dec(x_0); -lean::inc(x_11); -x_15 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_2); -x_16 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___rarg(x_9, x_1, x_15); -x_17 = lean::mk_nat_obj(1u); -x_18 = lean::nat_add(x_11, x_17); -lean::dec(x_11); -x_20 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_20, 0, x_8); -lean::cnstr_set(x_20, 1, x_16); -lean::cnstr_set(x_20, 2, x_18); -return x_20; -} -} -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(obj* x_0, obj* x_1) { -_start: +if (lean::obj_tag(x_2) == 0) { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___rarg), 3, 0); -return x_2; -} -} -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_empty___closed__1; -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -if (lean::obj_tag(x_3) == 0) -{ -return x_2; +return x_1; } else { -obj* x_4; obj* x_6; obj* x_9; obj* x_11; obj* x_14; -x_4 = lean::cnstr_get(x_3, 0); -lean::inc(x_4); -x_6 = lean::cnstr_get(x_3, 1); -lean::inc(x_6); +obj* x_3; obj* x_5; obj* x_8; obj* x_10; obj* x_13; +x_3 = lean::cnstr_get(x_2, 0); +lean::inc(x_3); +x_5 = lean::cnstr_get(x_2, 1); +lean::inc(x_5); +lean::dec(x_2); +x_8 = lean::cnstr_get(x_3, 0); +lean::inc(x_8); +x_10 = lean::cnstr_get(x_3, 1); +lean::inc(x_10); lean::dec(x_3); -x_9 = lean::cnstr_get(x_4, 0); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_4, 1); -lean::inc(x_11); -lean::dec(x_4); -x_14 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___rarg(x_2, x_9, x_11); -x_1 = x_0; -x_2 = x_14; -x_3 = x_6; +x_13 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(x_0, x_1, x_8, x_10); +x_1 = x_13; +x_2 = x_5; goto _start; } } @@ -14671,606 +14507,565 @@ _start: obj* x_1; obj* x_2; obj* x_3; x_1 = lean::box(0); x_2 = l_lean_elaborator_ordered__rbmap_of__list___at_lean_elaborator_old__elab__command___spec__1___closed__1; -x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(x_1, lean::box(0), x_2, x_0); +x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(x_1, x_2, x_0); return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___rarg(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___rarg(x_0, x_1, x_2); -return x_3; +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(obj* x_0) { +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(x_0, x_1, x_2, x_3); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_12; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_21; +lean::inc(x_3); +lean::inc(x_2); +x_6 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_6, 0, x_2); +lean::cnstr_set(x_6, 1, x_3); +x_7 = lean::cnstr_get(x_1, 0); +lean::inc(x_7); +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_6); +lean::cnstr_set(x_9, 1, x_7); +x_10 = lean::cnstr_get(x_1, 1); +lean::inc(x_10); +x_12 = lean::cnstr_get(x_1, 2); +lean::inc(x_12); +lean::dec(x_1); +lean::inc(x_12); +x_16 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_16, 0, x_12); +lean::cnstr_set(x_16, 1, x_3); +x_17 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(x_0, x_10, x_2, x_16); +x_18 = lean::mk_nat_obj(1u); +x_19 = lean::nat_add(x_12, x_18); +lean::dec(x_12); +x_21 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_21, 0, x_9); +lean::cnstr_set(x_21, 1, x_17); +lean::cnstr_set(x_21, 2, x_19); +return x_21; +} +} +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(obj* x_0) { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___rarg), 3, 0); +x_1 = l_lean_elaborator_ordered__rbmap_empty___closed__1; return x_1; } } -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; obj* x_6; obj* x_8; obj* x_9; obj* x_11; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_20; -lean::inc(x_2); -lean::inc(x_1); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_1); -lean::cnstr_set(x_5, 1, x_2); -x_6 = lean::cnstr_get(x_0, 0); -lean::inc(x_6); -x_8 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_8, 0, x_5); -lean::cnstr_set(x_8, 1, x_6); -x_9 = lean::cnstr_get(x_0, 1); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_0, 2); -lean::inc(x_11); -lean::dec(x_0); -lean::inc(x_11); -x_15 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_2); -x_16 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___rarg(x_9, x_1, x_15); -x_17 = lean::mk_nat_obj(1u); -x_18 = lean::nat_add(x_11, x_17); -lean::dec(x_11); -x_20 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_20, 0, x_8); -lean::cnstr_set(x_20, 1, x_16); -lean::cnstr_set(x_20, 2, x_18); -return x_20; -} -} -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(obj* x_0, obj* x_1) { -_start: +if (lean::obj_tag(x_2) == 0) { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___rarg), 3, 0); -return x_2; -} -} -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_empty___closed__1; -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -if (lean::obj_tag(x_3) == 0) -{ -return x_2; +return x_1; } else { -obj* x_4; obj* x_6; obj* x_9; obj* x_11; obj* x_14; -x_4 = lean::cnstr_get(x_3, 0); -lean::inc(x_4); -x_6 = lean::cnstr_get(x_3, 1); -lean::inc(x_6); +obj* x_3; obj* x_5; obj* x_8; obj* x_10; obj* x_13; +x_3 = lean::cnstr_get(x_2, 0); +lean::inc(x_3); +x_5 = lean::cnstr_get(x_2, 1); +lean::inc(x_5); +lean::dec(x_2); +x_8 = lean::cnstr_get(x_3, 0); +lean::inc(x_8); +x_10 = lean::cnstr_get(x_3, 1); +lean::inc(x_10); lean::dec(x_3); -x_9 = lean::cnstr_get(x_4, 0); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_4, 1); -lean::inc(x_11); -lean::dec(x_4); -x_14 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___rarg(x_2, x_9, x_11); -x_1 = x_0; -x_2 = x_14; -x_3 = x_6; +x_13 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(x_0, x_1, x_8, x_10); +x_1 = x_13; +x_2 = x_5; goto _start; } } @@ -15289,530 +15084,498 @@ _start: obj* x_1; obj* x_2; obj* x_3; x_1 = lean::box(0); x_2 = l_lean_elaborator_ordered__rbmap_of__list___at_lean_elaborator_old__elab__command___spec__9___closed__1; -x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(x_1, lean::box(0), x_2, x_0); +x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(x_1, x_2, x_0); return x_3; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(obj* x_0) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___rarg), 3, 0); -return x_1; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___rarg(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___rarg(x_0, x_1, x_2); -return x_3; +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(obj* x_0, obj* x_1) { +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___rarg), 3, 0); -return x_2; +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(x_0, x_1, x_2, x_3); +return x_4; } } obj* l_rbtree_of__list___main___at_lean_elaborator_old__elab__command___spec__17(obj* x_0) { @@ -15826,16 +15589,17 @@ return x_1; } else { -obj* x_2; obj* x_4; obj* x_7; obj* x_8; obj* x_9; +obj* x_2; obj* x_4; obj* x_7; obj* x_8; obj* x_9; obj* x_10; x_2 = lean::cnstr_get(x_0, 0); lean::inc(x_2); x_4 = lean::cnstr_get(x_0, 1); lean::inc(x_4); lean::dec(x_0); -x_7 = l_rbtree_of__list___main___at_lean_elaborator_old__elab__command___spec__17(x_4); -x_8 = lean::box(0); -x_9 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___rarg(x_7, x_2, x_8); -return x_9; +x_7 = lean::box(0); +x_8 = l_rbtree_of__list___main___at_lean_elaborator_old__elab__command___spec__17(x_4); +x_9 = lean::box(0); +x_10 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(x_7, x_8, x_2, x_9); +return x_10; } } } @@ -16223,179 +15987,166 @@ return x_185; } } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__5(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__6(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___boxed(obj* x_0) { +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__4(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__3(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__2(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7___boxed(obj* x_0) { _start: { obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0); +x_1 = l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__7(x_0); lean::dec(x_0); return x_1; } } -obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___boxed(obj* x_0) { +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__8(x_0, x_1, x_2); +lean::dec(x_0); +return x_3; +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__13(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__14(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__12(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__11(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_old__elab__command___spec__10(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15___boxed(obj* x_0) { _start: { obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0); +x_1 = l_lean_elaborator_ordered__rbmap_empty___at_lean_elaborator_old__elab__command___spec__15(x_0); lean::dec(x_0); return x_1; } } -obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___boxed(obj* x_0) { +obj* l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_1; -x_1 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(x_0); +obj* x_3; +x_3 = l_list_foldl___main___at_lean_elaborator_old__elab__command___spec__16(x_0, x_1, x_2); lean::dec(x_0); -return x_1; +return x_3; } } -obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__20(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_old__elab__command___spec__21(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_old__elab__command___spec__19(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_old__elab__command___spec__18(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; } } obj* l_lean_elaborator_old__elab__command___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -17707,214 +17458,214 @@ return x_47; } } } -obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { -if (lean::obj_tag(x_3) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_9; obj* x_10; obj* x_11; -lean::dec(x_5); -lean::dec(x_2); -x_9 = lean::box(0); -x_10 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_10, 0, x_9); -lean::cnstr_set(x_10, 1, x_6); -x_11 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_11, 0, x_10); -return x_11; +obj* x_7; obj* x_8; obj* x_9; +lean::dec(x_3); +lean::dec(x_0); +x_7 = lean::box(0); +x_8 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_8, 0, x_7); +lean::cnstr_set(x_8, 1, x_4); +x_9 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_9, 0, x_8); +return x_9; } else { -obj* x_12; obj* x_14; obj* x_16; obj* x_17; obj* x_20; -x_12 = lean::cnstr_get(x_3, 0); -x_14 = lean::cnstr_get(x_3, 1); -if (lean::is_exclusive(x_3)) { - lean::cnstr_set(x_3, 0, lean::box(0)); - lean::cnstr_set(x_3, 1, lean::box(0)); - x_16 = x_3; +obj* x_10; obj* x_12; obj* x_14; obj* x_15; obj* x_18; +x_10 = lean::cnstr_get(x_1, 0); +x_12 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + x_14 = x_1; } else { + lean::inc(x_10); lean::inc(x_12); - lean::inc(x_14); - lean::dec(x_3); - x_16 = lean::box(0); + lean::dec(x_1); + x_14 = lean::box(0); } -x_17 = lean::cnstr_get(x_12, 1); -lean::inc(x_17); -lean::inc(x_5); -x_20 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__1(x_17, x_4, x_5, x_6); -if (lean::obj_tag(x_20) == 0) +x_15 = lean::cnstr_get(x_10, 1); +lean::inc(x_15); +lean::inc(x_3); +x_18 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__1(x_15, x_2, x_3, x_4); +if (lean::obj_tag(x_18) == 0) { -obj* x_26; obj* x_28; obj* x_29; -lean::dec(x_5); -lean::dec(x_12); +obj* x_24; obj* x_26; obj* x_27; lean::dec(x_14); -lean::dec(x_2); -lean::dec(x_16); -x_26 = lean::cnstr_get(x_20, 0); -if (lean::is_exclusive(x_20)) { - x_28 = x_20; +lean::dec(x_3); +lean::dec(x_0); +lean::dec(x_10); +lean::dec(x_12); +x_24 = lean::cnstr_get(x_18, 0); +if (lean::is_exclusive(x_18)) { + x_26 = x_18; } else { - lean::inc(x_26); - lean::dec(x_20); - x_28 = lean::box(0); + lean::inc(x_24); + lean::dec(x_18); + x_26 = lean::box(0); } -if (lean::is_scalar(x_28)) { - x_29 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_26)) { + x_27 = lean::alloc_cnstr(0, 1, 0); } else { - x_29 = x_28; + x_27 = x_26; } -lean::cnstr_set(x_29, 0, x_26); -return x_29; +lean::cnstr_set(x_27, 0, x_24); +return x_27; } else { -obj* x_30; obj* x_33; obj* x_35; obj* x_37; obj* x_38; obj* x_42; -x_30 = lean::cnstr_get(x_20, 0); -lean::inc(x_30); -lean::dec(x_20); -x_33 = lean::cnstr_get(x_30, 0); -x_35 = lean::cnstr_get(x_30, 1); -if (lean::is_exclusive(x_30)) { - lean::cnstr_set(x_30, 0, lean::box(0)); - lean::cnstr_set(x_30, 1, lean::box(0)); - x_37 = x_30; +obj* x_28; obj* x_31; obj* x_33; obj* x_35; obj* x_36; obj* x_40; +x_28 = lean::cnstr_get(x_18, 0); +lean::inc(x_28); +lean::dec(x_18); +x_31 = lean::cnstr_get(x_28, 0); +x_33 = lean::cnstr_get(x_28, 1); +if (lean::is_exclusive(x_28)) { + lean::cnstr_set(x_28, 0, lean::box(0)); + lean::cnstr_set(x_28, 1, lean::box(0)); + x_35 = x_28; } else { + lean::inc(x_31); lean::inc(x_33); - lean::inc(x_35); - lean::dec(x_30); - x_37 = lean::box(0); + lean::dec(x_28); + x_35 = lean::box(0); } -x_38 = lean::cnstr_get(x_12, 3); -lean::inc(x_38); -lean::dec(x_12); -lean::inc(x_5); -x_42 = l_lean_elaborator_to__pexpr___main(x_38, x_4, x_5, x_35); -if (lean::obj_tag(x_42) == 0) +x_36 = lean::cnstr_get(x_10, 3); +lean::inc(x_36); +lean::dec(x_10); +lean::inc(x_3); +x_40 = l_lean_elaborator_to__pexpr___main(x_36, x_2, x_3, x_33); +if (lean::obj_tag(x_40) == 0) { -obj* x_49; obj* x_51; obj* x_52; -lean::dec(x_5); +obj* x_47; obj* x_49; obj* x_50; lean::dec(x_14); -lean::dec(x_2); -lean::dec(x_33); -lean::dec(x_16); -lean::dec(x_37); -x_49 = lean::cnstr_get(x_42, 0); -if (lean::is_exclusive(x_42)) { - x_51 = x_42; +lean::dec(x_3); +lean::dec(x_0); +lean::dec(x_12); +lean::dec(x_35); +lean::dec(x_31); +x_47 = lean::cnstr_get(x_40, 0); +if (lean::is_exclusive(x_40)) { + x_49 = x_40; } else { - lean::inc(x_49); - lean::dec(x_42); - x_51 = lean::box(0); + lean::inc(x_47); + lean::dec(x_40); + x_49 = lean::box(0); } -if (lean::is_scalar(x_51)) { - x_52 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_49)) { + x_50 = lean::alloc_cnstr(0, 1, 0); } else { - x_52 = x_51; + x_50 = x_49; } -lean::cnstr_set(x_52, 0, x_49); -return x_52; +lean::cnstr_set(x_50, 0, x_47); +return x_50; } else { -obj* x_53; obj* x_56; obj* x_58; obj* x_60; obj* x_62; -x_53 = lean::cnstr_get(x_42, 0); -lean::inc(x_53); -lean::dec(x_42); -x_56 = lean::cnstr_get(x_53, 0); -x_58 = lean::cnstr_get(x_53, 1); -if (lean::is_exclusive(x_53)) { - lean::cnstr_set(x_53, 0, lean::box(0)); - lean::cnstr_set(x_53, 1, lean::box(0)); - x_60 = x_53; +obj* x_51; obj* x_54; obj* x_56; obj* x_58; obj* x_60; +x_51 = lean::cnstr_get(x_40, 0); +lean::inc(x_51); +lean::dec(x_40); +x_54 = lean::cnstr_get(x_51, 0); +x_56 = lean::cnstr_get(x_51, 1); +if (lean::is_exclusive(x_51)) { + lean::cnstr_set(x_51, 0, lean::box(0)); + lean::cnstr_set(x_51, 1, lean::box(0)); + x_58 = x_51; } else { + lean::inc(x_54); lean::inc(x_56); - lean::inc(x_58); - lean::dec(x_53); - x_60 = lean::box(0); + lean::dec(x_51); + x_58 = lean::box(0); } -lean::inc(x_2); -x_62 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_0, x_1, x_2, x_14, x_4, x_5, x_58); -if (lean::obj_tag(x_62) == 0) +lean::inc(x_0); +x_60 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_0, x_12, x_2, x_3, x_56); +if (lean::obj_tag(x_60) == 0) { -obj* x_69; obj* x_71; obj* x_72; -lean::dec(x_2); -lean::dec(x_60); -lean::dec(x_33); -lean::dec(x_16); -lean::dec(x_37); -lean::dec(x_56); -x_69 = lean::cnstr_get(x_62, 0); -if (lean::is_exclusive(x_62)) { - x_71 = x_62; +obj* x_67; obj* x_69; obj* x_70; +lean::dec(x_14); +lean::dec(x_0); +lean::dec(x_35); +lean::dec(x_31); +lean::dec(x_54); +lean::dec(x_58); +x_67 = lean::cnstr_get(x_60, 0); +if (lean::is_exclusive(x_60)) { + x_69 = x_60; } else { - lean::inc(x_69); - lean::dec(x_62); - x_71 = lean::box(0); + lean::inc(x_67); + lean::dec(x_60); + x_69 = lean::box(0); } -if (lean::is_scalar(x_71)) { - x_72 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_69)) { + x_70 = lean::alloc_cnstr(0, 1, 0); } else { - x_72 = x_71; + x_70 = x_69; } -lean::cnstr_set(x_72, 0, x_69); -return x_72; +lean::cnstr_set(x_70, 0, x_67); +return x_70; } else { -obj* x_73; obj* x_75; obj* x_76; obj* x_78; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; -x_73 = lean::cnstr_get(x_62, 0); -if (lean::is_exclusive(x_62)) { - x_75 = x_62; +obj* x_71; obj* x_73; obj* x_74; obj* x_76; obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; +x_71 = lean::cnstr_get(x_60, 0); +if (lean::is_exclusive(x_60)) { + x_73 = x_60; } else { - lean::inc(x_73); - lean::dec(x_62); - x_75 = lean::box(0); + lean::inc(x_71); + lean::dec(x_60); + x_73 = lean::box(0); } -x_76 = lean::cnstr_get(x_73, 0); -x_78 = lean::cnstr_get(x_73, 1); -if (lean::is_exclusive(x_73)) { - x_80 = x_73; +x_74 = lean::cnstr_get(x_71, 0); +x_76 = lean::cnstr_get(x_71, 1); +if (lean::is_exclusive(x_71)) { + x_78 = x_71; } else { + lean::inc(x_74); lean::inc(x_76); - lean::inc(x_78); - lean::dec(x_73); - x_80 = lean::box(0); + lean::dec(x_71); + x_78 = lean::box(0); } -if (lean::is_scalar(x_80)) { - x_81 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_78)) { + x_79 = lean::alloc_cnstr(0, 2, 0); } else { - x_81 = x_80; + x_79 = x_78; } -lean::cnstr_set(x_81, 0, x_33); -lean::cnstr_set(x_81, 1, x_56); -if (lean::is_scalar(x_60)) { +lean::cnstr_set(x_79, 0, x_31); +lean::cnstr_set(x_79, 1, x_54); +if (lean::is_scalar(x_58)) { + x_80 = lean::alloc_cnstr(0, 2, 0); +} else { + x_80 = x_58; +} +lean::cnstr_set(x_80, 0, x_0); +lean::cnstr_set(x_80, 1, x_79); +if (lean::is_scalar(x_14)) { + x_81 = lean::alloc_cnstr(1, 2, 0); +} else { + x_81 = x_14; +} +lean::cnstr_set(x_81, 0, x_80); +lean::cnstr_set(x_81, 1, x_74); +if (lean::is_scalar(x_35)) { x_82 = lean::alloc_cnstr(0, 2, 0); } else { - x_82 = x_60; + x_82 = x_35; } -lean::cnstr_set(x_82, 0, x_2); -lean::cnstr_set(x_82, 1, x_81); -if (lean::is_scalar(x_16)) { - x_83 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_82, 0, x_81); +lean::cnstr_set(x_82, 1, x_76); +if (lean::is_scalar(x_73)) { + x_83 = lean::alloc_cnstr(1, 1, 0); } else { - x_83 = x_16; + x_83 = x_73; } lean::cnstr_set(x_83, 0, x_82); -lean::cnstr_set(x_83, 1, x_76); -if (lean::is_scalar(x_37)) { - x_84 = lean::alloc_cnstr(0, 2, 0); -} else { - x_84 = x_37; -} -lean::cnstr_set(x_84, 0, x_83); -lean::cnstr_set(x_84, 1, x_78); -if (lean::is_scalar(x_75)) { - x_85 = lean::alloc_cnstr(1, 1, 0); -} else { - x_85 = x_75; -} -lean::cnstr_set(x_85, 0, x_84); -return x_85; +return x_83; } } } @@ -17956,560 +17707,529 @@ return x_9; } } } -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___rarg(x_0, x_1, x_2); -return x_3; +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; } } -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(obj* x_0, obj* x_1) { +} +obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___rarg), 3, 0); -return x_2; +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(x_0, x_1, x_2, x_3); +return x_4; } } obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_elab__def__like___spec__4(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; obj* x_6; obj* x_8; obj* x_9; obj* x_11; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_20; +obj* x_3; obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_12; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_21; +x_3 = lean::box(0); lean::inc(x_2); lean::inc(x_1); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_1); -lean::cnstr_set(x_5, 1, x_2); -x_6 = lean::cnstr_get(x_0, 0); -lean::inc(x_6); -x_8 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_8, 0, x_5); -lean::cnstr_set(x_8, 1, x_6); -x_9 = lean::cnstr_get(x_0, 1); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_0, 2); -lean::inc(x_11); +x_6 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +x_7 = lean::cnstr_get(x_0, 0); +lean::inc(x_7); +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_6); +lean::cnstr_set(x_9, 1, x_7); +x_10 = lean::cnstr_get(x_0, 1); +lean::inc(x_10); +x_12 = lean::cnstr_get(x_0, 2); +lean::inc(x_12); lean::dec(x_0); -lean::inc(x_11); -x_15 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_2); -x_16 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___rarg(x_9, x_1, x_15); -x_17 = lean::mk_nat_obj(1u); -x_18 = lean::nat_add(x_11, x_17); -lean::dec(x_11); -x_20 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_20, 0, x_8); -lean::cnstr_set(x_20, 1, x_16); -lean::cnstr_set(x_20, 2, x_18); -return x_20; +lean::inc(x_12); +x_16 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_16, 0, x_12); +lean::cnstr_set(x_16, 1, x_2); +x_17 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(x_3, x_10, x_1, x_16); +x_18 = lean::mk_nat_obj(1u); +x_19 = lean::nat_add(x_12, x_18); +lean::dec(x_12); +x_21 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_21, 0, x_9); +lean::cnstr_set(x_21, 1, x_17); +lean::cnstr_set(x_21, 2, x_19); +return x_21; } } obj* l_list_map___main___at_lean_elaborator_elab__def__like___spec__9(obj* x_0) { @@ -19003,7 +18723,7 @@ if (lean::is_exclusive(x_60)) { x_171 = l_lean_elaborator_names__to__pexpr(x_59); x_172 = lean::cnstr_get(x_23, 0); lean::inc(x_172); -lean::inc(x_172); +lean::dec(x_23); x_175 = l_lean_elaborator_mangle__ident(x_172); x_176 = 4; lean::inc(x_166); @@ -19018,23 +18738,21 @@ x_183 = l_lean_expr_mk__capp(x_182, x_181); switch (lean::obj_tag(x_25)) { case 0: { -obj* x_191; obj* x_194; obj* x_198; +obj* x_189; obj* x_192; obj* x_196; lean::dec(x_170); lean::dec(x_175); -lean::dec(x_23); lean::dec(x_166); -lean::dec(x_172); -x_191 = lean::cnstr_get(x_25, 0); -lean::inc(x_191); +x_189 = lean::cnstr_get(x_25, 0); +lean::inc(x_189); lean::dec(x_25); -x_194 = lean::cnstr_get(x_191, 1); -lean::inc(x_194); -lean::dec(x_191); +x_192 = lean::cnstr_get(x_189, 1); +lean::inc(x_192); +lean::dec(x_189); lean::inc(x_5); -x_198 = l_lean_elaborator_to__pexpr___main(x_194, x_4, x_5, x_168); -if (lean::obj_tag(x_198) == 0) +x_196 = l_lean_elaborator_to__pexpr___main(x_192, x_4, x_5, x_168); +if (lean::obj_tag(x_196) == 0) { -obj* x_206; obj* x_208; obj* x_209; +obj* x_204; obj* x_206; obj* x_207; lean::dec(x_183); lean::dec(x_5); lean::dec(x_31); @@ -19042,64 +18760,60 @@ lean::dec(x_0); lean::dec(x_58); lean::dec(x_51); lean::dec(x_171); -x_206 = lean::cnstr_get(x_198, 0); -if (lean::is_exclusive(x_198)) { - x_208 = x_198; +x_204 = lean::cnstr_get(x_196, 0); +if (lean::is_exclusive(x_196)) { + x_206 = x_196; } else { - lean::inc(x_206); - lean::dec(x_198); - x_208 = lean::box(0); + lean::inc(x_204); + lean::dec(x_196); + x_206 = lean::box(0); } -if (lean::is_scalar(x_208)) { - x_209 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_206)) { + x_207 = lean::alloc_cnstr(0, 1, 0); } else { - x_209 = x_208; + x_207 = x_206; } -lean::cnstr_set(x_209, 0, x_206); -return x_209; +lean::cnstr_set(x_207, 0, x_204); +return x_207; } else { -obj* x_210; -x_210 = lean::cnstr_get(x_198, 0); -lean::inc(x_210); -lean::dec(x_198); -x_184 = x_210; +obj* x_208; +x_208 = lean::cnstr_get(x_196, 0); +lean::inc(x_208); +lean::dec(x_196); +x_184 = x_208; goto lbl_185; } } case 1: { -obj* x_217; obj* x_218; +obj* x_213; obj* x_214; lean::dec(x_175); -lean::dec(x_23); lean::dec(x_25); -lean::dec(x_172); -x_217 = l_lean_elaborator_mk__eqns(x_166, x_56); +x_213 = l_lean_elaborator_mk__eqns(x_166, x_56); if (lean::is_scalar(x_170)) { - x_218 = lean::alloc_cnstr(0, 2, 0); + x_214 = lean::alloc_cnstr(0, 2, 0); } else { - x_218 = x_170; + x_214 = x_170; } -lean::cnstr_set(x_218, 0, x_217); -lean::cnstr_set(x_218, 1, x_168); -x_184 = x_218; +lean::cnstr_set(x_214, 0, x_213); +lean::cnstr_set(x_214, 1, x_168); +x_184 = x_214; goto lbl_185; } default: { -obj* x_220; obj* x_224; +obj* x_216; obj* x_220; lean::dec(x_170); -x_220 = lean::cnstr_get(x_25, 0); -lean::inc(x_220); +x_216 = lean::cnstr_get(x_25, 0); +lean::inc(x_216); lean::dec(x_25); lean::inc(x_5); -x_224 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_23, x_172, x_175, x_220, x_4, x_5, x_168); -lean::dec(x_172); -lean::dec(x_23); -if (lean::obj_tag(x_224) == 0) +x_220 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_175, x_216, x_4, x_5, x_168); +if (lean::obj_tag(x_220) == 0) { -obj* x_235; obj* x_237; obj* x_238; +obj* x_229; obj* x_231; obj* x_232; lean::dec(x_183); lean::dec(x_5); lean::dec(x_31); @@ -19108,122 +18822,122 @@ lean::dec(x_58); lean::dec(x_51); lean::dec(x_166); lean::dec(x_171); -x_235 = lean::cnstr_get(x_224, 0); -if (lean::is_exclusive(x_224)) { - x_237 = x_224; +x_229 = lean::cnstr_get(x_220, 0); +if (lean::is_exclusive(x_220)) { + x_231 = x_220; } else { - lean::inc(x_235); - lean::dec(x_224); - x_237 = lean::box(0); + lean::inc(x_229); + lean::dec(x_220); + x_231 = lean::box(0); } -if (lean::is_scalar(x_237)) { - x_238 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_231)) { + x_232 = lean::alloc_cnstr(0, 1, 0); } else { - x_238 = x_237; + x_232 = x_231; } -lean::cnstr_set(x_238, 0, x_235); -return x_238; +lean::cnstr_set(x_232, 0, x_229); +return x_232; } else { -obj* x_239; obj* x_242; obj* x_244; obj* x_246; obj* x_247; obj* x_248; -x_239 = lean::cnstr_get(x_224, 0); -lean::inc(x_239); -lean::dec(x_224); -x_242 = lean::cnstr_get(x_239, 0); -x_244 = lean::cnstr_get(x_239, 1); -if (lean::is_exclusive(x_239)) { - x_246 = x_239; +obj* x_233; obj* x_236; obj* x_238; obj* x_240; obj* x_241; obj* x_242; +x_233 = lean::cnstr_get(x_220, 0); +lean::inc(x_233); +lean::dec(x_220); +x_236 = lean::cnstr_get(x_233, 0); +x_238 = lean::cnstr_get(x_233, 1); +if (lean::is_exclusive(x_233)) { + x_240 = x_233; } else { - lean::inc(x_242); - lean::inc(x_244); - lean::dec(x_239); - x_246 = lean::box(0); + lean::inc(x_236); + lean::inc(x_238); + lean::dec(x_233); + x_240 = lean::box(0); } -x_247 = l_lean_elaborator_mk__eqns(x_166, x_242); -if (lean::is_scalar(x_246)) { - x_248 = lean::alloc_cnstr(0, 2, 0); +x_241 = l_lean_elaborator_mk__eqns(x_166, x_236); +if (lean::is_scalar(x_240)) { + x_242 = lean::alloc_cnstr(0, 2, 0); } else { - x_248 = x_246; + x_242 = x_240; } -lean::cnstr_set(x_248, 0, x_247); -lean::cnstr_set(x_248, 1, x_244); -x_184 = x_248; +lean::cnstr_set(x_242, 0, x_241); +lean::cnstr_set(x_242, 1, x_238); +x_184 = x_242; goto lbl_185; } } } lbl_185: { -obj* x_249; obj* x_251; obj* x_255; -x_249 = lean::cnstr_get(x_184, 0); -lean::inc(x_249); -x_251 = lean::cnstr_get(x_184, 1); -lean::inc(x_251); +obj* x_243; obj* x_245; obj* x_249; +x_243 = lean::cnstr_get(x_184, 0); +lean::inc(x_243); +x_245 = lean::cnstr_get(x_184, 1); +lean::inc(x_245); lean::dec(x_184); lean::inc(x_5); -x_255 = l_lean_elaborator_simple__binders__to__pexpr(x_31, x_4, x_5, x_251); -if (lean::obj_tag(x_255) == 0) +x_249 = l_lean_elaborator_simple__binders__to__pexpr(x_31, x_4, x_5, x_245); +if (lean::obj_tag(x_249) == 0) { -obj* x_263; obj* x_265; obj* x_266; -lean::dec(x_249); +obj* x_257; obj* x_259; obj* x_260; +lean::dec(x_243); lean::dec(x_183); lean::dec(x_5); lean::dec(x_0); lean::dec(x_58); lean::dec(x_51); lean::dec(x_171); -x_263 = lean::cnstr_get(x_255, 0); -if (lean::is_exclusive(x_255)) { - x_265 = x_255; +x_257 = lean::cnstr_get(x_249, 0); +if (lean::is_exclusive(x_249)) { + x_259 = x_249; } else { - lean::inc(x_263); - lean::dec(x_255); - x_265 = lean::box(0); + lean::inc(x_257); + lean::dec(x_249); + x_259 = lean::box(0); } -if (lean::is_scalar(x_265)) { - x_266 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_259)) { + x_260 = lean::alloc_cnstr(0, 1, 0); } else { - x_266 = x_265; + x_260 = x_259; } -lean::cnstr_set(x_266, 0, x_263); -return x_266; +lean::cnstr_set(x_260, 0, x_257); +return x_260; } else { -obj* x_267; obj* x_270; obj* x_272; obj* x_275; obj* x_276; obj* x_277; obj* x_278; obj* x_279; obj* x_280; obj* x_281; obj* x_282; obj* x_283; obj* x_284; -x_267 = lean::cnstr_get(x_255, 0); -lean::inc(x_267); -lean::dec(x_255); -x_270 = lean::cnstr_get(x_267, 0); -lean::inc(x_270); -x_272 = lean::cnstr_get(x_267, 1); -lean::inc(x_272); -lean::dec(x_267); -x_275 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_275, 0, x_249); -lean::cnstr_set(x_275, 1, x_56); -x_276 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_276, 0, x_270); -lean::cnstr_set(x_276, 1, x_275); -x_277 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_277, 0, x_183); -lean::cnstr_set(x_277, 1, x_276); -x_278 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_278, 0, x_171); -lean::cnstr_set(x_278, 1, x_277); -x_279 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_279, 0, x_58); -lean::cnstr_set(x_279, 1, x_278); -x_280 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_280, 0, x_51); -lean::cnstr_set(x_280, 1, x_279); -x_281 = l_lean_expr_mk__capp(x_182, x_280); -x_282 = l_lean_elaborator_elab__def__like___closed__2; -x_283 = lean_expr_mk_mdata(x_282, x_281); -x_284 = l_lean_elaborator_old__elab__command(x_0, x_283, x_4, x_5, x_272); +obj* x_261; obj* x_264; obj* x_266; obj* x_269; obj* x_270; obj* x_271; obj* x_272; obj* x_273; obj* x_274; obj* x_275; obj* x_276; obj* x_277; obj* x_278; +x_261 = lean::cnstr_get(x_249, 0); +lean::inc(x_261); +lean::dec(x_249); +x_264 = lean::cnstr_get(x_261, 0); +lean::inc(x_264); +x_266 = lean::cnstr_get(x_261, 1); +lean::inc(x_266); +lean::dec(x_261); +x_269 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_269, 0, x_243); +lean::cnstr_set(x_269, 1, x_56); +x_270 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_270, 0, x_264); +lean::cnstr_set(x_270, 1, x_269); +x_271 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_271, 0, x_183); +lean::cnstr_set(x_271, 1, x_270); +x_272 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_272, 0, x_171); +lean::cnstr_set(x_272, 1, x_271); +x_273 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_273, 0, x_58); +lean::cnstr_set(x_273, 1, x_272); +x_274 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_274, 0, x_51); +lean::cnstr_set(x_274, 1, x_273); +x_275 = l_lean_expr_mk__capp(x_182, x_274); +x_276 = l_lean_elaborator_elab__def__like___closed__2; +x_277 = lean_expr_mk_mdata(x_276, x_275); +x_278 = l_lean_elaborator_old__elab__command(x_0, x_277, x_4, x_5, x_266); lean::dec(x_0); -return x_284; +return x_278; } } } @@ -19240,55 +18954,49 @@ lean::dec(x_1); return x_4; } } -obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { -obj* x_7; -x_7 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_4); -return x_7; +obj* x_5; +x_5 = l_list_mmap___main___at_lean_elaborator_elab__def__like___spec__2(x_0, x_1, x_2, x_3, x_4); +lean::dec(x_2); +return x_5; } } -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__7(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_elab__def__like___spec__8(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_elab__def__like___spec__6(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___boxed(obj* x_0, obj* x_1) { +obj* l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(x_0, x_1); +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_elab__def__like___spec__5(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } obj* l_lean_elaborator_elab__def__like___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { @@ -22314,649 +22022,605 @@ lean::dec(x_11); return x_14; } } -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg(obj* x_0, obj* x_1) { +obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_2; -x_2 = lean::box(0); -return x_2; +obj* x_4; +x_4 = lean::box(0); +return x_4; } else { -obj* x_3; obj* x_5; obj* x_7; obj* x_9; uint8 x_12; -x_3 = lean::cnstr_get(x_0, 0); -lean::inc(x_3); -x_5 = lean::cnstr_get(x_0, 1); +obj* x_5; obj* x_7; obj* x_9; obj* x_11; uint8 x_14; +x_5 = lean::cnstr_get(x_2, 0); lean::inc(x_5); -x_7 = lean::cnstr_get(x_0, 2); +x_7 = lean::cnstr_get(x_2, 1); lean::inc(x_7); -x_9 = lean::cnstr_get(x_0, 3); +x_9 = lean::cnstr_get(x_2, 2); lean::inc(x_9); -lean::dec(x_0); -x_12 = l_lean_name_quick__lt(x_1, x_5); -if (x_12 == 0) -{ -uint8 x_14; -lean::dec(x_3); -x_14 = l_lean_name_quick__lt(x_5, x_1); -lean::dec(x_5); +x_11 = lean::cnstr_get(x_2, 3); +lean::inc(x_11); +lean::dec(x_2); +x_14 = l_lean_name_quick__lt(x_3, x_7); if (x_14 == 0) { -obj* x_17; -lean::dec(x_9); -x_17 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_17, 0, x_7); -return x_17; -} -else -{ -lean::dec(x_7); -x_0 = x_9; -goto _start; -} -} -else -{ -lean::dec(x_7); -lean::dec(x_9); +uint8 x_16; lean::dec(x_5); -x_0 = x_3; +x_16 = l_lean_name_quick__lt(x_7, x_3); +lean::dec(x_7); +if (x_16 == 0) +{ +obj* x_19; +lean::dec(x_11); +x_19 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_19, 0, x_9); +return x_19; +} +else +{ +lean::dec(x_9); +x_1 = x_0; +x_2 = x_11; +goto _start; +} +} +else +{ +lean::dec(x_7); +lean::dec(x_9); +lean::dec(x_11); +x_1 = x_0; +x_2 = x_5; goto _start; } } } } -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(obj* x_0, obj* x_1) { +obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg___boxed), 2, 0); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg(x_0, x_1); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg___boxed), 2, 0); -return x_2; +obj* x_3; +x_3 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(x_0, lean::box(0), x_1, x_2); +return x_3; } } obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_variables_elaborate___spec__1(obj* x_0, obj* x_1) { _start: { -obj* x_2; obj* x_5; -x_2 = lean::cnstr_get(x_0, 1); -lean::inc(x_2); +obj* x_2; obj* x_3; obj* x_6; +x_2 = lean::box(0); +x_3 = lean::cnstr_get(x_0, 1); +lean::inc(x_3); lean::dec(x_0); -x_5 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg(x_2, x_1); -return x_5; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +x_6 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(x_2, lean::box(0), x_3, x_1); return x_6; } } -} -obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___rarg(x_0, x_1, x_2); -return x_3; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___rarg), 3, 0); -return x_2; +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(x_0, x_1, x_2, x_3); +return x_4; } } obj* l_lean_elaborator_ordered__rbmap_insert___at_lean_elaborator_variables_elaborate___spec__4(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_5; obj* x_6; obj* x_8; obj* x_9; obj* x_11; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_20; +obj* x_3; obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_12; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_21; +x_3 = lean::box(0); lean::inc(x_2); lean::inc(x_1); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_1); -lean::cnstr_set(x_5, 1, x_2); -x_6 = lean::cnstr_get(x_0, 0); -lean::inc(x_6); -x_8 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_8, 0, x_5); -lean::cnstr_set(x_8, 1, x_6); -x_9 = lean::cnstr_get(x_0, 1); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_0, 2); -lean::inc(x_11); +x_6 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_6, 0, x_1); +lean::cnstr_set(x_6, 1, x_2); +x_7 = lean::cnstr_get(x_0, 0); +lean::inc(x_7); +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_6); +lean::cnstr_set(x_9, 1, x_7); +x_10 = lean::cnstr_get(x_0, 1); +lean::inc(x_10); +x_12 = lean::cnstr_get(x_0, 2); +lean::inc(x_12); lean::dec(x_0); -lean::inc(x_11); -x_15 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_2); -x_16 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___rarg(x_9, x_1, x_15); -x_17 = lean::mk_nat_obj(1u); -x_18 = lean::nat_add(x_11, x_17); -lean::dec(x_11); -x_20 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_20, 0, x_8); -lean::cnstr_set(x_20, 1, x_16); -lean::cnstr_set(x_20, 2, x_18); -return x_20; +lean::inc(x_12); +x_16 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_16, 0, x_12); +lean::cnstr_set(x_16, 1, x_2); +x_17 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(x_3, x_10, x_1, x_16); +x_18 = lean::mk_nat_obj(1u); +x_19 = lean::nat_add(x_12, x_18); +lean::dec(x_12); +x_21 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_21, 0, x_9); +lean::cnstr_set(x_21, 1, x_17); +lean::cnstr_set(x_21, 2, x_19); +return x_21; } } obj* l_list_mfilter___main___at_lean_elaborator_variables_elaborate___spec__9___lambda__1(obj* x_0, uint8 x_1, obj* x_2, obj* x_3) { @@ -23592,42 +23256,25 @@ return x_92; } } } -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___rarg(x_0, x_1); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_find___main___at_lean_elaborator_variables_elaborate___spec__3(x_0, x_1, x_2, x_3); lean::dec(x_0); lean::dec(x_1); -return x_2; +lean::dec(x_3); +return x_4; } } -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg___boxed(obj* x_0, obj* x_1) { +obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___rarg(x_0, x_1); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(x_0, x_1); +obj* x_3; +x_3 = l_rbmap_find___main___at_lean_elaborator_variables_elaborate___spec__2(x_0, x_1, x_2); lean::dec(x_0); -lean::dec(x_1); -return x_2; +lean::dec(x_2); +return x_3; } } obj* l_lean_elaborator_ordered__rbmap_find___at_lean_elaborator_variables_elaborate___spec__1___boxed(obj* x_0, obj* x_1) { @@ -23639,44 +23286,40 @@ lean::dec(x_1); return x_2; } } -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__7(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_variables_elaborate___spec__8(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_variables_elaborate___spec__6(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___boxed(obj* x_0, obj* x_1) { +obj* l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(x_0, x_1); +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_variables_elaborate___spec__5(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } obj* l_list_mfilter___main___at_lean_elaborator_variables_elaborate___spec__9___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { @@ -24114,7 +23757,7 @@ _start: if (lean::obj_tag(x_0) == 0) { obj* x_1; -x_1 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_1 = l_lean_expander_expand__bracketed__binder___main___closed__6; return x_1; } else @@ -26665,518 +26308,495 @@ lean::dec(x_1); return x_2; } } -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} } } obj* l_rbmap_insert___main___at_lean_elaborator_register__notation__macro___spec__1(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___rarg(x_0, x_1, x_2); -return x_3; +obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(x_3, x_0, x_1, x_2); +return x_4; } } obj* l_lean_elaborator_register__notation__macro(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { @@ -27293,32 +26913,31 @@ return x_54; } } } -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___boxed(obj* x_0) { +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__3(x_0, x_1, x_2, x_3); lean::dec(x_0); -return x_1; +return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___boxed(obj* x_0) { +obj* l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_register__notation__macro___spec__4(x_0, x_1, x_2, x_3); lean::dec(x_0); -return x_1; +return x_4; } } -obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_register__notation__macro___spec__2(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } obj* l_lean_elaborator_register__notation__macro___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { @@ -29711,552 +29330,519 @@ lean::dec(x_1); return x_4; } } -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } -} -} -obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(obj* x_0) { -_start: +else { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___rarg(x_0, x_1, x_2); -return x_3; +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); } -} -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(obj* x_0, obj* x_1) { -_start: +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___rarg), 3, 0); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) { -if (lean::obj_tag(x_3) == 0) -{ -return x_2; +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; } else { -obj* x_4; obj* x_6; obj* x_9; obj* x_11; obj* x_14; -x_4 = lean::cnstr_get(x_3, 0); -lean::inc(x_4); -x_6 = lean::cnstr_get(x_3, 1); -lean::inc(x_6); +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(x_0, x_1, x_2, x_3); +return x_4; +} +} +obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +obj* x_3; obj* x_5; obj* x_8; obj* x_10; obj* x_13; +x_3 = lean::cnstr_get(x_2, 0); +lean::inc(x_3); +x_5 = lean::cnstr_get(x_2, 1); +lean::inc(x_5); +lean::dec(x_2); +x_8 = lean::cnstr_get(x_3, 0); +lean::inc(x_8); +x_10 = lean::cnstr_get(x_3, 1); +lean::inc(x_10); lean::dec(x_3); -x_9 = lean::cnstr_get(x_4, 0); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_4, 1); -lean::inc(x_11); -lean::dec(x_4); -x_14 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___rarg(x_2, x_9, x_11); -x_1 = x_0; -x_2 = x_14; -x_3 = x_6; +x_13 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(x_0, x_1, x_8, x_10); +x_1 = x_13; +x_2 = x_5; goto _start; } } @@ -30412,7 +29998,7 @@ lean::cnstr_set(x_72, 0, x_2); lean::cnstr_set(x_72, 1, x_71); x_73 = lean::box(0); x_74 = lean::box(0); -x_75 = l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(x_73, lean::box(0), x_74, x_72); +x_75 = l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(x_73, x_74, x_72); return x_75; } } @@ -30424,53 +30010,51 @@ x_0 = l_rbmap_from__list___at_lean_elaborator_elaborators___spec__1; return x_0; } } -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__4(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); return x_4; } } +obj* l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_elaborator_elaborators___spec__5(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_elaborator_elaborators___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_elaborator_elaborators___spec__3(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_elaborator_elaborators___spec__2(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_list_foldl___main___at_lean_elaborator_elaborators___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_list_foldl___main___at_lean_elaborator_elaborators___spec__6(x_0, x_1, x_2); +lean::dec(x_0); +return x_3; +} +} uint8 l_list_decidable__mem___main___at_lean_elaborator_is__open__namespace___main___spec__1(obj* x_0, obj* x_1) { _start: { @@ -31920,7 +31504,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } diff --git a/src/boot/init/lean/expander.cpp b/src/boot/init/lean/expander.cpp index b7e96e5937..f5f00b407e 100644 --- a/src/boot/init/lean/expander.cpp +++ b/src/boot/init/lean/expander.cpp @@ -17,14 +17,13 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; extern obj* l_lean_parser_command_reserve__mixfix; obj* l_list_mmap_x_27___main___at_lean_expander_mk__notation__transformer___spec__4___closed__1; extern obj* l_lean_parser_term_subtype; -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_expander_mk__simple__binder___boxed(obj*, obj*, obj*); obj* l_lean_expander_intro__rule_transform___boxed(obj*, obj*); -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___rarg(obj*, obj*, obj*); extern obj* l_lean_parser_command_variables; extern obj* l_lean_parser_term_arrow_has__view; -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___boxed(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_let_transform___closed__1; obj* l_lean_expander_universes_transform___boxed(obj*, obj*); obj* l_lean_expander_let_transform___boxed(obj*, obj*); @@ -33,15 +32,14 @@ obj* l_lean_expander_coe__name__ident(obj*); obj* l_lean_expander_variable_transform___boxed(obj*, obj*); obj* l_lean_expander_expand__bracketed__binder(obj*, obj*); obj* l_lean_expander_sorry_transform___closed__1; -obj* l_lean_expander_expand__bracketed__binder___main___closed__13; obj* l_id___boxed(obj*); obj* l_lean_expander_pi_transform___lambda__1(obj*, obj*, obj*); extern obj* l_lean_parser_term_binder__ident_has__view; obj* l_lean_expander_if_transform___closed__1; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(uint8, obj*, obj*); extern obj* l_lean_parser_command_constant_has__view; obj* l_lean_expander_coe__simple__binder__binders(obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(obj*, obj*); obj* l_lean_expander_assume_transform___boxed(obj*, obj*); extern obj* l_lean_parser_level_leading_has__view; extern obj* l_lean_parser_command_universes; @@ -49,7 +47,7 @@ obj* l_lean_expander_get__opt__type___main___boxed(obj*); obj* l_lean_expander_expand(obj*, obj*); obj* l_lean_expander_expand__bracketed__binder___main___closed__2; extern obj* l_lean_parser_command_reserve__notation_has__view; -obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(obj*, obj*, obj*, obj*); +obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(obj*, obj*, obj*); obj* l_lean_expander_if_transform(obj*, obj*); obj* l_rbmap_find___main___at___private_init_lean_expander_2__expand__core___main___spec__2___boxed(obj*, obj*); obj* l_lean_expander_no__expansion___boxed(obj*); @@ -59,12 +57,11 @@ obj* l_lean_expander_universes_transform(obj*, obj*); namespace lean { obj* nat_add(obj*, obj*); } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(uint8, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20___boxed(obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(uint8, obj*, obj*); extern obj* l_string_iterator_extract___main___closed__1; obj* l_lean_expander_error___rarg___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10___boxed(obj*, obj*, obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_variables_transform(obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_expander_mk__notation__transformer___spec__4___closed__2; obj* l_lean_expander_mixfix_transform___closed__2; @@ -75,7 +72,7 @@ obj* l_lean_expander_coe__binders__ext___rarg(obj*, obj*); extern obj* l_lean_parser_term_if_has__view; extern obj* l_lean_parser_term_bracketed__binders; obj* l_lean_parser_string__lit_has__view_x_27___lambda__1(obj*); -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_if_transform___closed__2; obj* l_list_map___main___at_lean_expander_coe__binders__ext___spec__2___rarg(obj*, obj*); obj* l_lean_expander_arrow_transform___boxed(obj*, obj*); @@ -85,30 +82,29 @@ obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spe obj* l_lean_expander_coe__binders__ext(obj*); obj* l_list_foldr1___main___at_lean_expander_paren_transform___spec__3(obj*, obj*); obj* l_lean_parser_syntax_flip__scopes___main(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(obj*); +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(obj*, obj*, obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec___boxed(obj*, obj*, obj*); obj* l_lean_expander_error___rarg___lambda__1___closed__1; obj* l_lean_expander_constant_transform___boxed(obj*, obj*); obj* l_list_map___main___at_lean_expander_coe__binders__ext___spec__2___boxed(obj*); obj* l_lean_expander_assume_transform___closed__1; -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7(obj*, obj*, obj*, obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(obj*, obj*); obj* l_lean_expander_binding__annotation__update_has__view; obj* l_coe___at_lean_expander_coe__binders__ext___spec__1(obj*); extern obj* l_lean_parser_command_mixfix_has__view; obj* l_lean_expander_intro__rule_transform(obj*, obj*); extern obj* l_lean_parser_command_universes_has__view; -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_expand__bracketed__binder___main___closed__6; obj* l_list_map___main___at_lean_expander_universes_transform___spec__1___closed__1; obj* l_lean_expander_declaration_transform___boxed(obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(uint8, obj*, obj*); obj* l_lean_expander_subtype_transform___closed__1; uint8 l_lean_parser_syntax_is__of__kind___main(obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_transform__m_monad; -obj* l_lean_expander_expand__binders___closed__1; obj* l_lean_expander_expand__bracketed__binder___main___closed__4; obj* l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__3; obj* l_lean_expander_error___at___private_init_lean_expander_1__pop__stx__arg___spec__1___rarg___boxed(obj*, obj*, obj*, obj*); @@ -126,24 +122,21 @@ obj* l_lean_expander_if_transform___closed__3; obj* l_lean_expander_if_transform___boxed(obj*, obj*); obj* l_lean_expander_expander__config_has__lift___boxed(obj*); extern obj* l_lean_parser_term_pi_has__view; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_universe_has__view; obj* l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1(obj*); extern obj* l_lean_parser_ident__univs; obj* l_list_assoc___main___at_lean_expander_mk__notation__transformer___spec__7(obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2(obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_expander_let_transform___spec__1(obj*); -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___rarg(obj*, obj*, obj*); extern obj* l_lean_parser_term_sorry; obj* l___private_init_lean_expander_1__pop__stx__arg(obj*, obj*); obj* l_lean_expander_reserve__mixfix_transform___closed__1; extern obj* l_lean_parser_command_intro__rule_has__view; obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__23___boxed(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(obj*); +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(obj*, obj*, obj*, obj*); extern obj* l_lean_name_to__string___closed__1; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14___boxed(obj*, obj*, obj*, obj*); obj* l_coe___at_lean_expander_coe__binders__ext___spec__1___rarg(obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(obj*, obj*); obj* l_lean_expander_bracketed__binders_transform(obj*, obj*); obj* l_except__t_monad__except___rarg(obj*); obj* l_lean_expander_sorry_transform___boxed(obj*, obj*); @@ -151,7 +144,7 @@ extern obj* l_lean_parser_command_variables_has__view; obj* l_lean_expander_mk__simple__binder___closed__7; obj* l_lean_expander_binding__annotation__update_parser___closed__1; obj* l_lean_parser_number_view_of__nat(obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(obj*, obj*); obj* l_lean_expander_error___at___private_init_lean_expander_2__expand__core___main___spec__1(obj*); extern obj* l_lean_parser_term_binders_has__view; extern obj* l_lean_parser_command_reserve__mixfix_has__view; @@ -159,20 +152,17 @@ obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__5___boxed(ob obj* l_list_mmap___main___at___private_init_lean_expander_2__expand__core___main___spec__5(obj*, obj*, obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec___closed__2; obj* l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_join___main___rarg(obj*); obj* l_coe___at_lean_expander_mk__notation__transformer___spec__2(obj*); obj* l_list_mmap___main___at_lean_expander_variables_transform___spec__1___closed__1; obj* l_lean_parser_syntax_get__pos(obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_expander_sorry_transform(obj*, obj*); obj* l_list_foldr1___main___at_lean_expander_paren_transform___spec__3___boxed(obj*, obj*); obj* l_lean_expander_arrow_transform(obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec___closed__3; obj* l_list_map___main___at_lean_expander_paren_transform___spec__1(obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3___boxed(obj*, obj*, obj*); obj* l_lean_expander_coe__ident__binder__id(obj*); obj* l_option_get__or__else___main___rarg(obj*, obj*); obj* l_lean_name_to__string__with__sep___main(obj*, obj*); @@ -181,7 +171,6 @@ obj* l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__ obj* l_lean_expander_error___at___private_init_lean_expander_1__pop__stx__arg___spec__1___rarg(obj*, obj*, obj*, obj*); obj* l_lean_expander_coe__binder__bracketed__binder___closed__2; obj* l_lean_expander_error___at___private_init_lean_expander_2__expand__core___main___spec__1___boxed(obj*); -obj* l_lean_expander_expand__bracketed__binder___main___closed__11; obj* l_lean_expander_glob__id(obj*); obj* l_lean_expander_mk__simple__binder(obj*, uint8, obj*); extern obj* l_lean_parser_no__kind; @@ -194,7 +183,7 @@ obj* l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed_ obj* l_list_assoc___main___at_lean_expander_mk__notation__transformer___spec__7___boxed(obj*, obj*); obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__23(uint8, obj*, obj*); extern obj* l_lean_parser_term_bracketed__binders_has__view; -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(obj*, obj*); +obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_expander_level_leading_transform___boxed(obj*, obj*); obj* l_lean_expander_lambda_transform___closed__1; extern obj* l_lean_parser_term_pi; @@ -203,27 +192,26 @@ namespace lean { uint8 nat_dec_eq(obj*, obj*); } extern obj* l_lean_parser_term__parser__m_lean_parser_monad__parsec; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(uint8, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(uint8, obj*, obj*); obj* l_lean_expander_error___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_expander_binding__annotation__update; extern obj* l_lean_parser_term__parser__m_monad; extern obj* l_lean_parser_term_let_has__view; obj* l_lean_expander_transform__m_monad__reader; -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_mk__simple__binder___closed__2; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21___boxed(obj*, obj*, obj*); obj* l_lean_expander_pi_transform(obj*, obj*); obj* l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__2; obj* l_lean_parser_combinators_node_view___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_expander_2__expand__core(obj*, obj*, obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec___closed__1; obj* l_lean_expander_subtype_transform(obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_expander_coe__binders__ext___spec__2(obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3(obj*, obj*, obj*, obj*); obj* l___private_init_lean_expander_2__expand__core___main___closed__1; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4(obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4(obj*, obj*, obj*, obj*); obj* l_coe___at_lean_expander_coe__binders__ext___spec__1___boxed(obj*); obj* l_lean_expander_mixfix_transform___closed__4; obj* l_reader__t_read___rarg(obj*, obj*); @@ -232,8 +220,8 @@ obj* l_lean_expander_lambda_transform(obj*, obj*); obj* l_lean_expander_declaration_transform(obj*, obj*); obj* l_lean_expander_error___at___private_init_lean_expander_2__expand__core___main___spec__1___rarg(obj*, obj*, obj*, obj*); obj* l_lean_expander_arrow_transform___closed__2; -obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6___boxed(obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___boxed(obj*); +obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6___boxed(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_no__expansion(obj*); obj* l_lean_expander_binding__annotation__update_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_syntax_mk__node(obj*, obj*); @@ -241,14 +229,12 @@ obj* l_lean_expander_declaration_transform___closed__2; obj* l_rbnode_balance2___main___rarg(obj*, obj*); obj* l_lean_expander_get__opt__type___main(obj*); obj* l_lean_expander_binder__ident__to__ident(obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8(obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8(obj*, obj*, obj*, obj*); obj* l_lean_expander_binder__ident__to__ident___main(obj*); extern obj* l_lean_parser_term_lambda_has__view; obj* l_lean_expander_declaration_transform___closed__3; -obj* l_lean_expander_expand__bracketed__binder___main___closed__12; obj* l_lean_expander_error___boxed(obj*, obj*); obj* l_except__t_monad___rarg(obj*); -obj* l_lean_expander_expand__binders___closed__2; extern obj* l_lean_parser_term_app_has__view; obj* l_lean_expander_expander__config_has__lift(obj*); obj* l_lean_expander_error___at___private_init_lean_expander_1__pop__stx__arg___spec__1(obj*); @@ -256,7 +242,7 @@ obj* l_list_mmap___main___at_lean_expander_bracketed__binders_transform___spec__ obj* l_list_foldr1__opt___main___at_lean_expander_paren_transform___spec__2(obj*, obj*); obj* l_list_map___main___at_lean_expander_mk__notation__transformer___spec__3(obj*); extern obj* l_lean_parser_ident__univs_has__view; -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_subtype_transform___boxed(obj*, obj*); obj* l_lean_expander_lambda_transform___lambda__1(obj*, obj*); obj* l_reader__t_monad__except___rarg(obj*); @@ -265,26 +251,23 @@ obj* l_lean_parser_try__view___at_lean_expander_mk__notation__transformer___spec extern obj* l_lean_parser_term_assume_has__view; extern obj* l_lean_parser_command_intro__rule; obj* l_id_monad___lambda__1___boxed(obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(obj*, obj*); obj* l_lean_expander_binder__ident__to__ident___main___closed__1; obj* l_lean_expander_transform__m_monad__except; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(uint8, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(obj*, obj*); obj* l_lean_expander_expand__bracketed__binder___main___closed__3; -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(obj*, obj*, obj*); extern obj* l_lean_parser_term_paren; -obj* l_lean_expander_expand__binders___closed__4; obj* l_rbmap_find___main___at___private_init_lean_expander_2__expand__core___main___spec__2(obj*, obj*); obj* l_lean_expander_transformer__config__coe__frontend__config___boxed(obj*); extern obj* l_lean_parser_term_hole_has__view; obj* l_lean_expander_error(obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec(obj*, obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1(obj*, obj*, obj*, obj*); obj* l_lean_expander_coe__binder__bracketed__binder___closed__1; extern "C" uint8 lean_name_dec_eq(obj*, obj*); -obj* l_lean_expander_expand__binders___closed__3; obj* l_lean_expander_error___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(obj*, obj*); obj* l_lean_expander_declaration_transform___closed__1; obj* l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___boxed(obj*); uint8 l_lean_name_quick__lt(obj*, obj*); @@ -294,13 +277,12 @@ obj* l_lean_parser_symbol__core___at_lean_parser_command_notation__spec_preceden obj* l_lean_expander_expand__bracketed__binder___main___closed__1; obj* l_lean_expander_mixfix__to__notation__spec___closed__7; obj* l_lean_expander_paren_transform___closed__1; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_rbnode_balance1___main___rarg(obj*, obj*); obj* l_lean_expander_coe__ident__ident__univs(obj*); obj* l_lean_expander_get__opt__type___boxed(obj*); obj* l_lean_expander_paren_transform(obj*, obj*); -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4___boxed(obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(obj*, obj*); obj* l_lean_expander_binder__ident__to__ident___main___boxed(obj*); obj* l_lean_expander_transformer__config__coe__frontend__config(obj*); obj* l_lean_expander_expand__bracketed__binder___main(obj*, obj*); @@ -312,17 +294,15 @@ obj* l_lean_expander_expand__bracketed__binder___main___closed__9; obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__13(obj*, obj*); obj* l_lean_expander_error___rarg___lambda__1(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_constant; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_expander_paren_transform___closed__2; extern obj* l_lean_parser_term_if; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_assume; obj* l_lean_expander_mk__notation__transformer(obj*, obj*, obj*); obj* l_lean_expander_mixfix__to__notation__spec___closed__6; obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__5(uint8, obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_expander_mk__notation__transformer___spec__4___closed__3; obj* l_lean_expander_mixfix_transform___closed__5; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22___boxed(obj*, obj*, obj*); obj* l_reader__t_monad___rarg(obj*); extern obj* l_lean_parser_command_declaration_has__view; obj* l___private_init_lean_expander_2__expand__core___main(obj*, obj*, obj*, obj*); @@ -348,7 +328,7 @@ extern obj* l_lean_parser_command_mixfix; obj* l_list_mmap_x_27___main___at_lean_expander_mk__notation__transformer___spec__4(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_lambda; extern obj* l_lean_parser_term_arrow; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2___boxed(obj*, obj*, obj*); obj* l_lean_expander_get__opt__type(obj*); obj* l_lean_expander_reserve__mixfix_transform(obj*, obj*); obj* l_list_foldr1___main___at_lean_expander_paren_transform___spec__3___closed__1; @@ -366,34 +346,30 @@ obj* l_lean_expander_get__opt__type___main___closed__1; obj* l_lean_expander_constant_transform___closed__1; obj* l_lean_expander_mixfix__to__notation__spec___closed__4; 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_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1___boxed(obj*, obj*, obj*); obj* l_lean_expander_coe__binder__bracketed__binder(obj*); -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___boxed(obj*); +obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_no__expansion___closed__1; obj* l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6(obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(uint8, obj*, obj*); obj* l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__4; extern obj* l_lean_parser_term__parser__m_monad__except; obj* l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(obj*, obj*); -obj* l_lean_expander_expand__bracketed__binder___main___closed__10; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_substring_of__string(obj*); obj* l_lean_expander_mk__simple__binder___closed__3; obj* l_id_monad___lambda__2___boxed(obj*, obj*, obj*, obj*); obj* l_lean_expander_let_transform(obj*, obj*); extern obj* l_lean_parser_term_let; obj* l_lean_expander_expand__bracketed__binder___main___closed__7; -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(obj*, obj*); obj* l_list_mmap___main___at___private_init_lean_expander_2__expand__core___main___spec__3(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_notation_has__view; obj* l_list_map___main___at___private_init_lean_expander_2__expand__core___main___spec__4(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(obj*, obj*, obj*); obj* l_list_mmap___main___at_lean_expander_variables_transform___spec__1(obj*, obj*); obj* l_id_monad___lambda__3___boxed(obj*, obj*, obj*, obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4___boxed(obj*, obj*, obj*); obj* l_lean_expander_constant_transform(obj*, obj*); obj* l_lean_expander_binder__ident__to__ident___boxed(obj*); -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(obj*, obj*); obj* l_rbnode_set__black___main___rarg(obj*); extern obj* l_lean_parser_term__parser__m_alternative; obj* l_lean_expander_transformer__config__coe__frontend__config(obj* x_0) { @@ -4217,7 +4193,47 @@ lean::dec(x_0); return x_1; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(obj* x_0, obj* x_1, obj* x_2) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(obj* x_0, obj* x_1) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; +} +else +{ +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; +} else { + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); +} +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 0; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); +} else { + x_15 = x_8; +} +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; +} +} +} +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(uint8 x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_2) == 0) @@ -4229,7 +4245,7 @@ return x_4; } else { -obj* x_5; obj* x_7; obj* x_9; obj* x_10; uint8 x_12; obj* x_14; obj* x_15; obj* x_16; +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; x_5 = lean::cnstr_get(x_2, 0); x_7 = lean::cnstr_get(x_2, 1); if (lean::is_exclusive(x_2)) { @@ -4242,135 +4258,95 @@ if (lean::is_exclusive(x_2)) { } x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); lean::dec(x_5); -x_12 = 0; lean::inc(x_1); -x_14 = l_lean_expander_mk__simple__binder(x_10, x_12, x_1); -x_15 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(x_0, x_1, x_7); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_0, x_1, x_7); if (lean::is_scalar(x_9)) { - x_16 = lean::alloc_cnstr(1, 2, 0); + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_16 = x_9; + x_15 = x_9; } -lean::cnstr_set(x_16, 0, x_14); -lean::cnstr_set(x_16, 1, x_15); -return x_16; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(uint8 x_0, obj* x_1, obj* x_2) { _start: { -if (lean::obj_tag(x_4) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_6; -lean::dec(x_3); -x_6 = lean::box(0); -return x_6; +obj* x_4; +lean::dec(x_1); +x_4 = lean::box(0); +return x_4; } else { -obj* x_7; obj* x_9; obj* x_11; obj* x_12; obj* x_15; obj* x_16; obj* x_17; -x_7 = lean::cnstr_get(x_4, 0); -x_9 = lean::cnstr_get(x_4, 1); -if (lean::is_exclusive(x_4)) { - x_11 = x_4; +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; +x_5 = lean::cnstr_get(x_2, 0); +x_7 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_9 = x_2; } else { + lean::inc(x_5); lean::inc(x_7); - lean::inc(x_9); - lean::dec(x_4); - x_11 = lean::box(0); + lean::dec(x_2); + x_9 = lean::box(0); } -x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); -lean::dec(x_7); -lean::inc(x_3); -x_15 = l_lean_expander_mk__simple__binder(x_12, x_0, x_3); -x_16 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_0, x_1, x_2, x_3, x_9); -if (lean::is_scalar(x_11)) { - x_17 = lean::alloc_cnstr(1, 2, 0); +x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); +lean::dec(x_5); +lean::inc(x_1); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_0, x_1, x_7); +if (lean::is_scalar(x_9)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_17 = x_11; + x_15 = x_9; } -lean::cnstr_set(x_17, 0, x_15); -lean::cnstr_set(x_17, 1, x_16); -return x_17; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(uint8 x_0, obj* x_1, obj* x_2) { _start: { -if (lean::obj_tag(x_12) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_14; -lean::dec(x_11); -x_14 = lean::box(0); -return x_14; +obj* x_4; +lean::dec(x_1); +x_4 = lean::box(0); +return x_4; } else { -obj* x_15; obj* x_17; obj* x_19; obj* x_20; obj* x_23; obj* x_24; obj* x_25; -x_15 = lean::cnstr_get(x_12, 0); -x_17 = lean::cnstr_get(x_12, 1); -if (lean::is_exclusive(x_12)) { - x_19 = x_12; +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; +x_5 = lean::cnstr_get(x_2, 0); +x_7 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_9 = x_2; } else { - lean::inc(x_15); - lean::inc(x_17); - lean::dec(x_12); - x_19 = lean::box(0); + lean::inc(x_5); + lean::inc(x_7); + lean::dec(x_2); + x_9 = lean::box(0); } -x_20 = l_lean_expander_binder__ident__to__ident___main(x_15); -lean::dec(x_15); -lean::inc(x_11); -x_23 = l_lean_expander_mk__simple__binder(x_20, x_0, x_11); -x_24 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_17); -if (lean::is_scalar(x_19)) { - x_25 = lean::alloc_cnstr(1, 2, 0); +x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); +lean::dec(x_5); +lean::inc(x_1); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_0, x_1, x_7); +if (lean::is_scalar(x_9)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_25 = x_19; + x_15 = x_9; } -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_24); -return x_25; -} -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8) { -_start: -{ -if (lean::obj_tag(x_8) == 0) -{ -obj* x_10; -lean::dec(x_7); -x_10 = lean::box(0); -return x_10; -} -else -{ -obj* x_11; obj* x_13; obj* x_15; obj* x_16; obj* x_19; obj* x_20; obj* x_21; -x_11 = lean::cnstr_get(x_8, 0); -x_13 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { - x_15 = x_8; -} else { - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_8); - x_15 = lean::box(0); -} -x_16 = l_lean_expander_binder__ident__to__ident___main(x_11); -lean::dec(x_11); -lean::inc(x_7); -x_19 = l_lean_expander_mk__simple__binder(x_16, x_0, x_7); -x_20 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_13); -if (lean::is_scalar(x_15)) { - x_21 = lean::alloc_cnstr(1, 2, 0); -} else { - x_21 = x_15; -} -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_20); -return x_21; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } @@ -4413,123 +4389,123 @@ return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_3) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_5; -lean::dec(x_2); -x_5 = lean::box(0); -return x_5; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_6; obj* x_8; obj* x_10; obj* x_11; uint8 x_13; obj* x_15; obj* x_16; obj* x_17; -x_6 = lean::cnstr_get(x_3, 0); -x_8 = lean::cnstr_get(x_3, 1); -if (lean::is_exclusive(x_3)) { - x_10 = x_3; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { + lean::inc(x_4); lean::inc(x_6); - lean::inc(x_8); - lean::dec(x_3); - x_10 = lean::box(0); + lean::dec(x_1); + x_8 = lean::box(0); } -x_11 = l_lean_expander_binder__ident__to__ident___main(x_6); -lean::dec(x_6); -x_13 = 0; -lean::inc(x_2); -x_15 = l_lean_expander_mk__simple__binder(x_11, x_13, x_2); -x_16 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(x_0, x_1, x_2, x_8); -if (lean::is_scalar(x_10)) { - x_17 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 0; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_17 = x_10; + x_15 = x_8; } -lean::cnstr_set(x_17, 0, x_15); -lean::cnstr_set(x_17, 1, x_16); -return x_17; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_11) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_13; -lean::dec(x_10); -x_13 = lean::box(0); -return x_13; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_14; obj* x_16; obj* x_18; obj* x_19; uint8 x_21; obj* x_23; obj* x_24; obj* x_25; -x_14 = lean::cnstr_get(x_11, 0); -x_16 = lean::cnstr_get(x_11, 1); -if (lean::is_exclusive(x_11)) { - x_18 = x_11; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_11); - x_18 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_19 = l_lean_expander_binder__ident__to__ident___main(x_14); -lean::dec(x_14); -x_21 = 0; -lean::inc(x_10); -x_23 = l_lean_expander_mk__simple__binder(x_19, x_21, x_10); -x_24 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_16); -if (lean::is_scalar(x_18)) { - x_25 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 0; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_25 = x_18; + x_15 = x_8; } -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_24); -return x_25; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_7) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_9; -lean::dec(x_6); -x_9 = lean::box(0); -return x_9; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_10; obj* x_12; obj* x_14; obj* x_15; uint8 x_17; obj* x_19; obj* x_20; obj* x_21; -x_10 = lean::cnstr_get(x_7, 0); -x_12 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - x_14 = x_7; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_7); - x_14 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_15 = l_lean_expander_binder__ident__to__ident___main(x_10); -lean::dec(x_10); -x_17 = 0; -lean::inc(x_6); -x_19 = l_lean_expander_mk__simple__binder(x_15, x_17, x_6); -x_20 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_12); -if (lean::is_scalar(x_14)) { - x_21 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 0; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_21 = x_14; + x_15 = x_8; } -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_20); -return x_21; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } @@ -4573,123 +4549,123 @@ return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_3) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_5; -lean::dec(x_2); -x_5 = lean::box(0); -return x_5; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_6; obj* x_8; obj* x_10; obj* x_11; uint8 x_13; obj* x_15; obj* x_16; obj* x_17; -x_6 = lean::cnstr_get(x_3, 0); -x_8 = lean::cnstr_get(x_3, 1); -if (lean::is_exclusive(x_3)) { - x_10 = x_3; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { + lean::inc(x_4); lean::inc(x_6); - lean::inc(x_8); - lean::dec(x_3); - x_10 = lean::box(0); + lean::dec(x_1); + x_8 = lean::box(0); } -x_11 = l_lean_expander_binder__ident__to__ident___main(x_6); -lean::dec(x_6); -x_13 = 1; -lean::inc(x_2); -x_15 = l_lean_expander_mk__simple__binder(x_11, x_13, x_2); -x_16 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(x_0, x_1, x_2, x_8); -if (lean::is_scalar(x_10)) { - x_17 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 1; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_17 = x_10; + x_15 = x_8; } -lean::cnstr_set(x_17, 0, x_15); -lean::cnstr_set(x_17, 1, x_16); -return x_17; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_11) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_13; -lean::dec(x_10); -x_13 = lean::box(0); -return x_13; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_14; obj* x_16; obj* x_18; obj* x_19; uint8 x_21; obj* x_23; obj* x_24; obj* x_25; -x_14 = lean::cnstr_get(x_11, 0); -x_16 = lean::cnstr_get(x_11, 1); -if (lean::is_exclusive(x_11)) { - x_18 = x_11; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_11); - x_18 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_19 = l_lean_expander_binder__ident__to__ident___main(x_14); -lean::dec(x_14); -x_21 = 1; -lean::inc(x_10); -x_23 = l_lean_expander_mk__simple__binder(x_19, x_21, x_10); -x_24 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_16); -if (lean::is_scalar(x_18)) { - x_25 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 1; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_25 = x_18; + x_15 = x_8; } -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_24); -return x_25; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_7) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_9; -lean::dec(x_6); -x_9 = lean::box(0); -return x_9; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_10; obj* x_12; obj* x_14; obj* x_15; uint8 x_17; obj* x_19; obj* x_20; obj* x_21; -x_10 = lean::cnstr_get(x_7, 0); -x_12 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - x_14 = x_7; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_7); - x_14 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_15 = l_lean_expander_binder__ident__to__ident___main(x_10); -lean::dec(x_10); -x_17 = 1; -lean::inc(x_6); -x_19 = l_lean_expander_mk__simple__binder(x_15, x_17, x_6); -x_20 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_12); -if (lean::is_scalar(x_14)) { - x_21 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 1; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_21 = x_14; + x_15 = x_8; } -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_20); -return x_21; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } @@ -4733,123 +4709,123 @@ return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_3) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_5; -lean::dec(x_2); -x_5 = lean::box(0); -return x_5; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_6; obj* x_8; obj* x_10; obj* x_11; uint8 x_13; obj* x_15; obj* x_16; obj* x_17; -x_6 = lean::cnstr_get(x_3, 0); -x_8 = lean::cnstr_get(x_3, 1); -if (lean::is_exclusive(x_3)) { - x_10 = x_3; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { + lean::inc(x_4); lean::inc(x_6); - lean::inc(x_8); - lean::dec(x_3); - x_10 = lean::box(0); + lean::dec(x_1); + x_8 = lean::box(0); } -x_11 = l_lean_expander_binder__ident__to__ident___main(x_6); -lean::dec(x_6); -x_13 = 2; -lean::inc(x_2); -x_15 = l_lean_expander_mk__simple__binder(x_11, x_13, x_2); -x_16 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(x_0, x_1, x_2, x_8); -if (lean::is_scalar(x_10)) { - x_17 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 2; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_17 = x_10; + x_15 = x_8; } -lean::cnstr_set(x_17, 0, x_15); -lean::cnstr_set(x_17, 1, x_16); -return x_17; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_11) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_13; -lean::dec(x_10); -x_13 = lean::box(0); -return x_13; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_14; obj* x_16; obj* x_18; obj* x_19; uint8 x_21; obj* x_23; obj* x_24; obj* x_25; -x_14 = lean::cnstr_get(x_11, 0); -x_16 = lean::cnstr_get(x_11, 1); -if (lean::is_exclusive(x_11)) { - x_18 = x_11; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_14); - lean::inc(x_16); - lean::dec(x_11); - x_18 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_19 = l_lean_expander_binder__ident__to__ident___main(x_14); -lean::dec(x_14); -x_21 = 2; -lean::inc(x_10); -x_23 = l_lean_expander_mk__simple__binder(x_19, x_21, x_10); -x_24 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_16); -if (lean::is_scalar(x_18)) { - x_25 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 2; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_25 = x_18; + x_15 = x_8; } -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_24); -return x_25; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_7) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_9; -lean::dec(x_6); -x_9 = lean::box(0); -return x_9; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_10; obj* x_12; obj* x_14; obj* x_15; uint8 x_17; obj* x_19; obj* x_20; obj* x_21; -x_10 = lean::cnstr_get(x_7, 0); -x_12 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - x_14 = x_7; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_7); - x_14 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_15 = l_lean_expander_binder__ident__to__ident___main(x_10); -lean::dec(x_10); -x_17 = 2; -lean::inc(x_6); -x_19 = l_lean_expander_mk__simple__binder(x_15, x_17, x_6); -x_20 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_12); -if (lean::is_scalar(x_14)) { - x_21 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 2; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_21 = x_14; + x_15 = x_8; } -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_20); -return x_21; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } @@ -4893,200 +4869,200 @@ return x_15; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(obj* x_0, obj* x_1) { _start: { -if (lean::obj_tag(x_9) == 0) +if (lean::obj_tag(x_1) == 0) { -obj* x_11; -lean::dec(x_8); -x_11 = lean::box(0); -return x_11; +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; } else { -obj* x_12; obj* x_14; obj* x_16; obj* x_17; uint8 x_19; obj* x_21; obj* x_22; obj* x_23; -x_12 = lean::cnstr_get(x_9, 0); -x_14 = lean::cnstr_get(x_9, 1); -if (lean::is_exclusive(x_9)) { - x_16 = x_9; +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; } else { - lean::inc(x_12); - lean::inc(x_14); - lean::dec(x_9); - x_16 = lean::box(0); + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); } -x_17 = l_lean_expander_binder__ident__to__ident___main(x_12); -lean::dec(x_12); -x_19 = 3; -lean::inc(x_8); -x_21 = l_lean_expander_mk__simple__binder(x_17, x_19, x_8); -x_22 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -if (lean::is_scalar(x_16)) { - x_23 = lean::alloc_cnstr(1, 2, 0); +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 3; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); } else { - x_23 = x_16; -} -lean::cnstr_set(x_23, 0, x_21); -lean::cnstr_set(x_23, 1, x_22); -return x_23; -} -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9) { -_start: -{ -if (lean::obj_tag(x_9) == 0) -{ -obj* x_11; -lean::dec(x_8); -x_11 = lean::box(0); -return x_11; -} -else -{ -obj* x_12; obj* x_14; obj* x_16; obj* x_17; uint8 x_19; obj* x_21; obj* x_22; obj* x_23; -x_12 = lean::cnstr_get(x_9, 0); -x_14 = lean::cnstr_get(x_9, 1); -if (lean::is_exclusive(x_9)) { - x_16 = x_9; -} else { - lean::inc(x_12); - lean::inc(x_14); - lean::dec(x_9); - x_16 = lean::box(0); -} -x_17 = l_lean_expander_binder__ident__to__ident___main(x_12); -lean::dec(x_12); -x_19 = 3; -lean::inc(x_8); -x_21 = l_lean_expander_mk__simple__binder(x_17, x_19, x_8); -x_22 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -if (lean::is_scalar(x_16)) { - x_23 = lean::alloc_cnstr(1, 2, 0); -} else { - x_23 = x_16; -} -lean::cnstr_set(x_23, 0, x_21); -lean::cnstr_set(x_23, 1, x_22); -return x_23; -} -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -if (lean::obj_tag(x_4) == 0) -{ -obj* x_6; -lean::dec(x_3); -x_6 = lean::box(0); -return x_6; -} -else -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_12; obj* x_15; obj* x_16; obj* x_17; -x_7 = lean::cnstr_get(x_4, 0); -x_9 = lean::cnstr_get(x_4, 1); -if (lean::is_exclusive(x_4)) { - x_11 = x_4; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::dec(x_4); - x_11 = lean::box(0); -} -x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); -lean::dec(x_7); -lean::inc(x_3); -x_15 = l_lean_expander_mk__simple__binder(x_12, x_0, x_3); -x_16 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_0, x_1, x_2, x_3, x_9); -if (lean::is_scalar(x_11)) { - x_17 = lean::alloc_cnstr(1, 2, 0); -} else { - x_17 = x_11; -} -lean::cnstr_set(x_17, 0, x_15); -lean::cnstr_set(x_17, 1, x_16); -return x_17; -} -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { -_start: -{ -if (lean::obj_tag(x_12) == 0) -{ -obj* x_14; -lean::dec(x_11); -x_14 = lean::box(0); -return x_14; -} -else -{ -obj* x_15; obj* x_17; obj* x_19; obj* x_20; obj* x_23; obj* x_24; obj* x_25; -x_15 = lean::cnstr_get(x_12, 0); -x_17 = lean::cnstr_get(x_12, 1); -if (lean::is_exclusive(x_12)) { - x_19 = x_12; -} else { - lean::inc(x_15); - lean::inc(x_17); - lean::dec(x_12); - x_19 = lean::box(0); -} -x_20 = l_lean_expander_binder__ident__to__ident___main(x_15); -lean::dec(x_15); -lean::inc(x_11); -x_23 = l_lean_expander_mk__simple__binder(x_20, x_0, x_11); -x_24 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_17); -if (lean::is_scalar(x_19)) { - x_25 = lean::alloc_cnstr(1, 2, 0); -} else { - x_25 = x_19; -} -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_24); -return x_25; -} -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8) { -_start: -{ -if (lean::obj_tag(x_8) == 0) -{ -obj* x_10; -lean::dec(x_7); -x_10 = lean::box(0); -return x_10; -} -else -{ -obj* x_11; obj* x_13; obj* x_15; obj* x_16; obj* x_19; obj* x_20; obj* x_21; -x_11 = lean::cnstr_get(x_8, 0); -x_13 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { x_15 = x_8; -} else { - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_8); - x_15 = lean::box(0); } -x_16 = l_lean_expander_binder__ident__to__ident___main(x_11); -lean::dec(x_11); -lean::inc(x_7); -x_19 = l_lean_expander_mk__simple__binder(x_16, x_0, x_7); -x_20 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_13); -if (lean::is_scalar(x_15)) { - x_21 = lean::alloc_cnstr(1, 2, 0); -} else { - x_21 = x_15; +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_20); -return x_21; +} +} +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(obj* x_0, obj* x_1) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +obj* x_3; +lean::dec(x_0); +x_3 = lean::box(0); +return x_3; +} +else +{ +obj* x_4; obj* x_6; obj* x_8; obj* x_9; uint8 x_11; obj* x_13; obj* x_14; obj* x_15; +x_4 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +if (lean::is_exclusive(x_1)) { + x_8 = x_1; +} else { + lean::inc(x_4); + lean::inc(x_6); + lean::dec(x_1); + x_8 = lean::box(0); +} +x_9 = l_lean_expander_binder__ident__to__ident___main(x_4); +lean::dec(x_4); +x_11 = 3; +lean::inc(x_0); +x_13 = l_lean_expander_mk__simple__binder(x_9, x_11, x_0); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(x_0, x_6); +if (lean::is_scalar(x_8)) { + x_15 = lean::alloc_cnstr(1, 2, 0); +} else { + x_15 = x_8; +} +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; +} +} +} +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(uint8 x_0, obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +obj* x_4; +lean::dec(x_1); +x_4 = lean::box(0); +return x_4; +} +else +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; +x_5 = lean::cnstr_get(x_2, 0); +x_7 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_9 = x_2; +} else { + lean::inc(x_5); + lean::inc(x_7); + lean::dec(x_2); + x_9 = lean::box(0); +} +x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); +lean::dec(x_5); +lean::inc(x_1); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_0, x_1, x_7); +if (lean::is_scalar(x_9)) { + x_15 = lean::alloc_cnstr(1, 2, 0); +} else { + x_15 = x_9; +} +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; +} +} +} +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(uint8 x_0, obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +obj* x_4; +lean::dec(x_1); +x_4 = lean::box(0); +return x_4; +} +else +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; +x_5 = lean::cnstr_get(x_2, 0); +x_7 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_9 = x_2; +} else { + lean::inc(x_5); + lean::inc(x_7); + lean::dec(x_2); + x_9 = lean::box(0); +} +x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); +lean::dec(x_5); +lean::inc(x_1); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_0, x_1, x_7); +if (lean::is_scalar(x_9)) { + x_15 = lean::alloc_cnstr(1, 2, 0); +} else { + x_15 = x_9; +} +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; +} +} +} +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(uint8 x_0, obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +obj* x_4; +lean::dec(x_1); +x_4 = lean::box(0); +return x_4; +} +else +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_10; obj* x_13; obj* x_14; obj* x_15; +x_5 = lean::cnstr_get(x_2, 0); +x_7 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_9 = x_2; +} else { + lean::inc(x_5); + lean::inc(x_7); + lean::dec(x_2); + x_9 = lean::box(0); +} +x_10 = l_lean_expander_binder__ident__to__ident___main(x_5); +lean::dec(x_5); +lean::inc(x_1); +x_13 = l_lean_expander_mk__simple__binder(x_10, x_0, x_1); +x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_0, x_1, x_7); +if (lean::is_scalar(x_9)) { + x_15 = lean::alloc_cnstr(1, 2, 0); +} else { + x_15 = x_9; +} +lean::cnstr_set(x_15, 0, x_13); +lean::cnstr_set(x_15, 1, x_14); +return x_15; } } } @@ -5136,7 +5112,7 @@ obj* x_0; obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_0 = lean::box(0); x_1 = lean::box(0); x_2 = l_lean_expander_get__opt__type___main(x_1); -x_3 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(x_1, x_2, x_0); +x_3 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(x_2, x_0); x_4 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_4, 0, x_3); return x_4; @@ -5156,16 +5132,6 @@ return x_3; obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__3() { _start: { -obj* x_0; obj* x_1; obj* x_2; -x_0 = lean::box(0); -x_1 = lean::mk_string("opt_param"); -x_2 = lean_name_mk_string(x_0, x_1); -return x_2; -} -} -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__4() { -_start: -{ obj* x_0; obj* x_1; obj* x_2; obj* x_3; x_0 = lean::box(0); x_1 = lean::mk_string("auto_param"); @@ -5174,17 +5140,7 @@ x_3 = l_lean_expander_glob__id(x_2); return x_3; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__5() { -_start: -{ -obj* x_0; obj* x_1; obj* x_2; -x_0 = lean::box(0); -x_1 = lean::mk_string("auto_param"); -x_2 = lean_name_mk_string(x_0, x_1); -return x_2; -} -} -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__6() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__4() { _start: { obj* x_0; @@ -5192,7 +5148,7 @@ x_0 = lean::mk_string("unexpected auto param after type annotation"); return x_0; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__7() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__5() { _start: { obj* x_0; obj* x_1; obj* x_2; uint8 x_3; obj* x_4; obj* x_5; @@ -5210,7 +5166,7 @@ lean::cnstr_set(x_5, 1, x_2); return x_5; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__8() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__6() { _start: { obj* x_0; obj* x_1; @@ -5220,7 +5176,7 @@ lean::cnstr_set(x_1, 0, x_0); return x_1; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__9() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__7() { _start: { obj* x_0; @@ -5228,31 +5184,7 @@ x_0 = l_lean_expander_expand__bracketed__binder___main___closed__1; return x_0; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__10() { -_start: -{ -obj* x_0; obj* x_1; -x_0 = lean::mk_string(" : "); -x_1 = l_string_trim(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__11() { -_start: -{ -obj* x_0; obj* x_1; obj* x_2; obj* x_4; -x_0 = lean::box(0); -x_1 = lean::mk_string(" : "); -x_2 = l_string_trim(x_1); -lean::dec(x_1); -x_4 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_2); -return x_4; -} -} -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__12() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__8() { _start: { obj* x_0; obj* x_1; obj* x_2; obj* x_3; obj* x_4; obj* x_6; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; @@ -5280,7 +5212,7 @@ lean::cnstr_set(x_12, 1, x_9); return x_12; } } -obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__13() { +obj* _init_l_lean_expander_expand__bracketed__binder___main___closed__9() { _start: { obj* x_0; @@ -5307,7 +5239,7 @@ lean::dec(x_6); lean::dec(x_4); lean::dec(x_1); lean::dec(x_0); -x_12 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_12 = l_lean_expander_expand__bracketed__binder___main___closed__6; return x_12; } else @@ -5322,7 +5254,7 @@ if (lean::obj_tag(x_6) == 0) obj* x_17; lean::dec(x_6); lean::dec(x_1); -x_17 = l_lean_expander_expand__bracketed__binder___main___closed__9; +x_17 = l_lean_expander_expand__bracketed__binder___main___closed__7; return x_17; } else @@ -5338,15 +5270,15 @@ x_24 = lean::cnstr_get(x_18, 2); lean::inc(x_24); if (lean::obj_tag(x_24) == 0) { -obj* x_27; obj* x_29; obj* x_32; -lean::dec(x_1); -x_27 = lean::cnstr_get(x_18, 0); -lean::inc(x_27); -x_29 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(x_18, x_21, x_23, x_27); +obj* x_28; obj* x_31; obj* x_32; lean::dec(x_21); +lean::dec(x_1); +x_28 = lean::cnstr_get(x_18, 0); +lean::inc(x_28); lean::dec(x_18); +x_31 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(x_23, x_28); x_32 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_32, 0, x_29); +lean::cnstr_set(x_32, 0, x_31); return x_32; } else @@ -5357,139 +5289,125 @@ lean::inc(x_33); lean::dec(x_24); if (lean::obj_tag(x_33) == 0) { -obj* x_37; obj* x_40; obj* x_42; obj* x_44; obj* x_47; obj* x_48; obj* x_50; obj* x_51; obj* x_53; obj* x_54; obj* x_62; -lean::dec(x_1); -x_37 = lean::cnstr_get(x_33, 0); -lean::inc(x_37); -lean::dec(x_33); -x_40 = lean::cnstr_get(x_37, 1); -lean::inc(x_40); -x_42 = lean::box(0); -lean::inc(x_40); -x_44 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_44, 0, x_40); -lean::cnstr_set(x_44, 1, x_42); -lean::inc(x_44); -lean::inc(x_23); -x_47 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_47, 0, x_23); -lean::cnstr_set(x_47, 1, x_44); -x_48 = l_lean_expander_expand__bracketed__binder___main___closed__2; -lean::inc(x_47); -x_50 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_48, x_47); -x_51 = lean::cnstr_get(x_18, 0); -lean::inc(x_51); -x_53 = l_lean_expander_expand__bracketed__binder___main___closed__3; -x_54 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(x_18, x_21, x_23, x_37, x_53, x_48, x_40, x_42, x_44, x_47, x_50, x_51); -lean::dec(x_47); -lean::dec(x_44); -lean::dec(x_40); -lean::dec(x_37); -lean::dec(x_23); +obj* x_38; obj* x_41; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_52; obj* x_53; lean::dec(x_21); +lean::dec(x_1); +x_38 = lean::cnstr_get(x_33, 0); +lean::inc(x_38); +lean::dec(x_33); +x_41 = lean::cnstr_get(x_38, 1); +lean::inc(x_41); +lean::dec(x_38); +x_44 = lean::box(0); +x_45 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_45, 0, x_41); +lean::cnstr_set(x_45, 1, x_44); +x_46 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_46, 0, x_23); +lean::cnstr_set(x_46, 1, x_45); +x_47 = l_lean_expander_expand__bracketed__binder___main___closed__2; +x_48 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_47, x_46); +x_49 = lean::cnstr_get(x_18, 0); +lean::inc(x_49); lean::dec(x_18); -x_62 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_62, 0, x_54); -return x_62; +x_52 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(x_48, x_49); +x_53 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_53, 0, x_52); +return x_53; } else { lean::dec(x_23); if (lean::obj_tag(x_21) == 0) { -obj* x_65; obj* x_68; obj* x_70; obj* x_72; obj* x_73; obj* x_75; obj* x_76; obj* x_79; obj* x_80; obj* x_84; +obj* x_56; obj* x_59; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_69; obj* x_70; lean::dec(x_1); -x_65 = lean::cnstr_get(x_33, 0); -lean::inc(x_65); +x_56 = lean::cnstr_get(x_33, 0); +lean::inc(x_56); lean::dec(x_33); -x_68 = lean::cnstr_get(x_65, 1); -lean::inc(x_68); -x_70 = lean::box(0); -lean::inc(x_68); -x_72 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_72, 0, x_68); -lean::cnstr_set(x_72, 1, x_70); -x_73 = l_lean_expander_expand__bracketed__binder___main___closed__4; -lean::inc(x_72); -x_75 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_73, x_72); -x_76 = lean::cnstr_get(x_18, 0); -lean::inc(x_76); +x_59 = lean::cnstr_get(x_56, 1); +lean::inc(x_59); +lean::dec(x_56); +x_62 = lean::box(0); +x_63 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_63, 0, x_59); +lean::cnstr_set(x_63, 1, x_62); +x_64 = l_lean_expander_expand__bracketed__binder___main___closed__3; +x_65 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_64, x_63); +x_66 = lean::cnstr_get(x_18, 0); +lean::inc(x_66); lean::dec(x_18); -x_79 = l_lean_expander_expand__bracketed__binder___main___closed__5; -x_80 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(x_65, x_79, x_73, x_68, x_70, x_72, x_75, x_76); -lean::dec(x_72); -lean::dec(x_68); -lean::dec(x_65); -x_84 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_84, 0, x_80); -return x_84; +x_69 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(x_65, x_66); +x_70 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_70, 0, x_69); +return x_70; } else { -obj* x_85; obj* x_86; obj* x_87; obj* x_90; obj* x_91; obj* x_92; obj* x_93; +obj* x_71; obj* x_72; obj* x_73; obj* x_76; obj* x_77; obj* x_78; obj* x_79; if (lean::is_exclusive(x_21)) { lean::cnstr_release(x_21, 0); - x_85 = x_21; + x_71 = x_21; } else { lean::dec(x_21); - x_85 = lean::box(0); + x_71 = lean::box(0); } -x_86 = l_lean_parser_term_binder__default_has__view; -x_87 = lean::cnstr_get(x_86, 1); -lean::inc(x_87); -lean::dec(x_86); -x_90 = lean::apply_1(x_87, x_33); -if (lean::is_scalar(x_85)) { - x_91 = lean::alloc_cnstr(1, 1, 0); +x_72 = l_lean_parser_term_binder__default_has__view; +x_73 = lean::cnstr_get(x_72, 1); +lean::inc(x_73); +lean::dec(x_72); +x_76 = lean::apply_1(x_73, x_33); +if (lean::is_scalar(x_71)) { + x_77 = lean::alloc_cnstr(1, 1, 0); } else { - x_91 = x_85; + x_77 = x_71; } -lean::cnstr_set(x_91, 0, x_90); -x_92 = l_lean_expander_expand__bracketed__binder___main___closed__6; -x_93 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_91, x_92, x_1); -lean::dec(x_91); -if (lean::obj_tag(x_93) == 0) +lean::cnstr_set(x_77, 0, x_76); +x_78 = l_lean_expander_expand__bracketed__binder___main___closed__4; +x_79 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_77, x_78, x_1); +lean::dec(x_77); +if (lean::obj_tag(x_79) == 0) { -obj* x_96; obj* x_98; obj* x_99; +obj* x_82; obj* x_84; obj* x_85; lean::dec(x_18); -x_96 = lean::cnstr_get(x_93, 0); -if (lean::is_exclusive(x_93)) { - x_98 = x_93; +x_82 = lean::cnstr_get(x_79, 0); +if (lean::is_exclusive(x_79)) { + x_84 = x_79; } else { - lean::inc(x_96); - lean::dec(x_93); - x_98 = lean::box(0); + lean::inc(x_82); + lean::dec(x_79); + x_84 = lean::box(0); } -if (lean::is_scalar(x_98)) { - x_99 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_84)) { + x_85 = lean::alloc_cnstr(0, 1, 0); } else { - x_99 = x_98; + x_85 = x_84; } -lean::cnstr_set(x_99, 0, x_96); -return x_99; +lean::cnstr_set(x_85, 0, x_82); +return x_85; } else { -obj* x_100; obj* x_102; obj* x_103; obj* x_106; obj* x_107; -x_100 = lean::cnstr_get(x_93, 0); -if (lean::is_exclusive(x_93)) { - x_102 = x_93; +obj* x_86; obj* x_88; obj* x_89; obj* x_92; obj* x_93; +x_86 = lean::cnstr_get(x_79, 0); +if (lean::is_exclusive(x_79)) { + x_88 = x_79; } else { - lean::inc(x_100); - lean::dec(x_93); - x_102 = lean::box(0); + lean::inc(x_86); + lean::dec(x_79); + x_88 = lean::box(0); } -x_103 = lean::cnstr_get(x_18, 0); -lean::inc(x_103); +x_89 = lean::cnstr_get(x_18, 0); +lean::inc(x_89); lean::dec(x_18); -x_106 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__9(x_100, x_103); -if (lean::is_scalar(x_102)) { - x_107 = lean::alloc_cnstr(1, 1, 0); +x_92 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__9(x_86, x_89); +if (lean::is_scalar(x_88)) { + x_93 = lean::alloc_cnstr(1, 1, 0); } else { - x_107 = x_102; + x_93 = x_88; } -lean::cnstr_set(x_107, 0, x_106); -return x_107; +lean::cnstr_set(x_93, 0, x_92); +return x_93; } } } @@ -5498,168 +5416,154 @@ return x_107; } case 1: { -obj* x_110; obj* x_112; obj* x_113; +obj* x_96; obj* x_98; obj* x_99; lean::dec(x_4); lean::dec(x_0); -x_110 = lean::cnstr_get(x_6, 1); -lean::inc(x_110); -x_112 = l_lean_expander_get__opt__type___main(x_110); -x_113 = lean::cnstr_get(x_6, 2); +x_96 = lean::cnstr_get(x_6, 1); +lean::inc(x_96); +x_98 = l_lean_expander_get__opt__type___main(x_96); +x_99 = lean::cnstr_get(x_6, 2); +lean::inc(x_99); +if (lean::obj_tag(x_99) == 0) +{ +obj* x_103; obj* x_106; obj* x_107; +lean::dec(x_1); +lean::dec(x_96); +x_103 = lean::cnstr_get(x_6, 0); +lean::inc(x_103); +lean::dec(x_6); +x_106 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(x_98, x_103); +x_107 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_107, 0, x_106); +return x_107; +} +else +{ +obj* x_108; +x_108 = lean::cnstr_get(x_99, 0); +lean::inc(x_108); +lean::dec(x_99); +if (lean::obj_tag(x_108) == 0) +{ +obj* x_113; obj* x_116; obj* x_119; obj* x_120; obj* x_121; obj* x_122; obj* x_123; obj* x_124; obj* x_127; obj* x_128; +lean::dec(x_1); +lean::dec(x_96); +x_113 = lean::cnstr_get(x_108, 0); lean::inc(x_113); -if (lean::obj_tag(x_113) == 0) -{ -obj* x_116; obj* x_118; obj* x_121; -lean::dec(x_1); -x_116 = lean::cnstr_get(x_6, 0); +lean::dec(x_108); +x_116 = lean::cnstr_get(x_113, 1); lean::inc(x_116); -x_118 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(x_6, x_110, x_112, x_116); -lean::dec(x_110); -lean::dec(x_6); -x_121 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_121, 0, x_118); -return x_121; -} -else -{ -obj* x_122; -x_122 = lean::cnstr_get(x_113, 0); -lean::inc(x_122); lean::dec(x_113); -if (lean::obj_tag(x_122) == 0) +x_119 = lean::box(0); +x_120 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_120, 0, x_116); +lean::cnstr_set(x_120, 1, x_119); +x_121 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_121, 0, x_98); +lean::cnstr_set(x_121, 1, x_120); +x_122 = l_lean_expander_expand__bracketed__binder___main___closed__2; +x_123 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_122, x_121); +x_124 = lean::cnstr_get(x_6, 0); +lean::inc(x_124); +lean::dec(x_6); +x_127 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(x_123, x_124); +x_128 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_128, 0, x_127); +return x_128; +} +else { -obj* x_126; obj* x_129; obj* x_131; obj* x_133; obj* x_136; obj* x_137; obj* x_139; obj* x_140; obj* x_142; obj* x_143; obj* x_151; +lean::dec(x_98); +if (lean::obj_tag(x_96) == 0) +{ +obj* x_131; obj* x_134; obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_144; obj* x_145; lean::dec(x_1); -x_126 = lean::cnstr_get(x_122, 0); -lean::inc(x_126); -lean::dec(x_122); -x_129 = lean::cnstr_get(x_126, 1); -lean::inc(x_129); -x_131 = lean::box(0); -lean::inc(x_129); -x_133 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_133, 0, x_129); -lean::cnstr_set(x_133, 1, x_131); -lean::inc(x_133); -lean::inc(x_112); -x_136 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_136, 0, x_112); -lean::cnstr_set(x_136, 1, x_133); -x_137 = l_lean_expander_expand__bracketed__binder___main___closed__2; -lean::inc(x_136); -x_139 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_137, x_136); -x_140 = lean::cnstr_get(x_6, 0); -lean::inc(x_140); -x_142 = l_lean_expander_expand__bracketed__binder___main___closed__3; -x_143 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(x_6, x_110, x_112, x_126, x_142, x_137, x_129, x_131, x_133, x_136, x_139, x_140); -lean::dec(x_136); -lean::dec(x_133); -lean::dec(x_129); -lean::dec(x_126); -lean::dec(x_112); -lean::dec(x_110); +x_131 = lean::cnstr_get(x_108, 0); +lean::inc(x_131); +lean::dec(x_108); +x_134 = lean::cnstr_get(x_131, 1); +lean::inc(x_134); +lean::dec(x_131); +x_137 = lean::box(0); +x_138 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_138, 0, x_134); +lean::cnstr_set(x_138, 1, x_137); +x_139 = l_lean_expander_expand__bracketed__binder___main___closed__3; +x_140 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_139, x_138); +x_141 = lean::cnstr_get(x_6, 0); +lean::inc(x_141); lean::dec(x_6); -x_151 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_151, 0, x_143); -return x_151; +x_144 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(x_140, x_141); +x_145 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_145, 0, x_144); +return x_145; } else { -lean::dec(x_112); -if (lean::obj_tag(x_110) == 0) +obj* x_146; obj* x_147; obj* x_148; obj* x_151; obj* x_152; obj* x_153; obj* x_154; +if (lean::is_exclusive(x_96)) { + lean::cnstr_release(x_96, 0); + x_146 = x_96; +} else { + lean::dec(x_96); + x_146 = lean::box(0); +} +x_147 = l_lean_parser_term_binder__default_has__view; +x_148 = lean::cnstr_get(x_147, 1); +lean::inc(x_148); +lean::dec(x_147); +x_151 = lean::apply_1(x_148, x_108); +if (lean::is_scalar(x_146)) { + x_152 = lean::alloc_cnstr(1, 1, 0); +} else { + x_152 = x_146; +} +lean::cnstr_set(x_152, 0, x_151); +x_153 = l_lean_expander_expand__bracketed__binder___main___closed__4; +x_154 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_152, x_153, x_1); +lean::dec(x_152); +if (lean::obj_tag(x_154) == 0) { -obj* x_154; obj* x_157; obj* x_159; obj* x_161; obj* x_162; obj* x_164; obj* x_165; obj* x_168; obj* x_169; obj* x_173; -lean::dec(x_1); -x_154 = lean::cnstr_get(x_122, 0); -lean::inc(x_154); -lean::dec(x_122); -x_157 = lean::cnstr_get(x_154, 1); -lean::inc(x_157); -x_159 = lean::box(0); -lean::inc(x_157); -x_161 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_161, 0, x_157); -lean::cnstr_set(x_161, 1, x_159); -x_162 = l_lean_expander_expand__bracketed__binder___main___closed__4; -lean::inc(x_161); -x_164 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_162, x_161); -x_165 = lean::cnstr_get(x_6, 0); -lean::inc(x_165); +obj* x_157; obj* x_159; obj* x_160; lean::dec(x_6); -x_168 = l_lean_expander_expand__bracketed__binder___main___closed__5; -x_169 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(x_154, x_168, x_162, x_157, x_159, x_161, x_164, x_165); -lean::dec(x_161); -lean::dec(x_157); -lean::dec(x_154); -x_173 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_173, 0, x_169); -return x_173; +x_157 = lean::cnstr_get(x_154, 0); +if (lean::is_exclusive(x_154)) { + x_159 = x_154; +} else { + lean::inc(x_157); + lean::dec(x_154); + x_159 = lean::box(0); +} +if (lean::is_scalar(x_159)) { + x_160 = lean::alloc_cnstr(0, 1, 0); +} else { + x_160 = x_159; +} +lean::cnstr_set(x_160, 0, x_157); +return x_160; } else { -obj* x_174; obj* x_175; obj* x_176; obj* x_179; obj* x_180; obj* x_181; obj* x_182; -if (lean::is_exclusive(x_110)) { - lean::cnstr_release(x_110, 0); - x_174 = x_110; +obj* x_161; obj* x_163; obj* x_164; obj* x_167; obj* x_168; +x_161 = lean::cnstr_get(x_154, 0); +if (lean::is_exclusive(x_154)) { + x_163 = x_154; } else { - lean::dec(x_110); - x_174 = lean::box(0); + lean::inc(x_161); + lean::dec(x_154); + x_163 = lean::box(0); } -x_175 = l_lean_parser_term_binder__default_has__view; -x_176 = lean::cnstr_get(x_175, 1); -lean::inc(x_176); -lean::dec(x_175); -x_179 = lean::apply_1(x_176, x_122); -if (lean::is_scalar(x_174)) { - x_180 = lean::alloc_cnstr(1, 1, 0); -} else { - x_180 = x_174; -} -lean::cnstr_set(x_180, 0, x_179); -x_181 = l_lean_expander_expand__bracketed__binder___main___closed__6; -x_182 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_180, x_181, x_1); -lean::dec(x_180); -if (lean::obj_tag(x_182) == 0) -{ -obj* x_185; obj* x_187; obj* x_188; +x_164 = lean::cnstr_get(x_6, 0); +lean::inc(x_164); lean::dec(x_6); -x_185 = lean::cnstr_get(x_182, 0); -if (lean::is_exclusive(x_182)) { - x_187 = x_182; +x_167 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__13(x_161, x_164); +if (lean::is_scalar(x_163)) { + x_168 = lean::alloc_cnstr(1, 1, 0); } else { - lean::inc(x_185); - lean::dec(x_182); - x_187 = lean::box(0); + x_168 = x_163; } -if (lean::is_scalar(x_187)) { - x_188 = lean::alloc_cnstr(0, 1, 0); -} else { - x_188 = x_187; -} -lean::cnstr_set(x_188, 0, x_185); -return x_188; -} -else -{ -obj* x_189; obj* x_191; obj* x_192; obj* x_195; obj* x_196; -x_189 = lean::cnstr_get(x_182, 0); -if (lean::is_exclusive(x_182)) { - x_191 = x_182; -} else { - lean::inc(x_189); - lean::dec(x_182); - x_191 = lean::box(0); -} -x_192 = lean::cnstr_get(x_6, 0); -lean::inc(x_192); -lean::dec(x_6); -x_195 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__13(x_189, x_192); -if (lean::is_scalar(x_191)) { - x_196 = lean::alloc_cnstr(1, 1, 0); -} else { - x_196 = x_191; -} -lean::cnstr_set(x_196, 0, x_195); -return x_196; +lean::cnstr_set(x_168, 0, x_167); +return x_168; } } } @@ -5667,168 +5571,154 @@ return x_196; } case 2: { -obj* x_199; obj* x_201; obj* x_202; +obj* x_171; obj* x_173; obj* x_174; lean::dec(x_4); lean::dec(x_0); -x_199 = lean::cnstr_get(x_6, 1); +x_171 = lean::cnstr_get(x_6, 1); +lean::inc(x_171); +x_173 = l_lean_expander_get__opt__type___main(x_171); +x_174 = lean::cnstr_get(x_6, 2); +lean::inc(x_174); +if (lean::obj_tag(x_174) == 0) +{ +obj* x_178; obj* x_181; obj* x_182; +lean::dec(x_171); +lean::dec(x_1); +x_178 = lean::cnstr_get(x_6, 0); +lean::inc(x_178); +lean::dec(x_6); +x_181 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(x_173, x_178); +x_182 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_182, 0, x_181); +return x_182; +} +else +{ +obj* x_183; +x_183 = lean::cnstr_get(x_174, 0); +lean::inc(x_183); +lean::dec(x_174); +if (lean::obj_tag(x_183) == 0) +{ +obj* x_188; obj* x_191; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_198; obj* x_199; obj* x_202; obj* x_203; +lean::dec(x_171); +lean::dec(x_1); +x_188 = lean::cnstr_get(x_183, 0); +lean::inc(x_188); +lean::dec(x_183); +x_191 = lean::cnstr_get(x_188, 1); +lean::inc(x_191); +lean::dec(x_188); +x_194 = lean::box(0); +x_195 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_195, 0, x_191); +lean::cnstr_set(x_195, 1, x_194); +x_196 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_196, 0, x_173); +lean::cnstr_set(x_196, 1, x_195); +x_197 = l_lean_expander_expand__bracketed__binder___main___closed__2; +x_198 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_197, x_196); +x_199 = lean::cnstr_get(x_6, 0); lean::inc(x_199); -x_201 = l_lean_expander_get__opt__type___main(x_199); -x_202 = lean::cnstr_get(x_6, 2); -lean::inc(x_202); -if (lean::obj_tag(x_202) == 0) -{ -obj* x_205; obj* x_207; obj* x_210; -lean::dec(x_1); -x_205 = lean::cnstr_get(x_6, 0); -lean::inc(x_205); -x_207 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(x_6, x_199, x_201, x_205); -lean::dec(x_199); lean::dec(x_6); -x_210 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_210, 0, x_207); -return x_210; +x_202 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(x_198, x_199); +x_203 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_203, 0, x_202); +return x_203; } else { -obj* x_211; -x_211 = lean::cnstr_get(x_202, 0); -lean::inc(x_211); -lean::dec(x_202); -if (lean::obj_tag(x_211) == 0) +lean::dec(x_173); +if (lean::obj_tag(x_171) == 0) { -obj* x_215; obj* x_218; obj* x_220; obj* x_222; obj* x_225; obj* x_226; obj* x_228; obj* x_229; obj* x_231; obj* x_232; obj* x_240; +obj* x_206; obj* x_209; obj* x_212; obj* x_213; obj* x_214; obj* x_215; obj* x_216; obj* x_219; obj* x_220; lean::dec(x_1); -x_215 = lean::cnstr_get(x_211, 0); -lean::inc(x_215); -lean::dec(x_211); -x_218 = lean::cnstr_get(x_215, 1); -lean::inc(x_218); -x_220 = lean::box(0); -lean::inc(x_218); -x_222 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_222, 0, x_218); -lean::cnstr_set(x_222, 1, x_220); -lean::inc(x_222); -lean::inc(x_201); -x_225 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_225, 0, x_201); -lean::cnstr_set(x_225, 1, x_222); -x_226 = l_lean_expander_expand__bracketed__binder___main___closed__2; -lean::inc(x_225); -x_228 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_226, x_225); -x_229 = lean::cnstr_get(x_6, 0); -lean::inc(x_229); -x_231 = l_lean_expander_expand__bracketed__binder___main___closed__3; -x_232 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(x_6, x_199, x_201, x_215, x_231, x_226, x_218, x_220, x_222, x_225, x_228, x_229); -lean::dec(x_225); +x_206 = lean::cnstr_get(x_183, 0); +lean::inc(x_206); +lean::dec(x_183); +x_209 = lean::cnstr_get(x_206, 1); +lean::inc(x_209); +lean::dec(x_206); +x_212 = lean::box(0); +x_213 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_213, 0, x_209); +lean::cnstr_set(x_213, 1, x_212); +x_214 = l_lean_expander_expand__bracketed__binder___main___closed__3; +x_215 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_214, x_213); +x_216 = lean::cnstr_get(x_6, 0); +lean::inc(x_216); +lean::dec(x_6); +x_219 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(x_215, x_216); +x_220 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_220, 0, x_219); +return x_220; +} +else +{ +obj* x_221; obj* x_222; obj* x_223; obj* x_226; obj* x_227; obj* x_228; obj* x_229; +if (lean::is_exclusive(x_171)) { + lean::cnstr_release(x_171, 0); + x_221 = x_171; +} else { + lean::dec(x_171); + x_221 = lean::box(0); +} +x_222 = l_lean_parser_term_binder__default_has__view; +x_223 = lean::cnstr_get(x_222, 1); +lean::inc(x_223); lean::dec(x_222); -lean::dec(x_218); -lean::dec(x_215); -lean::dec(x_201); -lean::dec(x_199); +x_226 = lean::apply_1(x_223, x_183); +if (lean::is_scalar(x_221)) { + x_227 = lean::alloc_cnstr(1, 1, 0); +} else { + x_227 = x_221; +} +lean::cnstr_set(x_227, 0, x_226); +x_228 = l_lean_expander_expand__bracketed__binder___main___closed__4; +x_229 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_227, x_228, x_1); +lean::dec(x_227); +if (lean::obj_tag(x_229) == 0) +{ +obj* x_232; obj* x_234; obj* x_235; lean::dec(x_6); -x_240 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_240, 0, x_232); -return x_240; +x_232 = lean::cnstr_get(x_229, 0); +if (lean::is_exclusive(x_229)) { + x_234 = x_229; +} else { + lean::inc(x_232); + lean::dec(x_229); + x_234 = lean::box(0); +} +if (lean::is_scalar(x_234)) { + x_235 = lean::alloc_cnstr(0, 1, 0); +} else { + x_235 = x_234; +} +lean::cnstr_set(x_235, 0, x_232); +return x_235; } else { -lean::dec(x_201); -if (lean::obj_tag(x_199) == 0) -{ -obj* x_243; obj* x_246; obj* x_248; obj* x_250; obj* x_251; obj* x_253; obj* x_254; obj* x_257; obj* x_258; obj* x_262; -lean::dec(x_1); -x_243 = lean::cnstr_get(x_211, 0); -lean::inc(x_243); -lean::dec(x_211); -x_246 = lean::cnstr_get(x_243, 1); -lean::inc(x_246); -x_248 = lean::box(0); -lean::inc(x_246); -x_250 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_250, 0, x_246); -lean::cnstr_set(x_250, 1, x_248); -x_251 = l_lean_expander_expand__bracketed__binder___main___closed__4; -lean::inc(x_250); -x_253 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_251, x_250); -x_254 = lean::cnstr_get(x_6, 0); -lean::inc(x_254); +obj* x_236; obj* x_238; obj* x_239; obj* x_242; obj* x_243; +x_236 = lean::cnstr_get(x_229, 0); +if (lean::is_exclusive(x_229)) { + x_238 = x_229; +} else { + lean::inc(x_236); + lean::dec(x_229); + x_238 = lean::box(0); +} +x_239 = lean::cnstr_get(x_6, 0); +lean::inc(x_239); lean::dec(x_6); -x_257 = l_lean_expander_expand__bracketed__binder___main___closed__5; -x_258 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(x_243, x_257, x_251, x_246, x_248, x_250, x_253, x_254); -lean::dec(x_250); -lean::dec(x_246); -lean::dec(x_243); -x_262 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_262, 0, x_258); -return x_262; -} -else -{ -obj* x_263; obj* x_264; obj* x_265; obj* x_268; obj* x_269; obj* x_270; obj* x_271; -if (lean::is_exclusive(x_199)) { - lean::cnstr_release(x_199, 0); - x_263 = x_199; +x_242 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__17(x_236, x_239); +if (lean::is_scalar(x_238)) { + x_243 = lean::alloc_cnstr(1, 1, 0); } else { - lean::dec(x_199); - x_263 = lean::box(0); + x_243 = x_238; } -x_264 = l_lean_parser_term_binder__default_has__view; -x_265 = lean::cnstr_get(x_264, 1); -lean::inc(x_265); -lean::dec(x_264); -x_268 = lean::apply_1(x_265, x_211); -if (lean::is_scalar(x_263)) { - x_269 = lean::alloc_cnstr(1, 1, 0); -} else { - x_269 = x_263; -} -lean::cnstr_set(x_269, 0, x_268); -x_270 = l_lean_expander_expand__bracketed__binder___main___closed__6; -x_271 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_269, x_270, x_1); -lean::dec(x_269); -if (lean::obj_tag(x_271) == 0) -{ -obj* x_274; obj* x_276; obj* x_277; -lean::dec(x_6); -x_274 = lean::cnstr_get(x_271, 0); -if (lean::is_exclusive(x_271)) { - x_276 = x_271; -} else { - lean::inc(x_274); - lean::dec(x_271); - x_276 = lean::box(0); -} -if (lean::is_scalar(x_276)) { - x_277 = lean::alloc_cnstr(0, 1, 0); -} else { - x_277 = x_276; -} -lean::cnstr_set(x_277, 0, x_274); -return x_277; -} -else -{ -obj* x_278; obj* x_280; obj* x_281; obj* x_284; obj* x_285; -x_278 = lean::cnstr_get(x_271, 0); -if (lean::is_exclusive(x_271)) { - x_280 = x_271; -} else { - lean::inc(x_278); - lean::dec(x_271); - x_280 = lean::box(0); -} -x_281 = lean::cnstr_get(x_6, 0); -lean::inc(x_281); -lean::dec(x_6); -x_284 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__17(x_278, x_281); -if (lean::is_scalar(x_280)) { - x_285 = lean::alloc_cnstr(1, 1, 0); -} else { - x_285 = x_280; -} -lean::cnstr_set(x_285, 0, x_284); -return x_285; +lean::cnstr_set(x_243, 0, x_242); +return x_243; } } } @@ -5841,299 +5731,271 @@ lean::dec(x_1); lean::dec(x_0); if (lean::obj_tag(x_6) == 0) { -obj* x_289; obj* x_292; obj* x_294; obj* x_295; obj* x_296; obj* x_297; obj* x_298; obj* x_300; obj* x_302; obj* x_304; obj* x_305; obj* x_306; obj* x_307; obj* x_308; obj* x_313; -x_289 = lean::cnstr_get(x_6, 0); -lean::inc(x_289); +obj* x_247; obj* x_250; obj* x_252; obj* x_253; obj* x_254; obj* x_255; obj* x_258; obj* x_259; obj* x_260; obj* x_261; obj* x_263; obj* x_264; +x_247 = lean::cnstr_get(x_6, 0); +lean::inc(x_247); lean::dec(x_6); -x_292 = lean::cnstr_get(x_289, 0); -lean::inc(x_292); -x_294 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_294, 0, x_292); -x_295 = lean::box(0); -x_296 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_296, 0, x_294); -lean::cnstr_set(x_296, 1, x_295); -x_297 = lean::box(0); -x_298 = lean::cnstr_get(x_289, 2); -lean::inc(x_298); -x_300 = l_lean_expander_mk__simple__binder___closed__1; -lean::inc(x_298); -x_302 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_302, 0, x_300); -lean::cnstr_set(x_302, 1, x_298); -lean::inc(x_302); -x_304 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_304, 0, x_302); -x_305 = l_lean_expander_get__opt__type___main(x_304); -x_306 = l_lean_expander_expand__bracketed__binder___main___closed__10; -x_307 = l_lean_expander_expand__bracketed__binder___main___closed__11; -x_308 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(x_289, x_297, x_306, x_307, x_300, x_298, x_302, x_304, x_305, x_296); -lean::dec(x_304); -lean::dec(x_302); -lean::dec(x_298); -lean::dec(x_289); -x_313 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_313, 0, x_308); -return x_313; +x_250 = lean::cnstr_get(x_247, 0); +lean::inc(x_250); +x_252 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_252, 0, x_250); +x_253 = lean::box(0); +x_254 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_254, 0, x_252); +lean::cnstr_set(x_254, 1, x_253); +x_255 = lean::cnstr_get(x_247, 2); +lean::inc(x_255); +lean::dec(x_247); +x_258 = l_lean_expander_mk__simple__binder___closed__1; +x_259 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_259, 0, x_258); +lean::cnstr_set(x_259, 1, x_255); +x_260 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_260, 0, x_259); +x_261 = l_lean_expander_get__opt__type___main(x_260); +lean::dec(x_260); +x_263 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(x_261, x_254); +x_264 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_264, 0, x_263); +return x_264; } else { -obj* x_314; obj* x_317; obj* x_318; obj* x_320; obj* x_322; obj* x_323; obj* x_324; obj* x_325; obj* x_326; obj* x_327; obj* x_331; -x_314 = lean::cnstr_get(x_6, 0); -lean::inc(x_314); +obj* x_265; obj* x_268; obj* x_269; obj* x_270; obj* x_271; obj* x_273; obj* x_274; obj* x_275; +x_265 = lean::cnstr_get(x_6, 0); +lean::inc(x_265); lean::dec(x_6); -x_317 = lean::box(0); -x_318 = l_lean_expander_mk__simple__binder___closed__1; -lean::inc(x_314); -x_320 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_320, 0, x_318); -lean::cnstr_set(x_320, 1, x_314); -lean::inc(x_320); -x_322 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_322, 0, x_320); -x_323 = l_lean_expander_get__opt__type___main(x_322); -x_324 = l_lean_expander_expand__bracketed__binder___main___closed__10; -x_325 = l_lean_expander_expand__bracketed__binder___main___closed__11; -x_326 = l_lean_expander_expand__bracketed__binder___main___closed__12; -x_327 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(x_314, x_317, x_324, x_325, x_318, x_314, x_320, x_322, x_323, x_326); -lean::dec(x_322); -lean::dec(x_320); -lean::dec(x_314); -x_331 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_331, 0, x_327); -return x_331; +x_268 = l_lean_expander_mk__simple__binder___closed__1; +x_269 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_269, 0, x_268); +lean::cnstr_set(x_269, 1, x_265); +x_270 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_270, 0, x_269); +x_271 = l_lean_expander_get__opt__type___main(x_270); +lean::dec(x_270); +x_273 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_274 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(x_271, x_273); +x_275 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_275, 0, x_274); +return x_275; } } default: { -obj* x_334; obj* x_335; obj* x_338; obj* x_339; obj* x_340; obj* x_342; +obj* x_278; obj* x_279; obj* x_282; obj* x_283; obj* x_284; obj* x_286; lean::dec(x_6); lean::dec(x_0); -x_334 = l_lean_parser_term_anonymous__constructor_has__view; -x_335 = lean::cnstr_get(x_334, 1); -lean::inc(x_335); -lean::dec(x_334); -x_338 = lean::apply_1(x_335, x_4); -x_339 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_339, 0, x_338); -x_340 = l_lean_expander_expand__bracketed__binder___main___closed__13; +x_278 = l_lean_parser_term_anonymous__constructor_has__view; +x_279 = lean::cnstr_get(x_278, 1); +lean::inc(x_279); +lean::dec(x_278); +x_282 = lean::apply_1(x_279, x_4); +x_283 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_283, 0, x_282); +x_284 = l_lean_expander_expand__bracketed__binder___main___closed__9; lean::inc(x_1); -x_342 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_339, x_340, x_1); -lean::dec(x_339); -if (lean::obj_tag(x_342) == 0) +x_286 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_283, x_284, x_1); +lean::dec(x_283); +if (lean::obj_tag(x_286) == 0) { -obj* x_345; obj* x_347; obj* x_348; +obj* x_289; obj* x_291; obj* x_292; lean::dec(x_1); -x_345 = lean::cnstr_get(x_342, 0); -if (lean::is_exclusive(x_342)) { - x_347 = x_342; +x_289 = lean::cnstr_get(x_286, 0); +if (lean::is_exclusive(x_286)) { + x_291 = x_286; } else { - lean::inc(x_345); - lean::dec(x_342); - x_347 = lean::box(0); + lean::inc(x_289); + lean::dec(x_286); + x_291 = lean::box(0); } -if (lean::is_scalar(x_347)) { - x_348 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_291)) { + x_292 = lean::alloc_cnstr(0, 1, 0); } else { - x_348 = x_347; + x_292 = x_291; } -lean::cnstr_set(x_348, 0, x_345); -return x_348; +lean::cnstr_set(x_292, 0, x_289); +return x_292; } else { -obj* x_349; obj* x_351; obj* x_352; obj* x_354; obj* x_357; obj* x_359; obj* x_360; -x_349 = lean::cnstr_get(x_342, 0); -if (lean::is_exclusive(x_342)) { - lean::cnstr_set(x_342, 0, lean::box(0)); - x_351 = x_342; +obj* x_293; obj* x_295; obj* x_296; obj* x_298; obj* x_301; obj* x_303; obj* x_304; +x_293 = lean::cnstr_get(x_286, 0); +if (lean::is_exclusive(x_286)) { + lean::cnstr_set(x_286, 0, lean::box(0)); + x_295 = x_286; } else { - lean::inc(x_349); - lean::dec(x_342); - x_351 = lean::box(0); + lean::inc(x_293); + lean::dec(x_286); + x_295 = lean::box(0); } -x_352 = lean::cnstr_get(x_349, 0); -lean::inc(x_352); -x_354 = lean::cnstr_get(x_349, 1); -lean::inc(x_354); -lean::dec(x_349); -x_357 = lean::cnstr_get(x_354, 1); +x_296 = lean::cnstr_get(x_293, 0); +lean::inc(x_296); +x_298 = lean::cnstr_get(x_293, 1); +lean::inc(x_298); +lean::dec(x_293); +x_301 = lean::cnstr_get(x_298, 1); +lean::inc(x_301); +x_303 = l_lean_expander_get__opt__type___main(x_301); +x_304 = lean::cnstr_get(x_298, 2); +lean::inc(x_304); +if (lean::obj_tag(x_304) == 0) +{ +obj* x_308; uint8 x_311; obj* x_312; obj* x_313; +lean::dec(x_1); +lean::dec(x_301); +x_308 = lean::cnstr_get(x_298, 0); +lean::inc(x_308); +lean::dec(x_298); +x_311 = lean::unbox(x_296); +x_312 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_311, x_303, x_308); +if (lean::is_scalar(x_295)) { + x_313 = lean::alloc_cnstr(1, 1, 0); +} else { + x_313 = x_295; +} +lean::cnstr_set(x_313, 0, x_312); +return x_313; +} +else +{ +obj* x_314; +x_314 = lean::cnstr_get(x_304, 0); +lean::inc(x_314); +lean::dec(x_304); +if (lean::obj_tag(x_314) == 0) +{ +obj* x_319; obj* x_322; obj* x_325; obj* x_326; obj* x_327; obj* x_328; obj* x_329; obj* x_330; uint8 x_333; obj* x_334; obj* x_335; +lean::dec(x_1); +lean::dec(x_301); +x_319 = lean::cnstr_get(x_314, 0); +lean::inc(x_319); +lean::dec(x_314); +x_322 = lean::cnstr_get(x_319, 1); +lean::inc(x_322); +lean::dec(x_319); +x_325 = lean::box(0); +x_326 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_326, 0, x_322); +lean::cnstr_set(x_326, 1, x_325); +x_327 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_327, 0, x_303); +lean::cnstr_set(x_327, 1, x_326); +x_328 = l_lean_expander_expand__bracketed__binder___main___closed__2; +x_329 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_328, x_327); +x_330 = lean::cnstr_get(x_298, 0); +lean::inc(x_330); +lean::dec(x_298); +x_333 = lean::unbox(x_296); +x_334 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_333, x_329, x_330); +if (lean::is_scalar(x_295)) { + x_335 = lean::alloc_cnstr(1, 1, 0); +} else { + x_335 = x_295; +} +lean::cnstr_set(x_335, 0, x_334); +return x_335; +} +else +{ +lean::dec(x_303); +if (lean::obj_tag(x_301) == 0) +{ +obj* x_338; obj* x_341; obj* x_344; obj* x_345; obj* x_346; obj* x_347; obj* x_348; uint8 x_351; obj* x_352; obj* x_353; +lean::dec(x_1); +x_338 = lean::cnstr_get(x_314, 0); +lean::inc(x_338); +lean::dec(x_314); +x_341 = lean::cnstr_get(x_338, 1); +lean::inc(x_341); +lean::dec(x_338); +x_344 = lean::box(0); +x_345 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_345, 0, x_341); +lean::cnstr_set(x_345, 1, x_344); +x_346 = l_lean_expander_expand__bracketed__binder___main___closed__3; +x_347 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_346, x_345); +x_348 = lean::cnstr_get(x_298, 0); +lean::inc(x_348); +lean::dec(x_298); +x_351 = lean::unbox(x_296); +x_352 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_351, x_347, x_348); +if (lean::is_scalar(x_295)) { + x_353 = lean::alloc_cnstr(1, 1, 0); +} else { + x_353 = x_295; +} +lean::cnstr_set(x_353, 0, x_352); +return x_353; +} +else +{ +obj* x_355; obj* x_356; obj* x_357; obj* x_360; obj* x_361; obj* x_362; obj* x_363; +lean::dec(x_295); +if (lean::is_exclusive(x_301)) { + lean::cnstr_release(x_301, 0); + x_355 = x_301; +} else { + lean::dec(x_301); + x_355 = lean::box(0); +} +x_356 = l_lean_parser_term_binder__default_has__view; +x_357 = lean::cnstr_get(x_356, 1); lean::inc(x_357); -x_359 = l_lean_expander_get__opt__type___main(x_357); -x_360 = lean::cnstr_get(x_354, 2); -lean::inc(x_360); -if (lean::obj_tag(x_360) == 0) -{ -obj* x_363; uint8 x_365; obj* x_366; obj* x_369; -lean::dec(x_1); -x_363 = lean::cnstr_get(x_354, 0); -lean::inc(x_363); -x_365 = lean::unbox(x_352); -x_366 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_365, x_354, x_357, x_359, x_363); -lean::dec(x_357); -lean::dec(x_354); -if (lean::is_scalar(x_351)) { - x_369 = lean::alloc_cnstr(1, 1, 0); +lean::dec(x_356); +x_360 = lean::apply_1(x_357, x_314); +if (lean::is_scalar(x_355)) { + x_361 = lean::alloc_cnstr(1, 1, 0); } else { - x_369 = x_351; + x_361 = x_355; } -lean::cnstr_set(x_369, 0, x_366); -return x_369; +lean::cnstr_set(x_361, 0, x_360); +x_362 = l_lean_expander_expand__bracketed__binder___main___closed__4; +x_363 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_361, x_362, x_1); +lean::dec(x_361); +if (lean::obj_tag(x_363) == 0) +{ +obj* x_367; obj* x_369; obj* x_370; +lean::dec(x_298); +lean::dec(x_296); +x_367 = lean::cnstr_get(x_363, 0); +if (lean::is_exclusive(x_363)) { + x_369 = x_363; +} else { + lean::inc(x_367); + lean::dec(x_363); + x_369 = lean::box(0); +} +if (lean::is_scalar(x_369)) { + x_370 = lean::alloc_cnstr(0, 1, 0); +} else { + x_370 = x_369; +} +lean::cnstr_set(x_370, 0, x_367); +return x_370; } else { -obj* x_370; -x_370 = lean::cnstr_get(x_360, 0); -lean::inc(x_370); -lean::dec(x_360); -if (lean::obj_tag(x_370) == 0) -{ -obj* x_374; obj* x_377; obj* x_379; obj* x_381; obj* x_384; obj* x_385; obj* x_387; obj* x_388; obj* x_390; uint8 x_391; obj* x_392; obj* x_400; -lean::dec(x_1); -x_374 = lean::cnstr_get(x_370, 0); +obj* x_371; obj* x_373; obj* x_374; uint8 x_377; obj* x_378; obj* x_379; +x_371 = lean::cnstr_get(x_363, 0); +if (lean::is_exclusive(x_363)) { + x_373 = x_363; +} else { + lean::inc(x_371); + lean::dec(x_363); + x_373 = lean::box(0); +} +x_374 = lean::cnstr_get(x_298, 0); lean::inc(x_374); -lean::dec(x_370); -x_377 = lean::cnstr_get(x_374, 1); -lean::inc(x_377); -x_379 = lean::box(0); -lean::inc(x_377); -x_381 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_381, 0, x_377); -lean::cnstr_set(x_381, 1, x_379); -lean::inc(x_381); -lean::inc(x_359); -x_384 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_384, 0, x_359); -lean::cnstr_set(x_384, 1, x_381); -x_385 = l_lean_expander_expand__bracketed__binder___main___closed__2; -lean::inc(x_384); -x_387 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_385, x_384); -x_388 = lean::cnstr_get(x_354, 0); -lean::inc(x_388); -x_390 = l_lean_expander_expand__bracketed__binder___main___closed__3; -x_391 = lean::unbox(x_352); -x_392 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_391, x_354, x_357, x_359, x_374, x_390, x_385, x_377, x_379, x_381, x_384, x_387, x_388); -lean::dec(x_384); -lean::dec(x_381); -lean::dec(x_377); -lean::dec(x_374); -lean::dec(x_359); -lean::dec(x_357); -lean::dec(x_354); -if (lean::is_scalar(x_351)) { - x_400 = lean::alloc_cnstr(1, 1, 0); +lean::dec(x_298); +x_377 = lean::unbox(x_296); +x_378 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__23(x_377, x_371, x_374); +if (lean::is_scalar(x_373)) { + x_379 = lean::alloc_cnstr(1, 1, 0); } else { - x_400 = x_351; + x_379 = x_373; } -lean::cnstr_set(x_400, 0, x_392); -return x_400; -} -else -{ -lean::dec(x_359); -if (lean::obj_tag(x_357) == 0) -{ -obj* x_403; obj* x_406; obj* x_408; obj* x_410; obj* x_411; obj* x_413; obj* x_414; obj* x_417; uint8 x_418; obj* x_419; obj* x_423; -lean::dec(x_1); -x_403 = lean::cnstr_get(x_370, 0); -lean::inc(x_403); -lean::dec(x_370); -x_406 = lean::cnstr_get(x_403, 1); -lean::inc(x_406); -x_408 = lean::box(0); -lean::inc(x_406); -x_410 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_410, 0, x_406); -lean::cnstr_set(x_410, 1, x_408); -x_411 = l_lean_expander_expand__bracketed__binder___main___closed__4; -lean::inc(x_410); -x_413 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_411, x_410); -x_414 = lean::cnstr_get(x_354, 0); -lean::inc(x_414); -lean::dec(x_354); -x_417 = l_lean_expander_expand__bracketed__binder___main___closed__5; -x_418 = lean::unbox(x_352); -x_419 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_418, x_403, x_417, x_411, x_406, x_408, x_410, x_413, x_414); -lean::dec(x_410); -lean::dec(x_406); -lean::dec(x_403); -if (lean::is_scalar(x_351)) { - x_423 = lean::alloc_cnstr(1, 1, 0); -} else { - x_423 = x_351; -} -lean::cnstr_set(x_423, 0, x_419); -return x_423; -} -else -{ -obj* x_425; obj* x_426; obj* x_427; obj* x_430; obj* x_431; obj* x_432; obj* x_433; -lean::dec(x_351); -if (lean::is_exclusive(x_357)) { - lean::cnstr_release(x_357, 0); - x_425 = x_357; -} else { - lean::dec(x_357); - x_425 = lean::box(0); -} -x_426 = l_lean_parser_term_binder__default_has__view; -x_427 = lean::cnstr_get(x_426, 1); -lean::inc(x_427); -lean::dec(x_426); -x_430 = lean::apply_1(x_427, x_370); -if (lean::is_scalar(x_425)) { - x_431 = lean::alloc_cnstr(1, 1, 0); -} else { - x_431 = x_425; -} -lean::cnstr_set(x_431, 0, x_430); -x_432 = l_lean_expander_expand__bracketed__binder___main___closed__6; -x_433 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_431, x_432, x_1); -lean::dec(x_431); -if (lean::obj_tag(x_433) == 0) -{ -obj* x_437; obj* x_439; obj* x_440; -lean::dec(x_352); -lean::dec(x_354); -x_437 = lean::cnstr_get(x_433, 0); -if (lean::is_exclusive(x_433)) { - x_439 = x_433; -} else { - lean::inc(x_437); - lean::dec(x_433); - x_439 = lean::box(0); -} -if (lean::is_scalar(x_439)) { - x_440 = lean::alloc_cnstr(0, 1, 0); -} else { - x_440 = x_439; -} -lean::cnstr_set(x_440, 0, x_437); -return x_440; -} -else -{ -obj* x_441; obj* x_443; obj* x_444; uint8 x_447; obj* x_448; obj* x_449; -x_441 = lean::cnstr_get(x_433, 0); -if (lean::is_exclusive(x_433)) { - x_443 = x_433; -} else { - lean::inc(x_441); - lean::dec(x_433); - x_443 = lean::box(0); -} -x_444 = lean::cnstr_get(x_354, 0); -lean::inc(x_444); -lean::dec(x_354); -x_447 = lean::unbox(x_352); -x_448 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__23(x_447, x_441, x_444); -if (lean::is_scalar(x_443)) { - x_449 = lean::alloc_cnstr(1, 1, 0); -} else { - x_449 = x_443; -} -lean::cnstr_set(x_449, 0, x_448); -return x_449; +lean::cnstr_set(x_379, 0, x_378); +return x_379; } } } @@ -6148,186 +6010,186 @@ default: switch (lean::obj_tag(x_0)) { case 0: { -obj* x_450; obj* x_453; -x_450 = lean::cnstr_get(x_0, 0); -lean::inc(x_450); +obj* x_380; obj* x_383; +x_380 = lean::cnstr_get(x_0, 0); +lean::inc(x_380); lean::dec(x_0); -x_453 = lean::cnstr_get(x_450, 1); -lean::inc(x_453); -lean::dec(x_450); -if (lean::obj_tag(x_453) == 0) +x_383 = lean::cnstr_get(x_380, 1); +lean::inc(x_383); +lean::dec(x_380); +if (lean::obj_tag(x_383) == 0) { -obj* x_457; -lean::dec(x_453); -x_457 = l_lean_expander_expand__bracketed__binder___main___closed__7; -x_2 = x_457; +obj* x_387; +lean::dec(x_383); +x_387 = l_lean_expander_expand__bracketed__binder___main___closed__5; +x_2 = x_387; goto lbl_3; } else { -obj* x_458; uint8 x_461; obj* x_462; obj* x_463; -x_458 = lean::cnstr_get(x_453, 0); -lean::inc(x_458); -lean::dec(x_453); -x_461 = 0; -x_462 = lean::box(x_461); -x_463 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_463, 0, x_462); -lean::cnstr_set(x_463, 1, x_458); -x_2 = x_463; +obj* x_388; uint8 x_391; obj* x_392; obj* x_393; +x_388 = lean::cnstr_get(x_383, 0); +lean::inc(x_388); +lean::dec(x_383); +x_391 = 0; +x_392 = lean::box(x_391); +x_393 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_393, 0, x_392); +lean::cnstr_set(x_393, 1, x_388); +x_2 = x_393; goto lbl_3; } } case 1: { -obj* x_464; obj* x_467; uint8 x_470; obj* x_471; obj* x_472; -x_464 = lean::cnstr_get(x_0, 0); -lean::inc(x_464); +obj* x_394; obj* x_397; uint8 x_400; obj* x_401; obj* x_402; +x_394 = lean::cnstr_get(x_0, 0); +lean::inc(x_394); lean::dec(x_0); -x_467 = lean::cnstr_get(x_464, 1); -lean::inc(x_467); -lean::dec(x_464); -x_470 = 1; -x_471 = lean::box(x_470); -x_472 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_472, 0, x_471); -lean::cnstr_set(x_472, 1, x_467); -x_2 = x_472; +x_397 = lean::cnstr_get(x_394, 1); +lean::inc(x_397); +lean::dec(x_394); +x_400 = 1; +x_401 = lean::box(x_400); +x_402 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_402, 0, x_401); +lean::cnstr_set(x_402, 1, x_397); +x_2 = x_402; goto lbl_3; } case 2: { -obj* x_473; obj* x_476; uint8 x_479; obj* x_480; obj* x_481; -x_473 = lean::cnstr_get(x_0, 0); -lean::inc(x_473); +obj* x_403; obj* x_406; uint8 x_409; obj* x_410; obj* x_411; +x_403 = lean::cnstr_get(x_0, 0); +lean::inc(x_403); lean::dec(x_0); -x_476 = lean::cnstr_get(x_473, 1); -lean::inc(x_476); -lean::dec(x_473); -x_479 = 2; -x_480 = lean::box(x_479); -x_481 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_481, 0, x_480); -lean::cnstr_set(x_481, 1, x_476); -x_2 = x_481; +x_406 = lean::cnstr_get(x_403, 1); +lean::inc(x_406); +lean::dec(x_403); +x_409 = 2; +x_410 = lean::box(x_409); +x_411 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_411, 0, x_410); +lean::cnstr_set(x_411, 1, x_406); +x_2 = x_411; goto lbl_3; } case 3: { -obj* x_482; obj* x_485; -x_482 = lean::cnstr_get(x_0, 0); -lean::inc(x_482); +obj* x_412; obj* x_415; +x_412 = lean::cnstr_get(x_0, 0); +lean::inc(x_412); lean::dec(x_0); -x_485 = lean::cnstr_get(x_482, 1); -lean::inc(x_485); -lean::dec(x_482); -if (lean::obj_tag(x_485) == 0) +x_415 = lean::cnstr_get(x_412, 1); +lean::inc(x_415); +lean::dec(x_412); +if (lean::obj_tag(x_415) == 0) { -obj* x_488; obj* x_491; obj* x_493; obj* x_494; obj* x_495; obj* x_496; obj* x_497; obj* x_500; obj* x_501; obj* x_502; obj* x_503; uint8 x_504; obj* x_505; obj* x_506; -x_488 = lean::cnstr_get(x_485, 0); -lean::inc(x_488); -lean::dec(x_485); -x_491 = lean::cnstr_get(x_488, 0); -lean::inc(x_491); -x_493 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_493, 0, x_491); -x_494 = lean::box(0); -x_495 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_495, 0, x_493); -lean::cnstr_set(x_495, 1, x_494); -x_496 = lean::box(0); -x_497 = lean::cnstr_get(x_488, 2); -lean::inc(x_497); -lean::dec(x_488); -x_500 = l_lean_expander_mk__simple__binder___closed__1; -x_501 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_501, 0, x_500); -lean::cnstr_set(x_501, 1, x_497); -x_502 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_502, 0, x_501); -x_503 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_503, 0, x_495); -lean::cnstr_set(x_503, 1, x_502); -lean::cnstr_set(x_503, 2, x_496); -x_504 = 3; -x_505 = lean::box(x_504); -x_506 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_506, 0, x_505); -lean::cnstr_set(x_506, 1, x_503); -x_2 = x_506; +obj* x_418; obj* x_421; obj* x_423; obj* x_424; obj* x_425; obj* x_426; obj* x_427; obj* x_430; obj* x_431; obj* x_432; obj* x_433; uint8 x_434; obj* x_435; obj* x_436; +x_418 = lean::cnstr_get(x_415, 0); +lean::inc(x_418); +lean::dec(x_415); +x_421 = lean::cnstr_get(x_418, 0); +lean::inc(x_421); +x_423 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_423, 0, x_421); +x_424 = lean::box(0); +x_425 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_425, 0, x_423); +lean::cnstr_set(x_425, 1, x_424); +x_426 = lean::box(0); +x_427 = lean::cnstr_get(x_418, 2); +lean::inc(x_427); +lean::dec(x_418); +x_430 = l_lean_expander_mk__simple__binder___closed__1; +x_431 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_431, 0, x_430); +lean::cnstr_set(x_431, 1, x_427); +x_432 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_432, 0, x_431); +x_433 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_433, 0, x_425); +lean::cnstr_set(x_433, 1, x_432); +lean::cnstr_set(x_433, 2, x_426); +x_434 = 3; +x_435 = lean::box(x_434); +x_436 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_436, 0, x_435); +lean::cnstr_set(x_436, 1, x_433); +x_2 = x_436; goto lbl_3; } else { -obj* x_507; obj* x_510; obj* x_511; obj* x_512; obj* x_513; obj* x_514; obj* x_515; uint8 x_516; obj* x_517; obj* x_518; -x_507 = lean::cnstr_get(x_485, 0); -lean::inc(x_507); -lean::dec(x_485); -x_510 = lean::box(0); -x_511 = l_lean_expander_mk__simple__binder___closed__1; -x_512 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_512, 0, x_511); -lean::cnstr_set(x_512, 1, x_507); -x_513 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_513, 0, x_512); -x_514 = l_lean_expander_expand__bracketed__binder___main___closed__12; -x_515 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_515, 0, x_514); -lean::cnstr_set(x_515, 1, x_513); -lean::cnstr_set(x_515, 2, x_510); -x_516 = 3; -x_517 = lean::box(x_516); -x_518 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_518, 0, x_517); -lean::cnstr_set(x_518, 1, x_515); -x_2 = x_518; +obj* x_437; obj* x_440; obj* x_441; obj* x_442; obj* x_443; obj* x_444; obj* x_445; uint8 x_446; obj* x_447; obj* x_448; +x_437 = lean::cnstr_get(x_415, 0); +lean::inc(x_437); +lean::dec(x_415); +x_440 = lean::box(0); +x_441 = l_lean_expander_mk__simple__binder___closed__1; +x_442 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_442, 0, x_441); +lean::cnstr_set(x_442, 1, x_437); +x_443 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_443, 0, x_442); +x_444 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_445 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_445, 0, x_444); +lean::cnstr_set(x_445, 1, x_443); +lean::cnstr_set(x_445, 2, x_440); +x_446 = 3; +x_447 = lean::box(x_446); +x_448 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_448, 0, x_447); +lean::cnstr_set(x_448, 1, x_445); +x_2 = x_448; goto lbl_3; } } default: { -obj* x_519; obj* x_522; obj* x_523; obj* x_526; obj* x_527; obj* x_528; obj* x_530; -x_519 = lean::cnstr_get(x_0, 0); -lean::inc(x_519); +obj* x_449; obj* x_452; obj* x_453; obj* x_456; obj* x_457; obj* x_458; obj* x_460; +x_449 = lean::cnstr_get(x_0, 0); +lean::inc(x_449); lean::dec(x_0); -x_522 = l_lean_parser_term_anonymous__constructor_has__view; -x_523 = lean::cnstr_get(x_522, 1); -lean::inc(x_523); -lean::dec(x_522); -x_526 = lean::apply_1(x_523, x_519); -x_527 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_527, 0, x_526); -x_528 = l_lean_expander_expand__bracketed__binder___main___closed__13; +x_452 = l_lean_parser_term_anonymous__constructor_has__view; +x_453 = lean::cnstr_get(x_452, 1); +lean::inc(x_453); +lean::dec(x_452); +x_456 = lean::apply_1(x_453, x_449); +x_457 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_457, 0, x_456); +x_458 = l_lean_expander_expand__bracketed__binder___main___closed__9; lean::inc(x_1); -x_530 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_527, x_528, x_1); -lean::dec(x_527); -if (lean::obj_tag(x_530) == 0) +x_460 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_457, x_458, x_1); +lean::dec(x_457); +if (lean::obj_tag(x_460) == 0) { -obj* x_533; obj* x_535; obj* x_536; +obj* x_463; obj* x_465; obj* x_466; lean::dec(x_1); -x_533 = lean::cnstr_get(x_530, 0); -if (lean::is_exclusive(x_530)) { - x_535 = x_530; +x_463 = lean::cnstr_get(x_460, 0); +if (lean::is_exclusive(x_460)) { + x_465 = x_460; } else { - lean::inc(x_533); - lean::dec(x_530); - x_535 = lean::box(0); + lean::inc(x_463); + lean::dec(x_460); + x_465 = lean::box(0); } -if (lean::is_scalar(x_535)) { - x_536 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_465)) { + x_466 = lean::alloc_cnstr(0, 1, 0); } else { - x_536 = x_535; + x_466 = x_465; } -lean::cnstr_set(x_536, 0, x_533); -return x_536; +lean::cnstr_set(x_466, 0, x_463); +return x_466; } else { -obj* x_537; -x_537 = lean::cnstr_get(x_530, 0); -lean::inc(x_537); -lean::dec(x_530); -x_2 = x_537; +obj* x_467; +x_467 = lean::cnstr_get(x_460, 0); +lean::inc(x_467); +lean::dec(x_460); +x_2 = x_467; goto lbl_3; } } @@ -6336,176 +6198,162 @@ goto lbl_3; } lbl_3: { -obj* x_540; obj* x_542; obj* x_545; obj* x_547; obj* x_548; -x_540 = lean::cnstr_get(x_2, 0); -lean::inc(x_540); -x_542 = lean::cnstr_get(x_2, 1); -lean::inc(x_542); +obj* x_470; obj* x_472; obj* x_475; obj* x_477; obj* x_478; +x_470 = lean::cnstr_get(x_2, 0); +lean::inc(x_470); +x_472 = lean::cnstr_get(x_2, 1); +lean::inc(x_472); lean::dec(x_2); -x_545 = lean::cnstr_get(x_542, 1); -lean::inc(x_545); -x_547 = l_lean_expander_get__opt__type___main(x_545); -x_548 = lean::cnstr_get(x_542, 2); -lean::inc(x_548); -if (lean::obj_tag(x_548) == 0) +x_475 = lean::cnstr_get(x_472, 1); +lean::inc(x_475); +x_477 = l_lean_expander_get__opt__type___main(x_475); +x_478 = lean::cnstr_get(x_472, 2); +lean::inc(x_478); +if (lean::obj_tag(x_478) == 0) { -obj* x_551; uint8 x_553; obj* x_554; obj* x_557; +obj* x_482; uint8 x_485; obj* x_486; obj* x_487; lean::dec(x_1); -x_551 = lean::cnstr_get(x_542, 0); -lean::inc(x_551); -x_553 = lean::unbox(x_540); -x_554 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_553, x_542, x_545, x_547, x_551); -lean::dec(x_545); -lean::dec(x_542); -x_557 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_557, 0, x_554); -return x_557; +lean::dec(x_475); +x_482 = lean::cnstr_get(x_472, 0); +lean::inc(x_482); +lean::dec(x_472); +x_485 = lean::unbox(x_470); +x_486 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_485, x_477, x_482); +x_487 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_487, 0, x_486); +return x_487; } else { -obj* x_558; -x_558 = lean::cnstr_get(x_548, 0); -lean::inc(x_558); -lean::dec(x_548); -if (lean::obj_tag(x_558) == 0) +obj* x_488; +x_488 = lean::cnstr_get(x_478, 0); +lean::inc(x_488); +lean::dec(x_478); +if (lean::obj_tag(x_488) == 0) { -obj* x_562; obj* x_565; obj* x_567; obj* x_569; obj* x_572; obj* x_573; obj* x_575; obj* x_576; obj* x_578; uint8 x_579; obj* x_580; obj* x_588; +obj* x_493; obj* x_496; obj* x_499; obj* x_500; obj* x_501; obj* x_502; obj* x_503; obj* x_504; uint8 x_507; obj* x_508; obj* x_509; lean::dec(x_1); -x_562 = lean::cnstr_get(x_558, 0); -lean::inc(x_562); -lean::dec(x_558); -x_565 = lean::cnstr_get(x_562, 1); -lean::inc(x_565); -x_567 = lean::box(0); -lean::inc(x_565); -x_569 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_569, 0, x_565); -lean::cnstr_set(x_569, 1, x_567); -lean::inc(x_569); +lean::dec(x_475); +x_493 = lean::cnstr_get(x_488, 0); +lean::inc(x_493); +lean::dec(x_488); +x_496 = lean::cnstr_get(x_493, 1); +lean::inc(x_496); +lean::dec(x_493); +x_499 = lean::box(0); +x_500 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_500, 0, x_496); +lean::cnstr_set(x_500, 1, x_499); +x_501 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_501, 0, x_477); +lean::cnstr_set(x_501, 1, x_500); +x_502 = l_lean_expander_expand__bracketed__binder___main___closed__2; +x_503 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_502, x_501); +x_504 = lean::cnstr_get(x_472, 0); +lean::inc(x_504); +lean::dec(x_472); +x_507 = lean::unbox(x_470); +x_508 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_507, x_503, x_504); +x_509 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_509, 0, x_508); +return x_509; +} +else +{ +lean::dec(x_477); +if (lean::obj_tag(x_475) == 0) +{ +obj* x_512; obj* x_515; obj* x_518; obj* x_519; obj* x_520; obj* x_521; obj* x_522; uint8 x_525; obj* x_526; obj* x_527; +lean::dec(x_1); +x_512 = lean::cnstr_get(x_488, 0); +lean::inc(x_512); +lean::dec(x_488); +x_515 = lean::cnstr_get(x_512, 1); +lean::inc(x_515); +lean::dec(x_512); +x_518 = lean::box(0); +x_519 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_519, 0, x_515); +lean::cnstr_set(x_519, 1, x_518); +x_520 = l_lean_expander_expand__bracketed__binder___main___closed__3; +x_521 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_520, x_519); +x_522 = lean::cnstr_get(x_472, 0); +lean::inc(x_522); +lean::dec(x_472); +x_525 = lean::unbox(x_470); +x_526 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_525, x_521, x_522); +x_527 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_527, 0, x_526); +return x_527; +} +else +{ +obj* x_528; obj* x_529; obj* x_530; obj* x_533; obj* x_534; obj* x_535; obj* x_536; +if (lean::is_exclusive(x_475)) { + lean::cnstr_release(x_475, 0); + x_528 = x_475; +} else { + lean::dec(x_475); + x_528 = lean::box(0); +} +x_529 = l_lean_parser_term_binder__default_has__view; +x_530 = lean::cnstr_get(x_529, 1); +lean::inc(x_530); +lean::dec(x_529); +x_533 = lean::apply_1(x_530, x_488); +if (lean::is_scalar(x_528)) { + x_534 = lean::alloc_cnstr(1, 1, 0); +} else { + x_534 = x_528; +} +lean::cnstr_set(x_534, 0, x_533); +x_535 = l_lean_expander_expand__bracketed__binder___main___closed__4; +x_536 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_534, x_535, x_1); +lean::dec(x_534); +if (lean::obj_tag(x_536) == 0) +{ +obj* x_540; obj* x_542; obj* x_543; +lean::dec(x_472); +lean::dec(x_470); +x_540 = lean::cnstr_get(x_536, 0); +if (lean::is_exclusive(x_536)) { + x_542 = x_536; +} else { + lean::inc(x_540); + lean::dec(x_536); + x_542 = lean::box(0); +} +if (lean::is_scalar(x_542)) { + x_543 = lean::alloc_cnstr(0, 1, 0); +} else { + x_543 = x_542; +} +lean::cnstr_set(x_543, 0, x_540); +return x_543; +} +else +{ +obj* x_544; obj* x_546; obj* x_547; uint8 x_550; obj* x_551; obj* x_552; +x_544 = lean::cnstr_get(x_536, 0); +if (lean::is_exclusive(x_536)) { + x_546 = x_536; +} else { + lean::inc(x_544); + lean::dec(x_536); + x_546 = lean::box(0); +} +x_547 = lean::cnstr_get(x_472, 0); lean::inc(x_547); -x_572 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_572, 0, x_547); -lean::cnstr_set(x_572, 1, x_569); -x_573 = l_lean_expander_expand__bracketed__binder___main___closed__2; -lean::inc(x_572); -x_575 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_573, x_572); -x_576 = lean::cnstr_get(x_542, 0); -lean::inc(x_576); -x_578 = l_lean_expander_expand__bracketed__binder___main___closed__3; -x_579 = lean::unbox(x_540); -x_580 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_579, x_542, x_545, x_547, x_562, x_578, x_573, x_565, x_567, x_569, x_572, x_575, x_576); -lean::dec(x_572); -lean::dec(x_569); -lean::dec(x_565); -lean::dec(x_562); -lean::dec(x_547); -lean::dec(x_545); -lean::dec(x_542); -x_588 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_588, 0, x_580); -return x_588; -} -else -{ -lean::dec(x_547); -if (lean::obj_tag(x_545) == 0) -{ -obj* x_591; obj* x_594; obj* x_596; obj* x_598; obj* x_599; obj* x_601; obj* x_602; obj* x_605; uint8 x_606; obj* x_607; obj* x_611; -lean::dec(x_1); -x_591 = lean::cnstr_get(x_558, 0); -lean::inc(x_591); -lean::dec(x_558); -x_594 = lean::cnstr_get(x_591, 1); -lean::inc(x_594); -x_596 = lean::box(0); -lean::inc(x_594); -x_598 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_598, 0, x_594); -lean::cnstr_set(x_598, 1, x_596); -x_599 = l_lean_expander_expand__bracketed__binder___main___closed__4; -lean::inc(x_598); -x_601 = l_list_foldl___main___at_lean_parser_term_mk__app___spec__1(x_599, x_598); -x_602 = lean::cnstr_get(x_542, 0); -lean::inc(x_602); -lean::dec(x_542); -x_605 = l_lean_expander_expand__bracketed__binder___main___closed__5; -x_606 = lean::unbox(x_540); -x_607 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_606, x_591, x_605, x_599, x_594, x_596, x_598, x_601, x_602); -lean::dec(x_598); -lean::dec(x_594); -lean::dec(x_591); -x_611 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_611, 0, x_607); -return x_611; -} -else -{ -obj* x_612; obj* x_613; obj* x_614; obj* x_617; obj* x_618; obj* x_619; obj* x_620; -if (lean::is_exclusive(x_545)) { - lean::cnstr_release(x_545, 0); - x_612 = x_545; +lean::dec(x_472); +x_550 = lean::unbox(x_470); +x_551 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__5(x_550, x_544, x_547); +if (lean::is_scalar(x_546)) { + x_552 = lean::alloc_cnstr(1, 1, 0); } else { - lean::dec(x_545); - x_612 = lean::box(0); + x_552 = x_546; } -x_613 = l_lean_parser_term_binder__default_has__view; -x_614 = lean::cnstr_get(x_613, 1); -lean::inc(x_614); -lean::dec(x_613); -x_617 = lean::apply_1(x_614, x_558); -if (lean::is_scalar(x_612)) { - x_618 = lean::alloc_cnstr(1, 1, 0); -} else { - x_618 = x_612; -} -lean::cnstr_set(x_618, 0, x_617); -x_619 = l_lean_expander_expand__bracketed__binder___main___closed__6; -x_620 = l_lean_expander_error___at_lean_expander_mk__notation__transformer___spec__1___rarg(x_618, x_619, x_1); -lean::dec(x_618); -if (lean::obj_tag(x_620) == 0) -{ -obj* x_624; obj* x_626; obj* x_627; -lean::dec(x_540); -lean::dec(x_542); -x_624 = lean::cnstr_get(x_620, 0); -if (lean::is_exclusive(x_620)) { - x_626 = x_620; -} else { - lean::inc(x_624); - lean::dec(x_620); - x_626 = lean::box(0); -} -if (lean::is_scalar(x_626)) { - x_627 = lean::alloc_cnstr(0, 1, 0); -} else { - x_627 = x_626; -} -lean::cnstr_set(x_627, 0, x_624); -return x_627; -} -else -{ -obj* x_628; obj* x_630; obj* x_631; uint8 x_634; obj* x_635; obj* x_636; -x_628 = lean::cnstr_get(x_620, 0); -if (lean::is_exclusive(x_620)) { - x_630 = x_620; -} else { - lean::inc(x_628); - lean::dec(x_620); - x_630 = lean::box(0); -} -x_631 = lean::cnstr_get(x_542, 0); -lean::inc(x_631); -lean::dec(x_542); -x_634 = lean::unbox(x_540); -x_635 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__5(x_634, x_628, x_631); -if (lean::is_scalar(x_630)) { - x_636 = lean::alloc_cnstr(1, 1, 0); -} else { - x_636 = x_630; -} -lean::cnstr_set(x_636, 0, x_635); -return x_636; +lean::cnstr_set(x_552, 0, x_551); +return x_552; } } } @@ -6513,58 +6361,31 @@ return x_636; } } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__1(x_0, x_1, x_2); -lean::dec(x_0); -return x_3; +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_3, x_1, x_2); +return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -uint8 x_5; obj* x_6; -x_5 = lean::unbox(x_0); -x_6 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__2(x_5, x_1, x_2, x_3, x_4); -lean::dec(x_1); -lean::dec(x_2); -return x_6; +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_3, x_1, x_2); +return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -uint8 x_13; obj* x_14; -x_13 = lean::unbox(x_0); -x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__3(x_13, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -lean::dec(x_10); -return x_14; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4___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, obj* x_8) { -_start: -{ -uint8 x_9; obj* x_10; -x_9 = lean::unbox(x_0); -x_10 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_9, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -return x_10; +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__4(x_3, x_1, x_2); +return x_4; } } obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -6576,209 +6397,33 @@ x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___sp return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_4; -x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__6(x_0, x_1, x_2, x_3); -lean::dec(x_0); -lean::dec(x_1); +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_3, x_1, x_2); return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_12; -x_12 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__7(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -return x_12; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8___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: -{ -obj* x_8; -x_8 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__8(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -return x_8; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; -x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__10(x_0, x_1, x_2, x_3); -lean::dec(x_0); -lean::dec(x_1); +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_3, x_1, x_2); return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { +obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_12; -x_12 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__11(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -return x_12; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12___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: -{ -obj* x_8; -x_8 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__12(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -return x_8; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; -x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__14(x_0, x_1, x_2, x_3); -lean::dec(x_0); -lean::dec(x_1); +uint8 x_3; obj* x_4; +x_3 = lean::unbox(x_0); +x_4 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_3, x_1, x_2); return x_4; } } -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11) { -_start: -{ -obj* x_12; -x_12 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__15(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -return x_12; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16___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: -{ -obj* x_8; -x_8 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__16(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -return x_8; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18___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, obj* x_8, obj* x_9) { -_start: -{ -obj* x_10; -x_10 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__18(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -return x_10; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19___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, obj* x_8, obj* x_9) { -_start: -{ -obj* x_10; -x_10 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__19(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -return x_10; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -uint8 x_5; obj* x_6; -x_5 = lean::unbox(x_0); -x_6 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__20(x_5, x_1, x_2, x_3, x_4); -lean::dec(x_1); -lean::dec(x_2); -return x_6; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { -_start: -{ -uint8 x_13; obj* x_14; -x_13 = lean::unbox(x_0); -x_14 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__21(x_13, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -lean::dec(x_10); -return x_14; -} -} -obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22___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, obj* x_8) { -_start: -{ -uint8 x_9; obj* x_10; -x_9 = lean::unbox(x_0); -x_10 = l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__22(x_9, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -return x_10; -} -} obj* l_list_map___main___at_lean_expander_expand__bracketed__binder___main___spec__23___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { @@ -6796,115 +6441,115 @@ x_2 = l_lean_expander_expand__bracketed__binder___main(x_0, x_1); return x_2; } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_9) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_8); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_13; obj* x_14; obj* x_17; obj* x_18; uint8 x_19; obj* x_20; obj* x_21; obj* x_22; -x_13 = lean::cnstr_get(x_9, 0); -x_14 = lean::cnstr_get(x_9, 1); -lean::inc(x_8); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_17 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -x_18 = l_lean_expander_binder__ident__to__ident___main(x_13); -x_19 = 0; -x_20 = l_lean_expander_mk__simple__binder(x_18, x_19, x_8); -x_21 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_21, 0, x_20); -x_22 = lean::apply_2(x_0, x_21, x_17); -return x_22; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_4) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_3); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_8; obj* x_9; obj* x_12; obj* x_13; uint8 x_14; obj* x_15; obj* x_16; obj* x_17; -x_8 = lean::cnstr_get(x_4, 0); -x_9 = lean::cnstr_get(x_4, 1); -lean::inc(x_3); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_12 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_1, x_2, x_3, x_9); -x_13 = l_lean_expander_binder__ident__to__ident___main(x_8); -x_14 = 0; -x_15 = l_lean_expander_mk__simple__binder(x_13, x_14, x_3); -x_16 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_16, 0, x_15); -x_17 = lean::apply_2(x_0, x_16, x_12); -return x_17; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_9) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_8); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_13; obj* x_14; obj* x_17; obj* x_18; uint8 x_19; obj* x_20; obj* x_21; obj* x_22; -x_13 = lean::cnstr_get(x_9, 0); -x_14 = lean::cnstr_get(x_9, 1); -lean::inc(x_8); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_17 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -x_18 = l_lean_expander_binder__ident__to__ident___main(x_13); -x_19 = 0; -x_20 = l_lean_expander_mk__simple__binder(x_18, x_19, x_8); -x_21 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_21, 0, x_20); -x_22 = lean::apply_2(x_0, x_21, x_17); -return x_22; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_4) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_3); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_8; obj* x_9; obj* x_12; obj* x_13; uint8 x_14; obj* x_15; obj* x_16; obj* x_17; -x_8 = lean::cnstr_get(x_4, 0); -x_9 = lean::cnstr_get(x_4, 1); -lean::inc(x_3); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_12 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_1, x_2, x_3, x_9); -x_13 = l_lean_expander_binder__ident__to__ident___main(x_8); -x_14 = 0; -x_15 = l_lean_expander_mk__simple__binder(x_13, x_14, x_3); -x_16 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_16, 0, x_15); -x_17 = lean::apply_2(x_0, x_16, x_12); -return x_17; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } @@ -7269,113 +6914,62 @@ return x_92; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_9) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_8); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_13; obj* x_14; obj* x_17; obj* x_18; uint8 x_19; obj* x_20; obj* x_21; obj* x_22; -x_13 = lean::cnstr_get(x_9, 0); -x_14 = lean::cnstr_get(x_9, 1); -lean::inc(x_8); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_17 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -x_18 = l_lean_expander_binder__ident__to__ident___main(x_13); -x_19 = 0; -x_20 = l_lean_expander_mk__simple__binder(x_18, x_19, x_8); -x_21 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_21, 0, x_20); -x_22 = lean::apply_2(x_0, x_21, x_17); -return x_22; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_4) == 0) +if (lean::obj_tag(x_3) == 0) { -lean::dec(x_3); lean::dec(x_0); +lean::dec(x_2); lean::inc(x_1); return x_1; } else { -obj* x_8; obj* x_9; obj* x_12; obj* x_13; uint8 x_14; obj* x_15; obj* x_16; obj* x_17; -x_8 = lean::cnstr_get(x_4, 0); -x_9 = lean::cnstr_get(x_4, 1); -lean::inc(x_3); +obj* x_7; obj* x_8; obj* x_11; obj* x_12; uint8 x_13; obj* x_14; obj* x_15; obj* x_16; +x_7 = lean::cnstr_get(x_3, 0); +x_8 = lean::cnstr_get(x_3, 1); +lean::inc(x_2); lean::inc(x_0); -x_12 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_1, x_2, x_3, x_9); -x_13 = l_lean_expander_binder__ident__to__ident___main(x_8); -x_14 = 0; -x_15 = l_lean_expander_mk__simple__binder(x_13, x_14, x_3); -x_16 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_16, 0, x_15); -x_17 = lean::apply_2(x_0, x_16, x_12); -return x_17; +x_11 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_1, x_2, x_8); +x_12 = l_lean_expander_binder__ident__to__ident___main(x_7); +x_13 = 0; +x_14 = l_lean_expander_mk__simple__binder(x_12, x_13, x_2); +x_15 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_15, 0, x_14); +x_16 = lean::apply_2(x_0, x_15, x_11); +return x_16; } } } -obj* _init_l_lean_expander_expand__binders___closed__1() { -_start: -{ -obj* x_0; obj* x_1; -x_0 = l_lean_parser_term_hole_has__view; -x_1 = lean::cnstr_get(x_0, 1); -lean::inc(x_1); -lean::dec(x_0); -return x_1; -} -} -obj* _init_l_lean_expander_expand__binders___closed__2() { -_start: -{ -obj* x_0; obj* x_1; -x_0 = lean::mk_string("_"); -x_1 = l_string_trim(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* _init_l_lean_expander_expand__binders___closed__3() { -_start: -{ -obj* x_0; obj* x_1; obj* x_2; obj* x_4; -x_0 = lean::box(0); -x_1 = lean::mk_string("_"); -x_2 = l_string_trim(x_1); -lean::dec(x_1); -x_4 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_2); -return x_4; -} -} -obj* _init_l_lean_expander_expand__binders___closed__4() { -_start: -{ -obj* x_0; obj* x_1; obj* x_2; obj* x_4; obj* x_5; -x_0 = lean::box(0); -x_1 = lean::mk_string("_"); -x_2 = l_string_trim(x_1); -lean::dec(x_1); -x_4 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_2); -x_5 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_5, 0, x_4); -return x_5; -} -} obj* l_lean_expander_expand__binders(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { @@ -7415,22 +7009,22 @@ if (lean::is_exclusive(x_7)) { } if (lean::obj_tag(x_16) == 0) { -obj* x_19; obj* x_22; obj* x_24; obj* x_28; obj* x_29; +obj* x_19; obj* x_22; obj* x_25; obj* x_28; obj* x_29; x_19 = lean::cnstr_get(x_16, 0); lean::inc(x_19); lean::dec(x_16); x_22 = lean::cnstr_get(x_19, 1); lean::inc(x_22); -x_24 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_2, x_19, x_22, x_10); -lean::dec(x_10); lean::dec(x_19); +x_25 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_2, x_22, x_10); +lean::dec(x_10); lean::dec(x_2); if (lean::is_scalar(x_18)) { x_28 = lean::alloc_cnstr(1, 1, 0); } else { x_28 = x_18; } -lean::cnstr_set(x_28, 0, x_24); +lean::cnstr_set(x_28, 0, x_25); x_29 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_29, 0, x_28); return x_29; @@ -7447,226 +7041,211 @@ goto lbl_14; } lbl_14: { -obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_43; obj* x_44; +obj* x_34; obj* x_35; obj* x_38; obj* x_39; lean::dec(x_13); -x_34 = lean::box(0); -x_35 = l_lean_expander_expand__binders___closed__1; -x_36 = l_lean_expander_expand__binders___closed__2; -x_37 = l_lean_expander_expand__binders___closed__3; -x_38 = l_lean_expander_expand__binders___closed__4; -x_39 = l_lean_expander_get__opt__type___main___closed__1; -x_40 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_2, x_35, x_34, x_36, x_37, x_38, x_38, x_39, x_10); +x_34 = l_lean_expander_get__opt__type___main___closed__1; +x_35 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_2, x_34, x_10); lean::dec(x_10); lean::dec(x_2); -x_43 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_43, 0, x_40); -x_44 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_44, 0, x_43); -return x_44; +x_38 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_38, 0, x_35); +x_39 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_39, 0, x_38); +return x_39; } } else { -obj* x_45; -x_45 = lean::cnstr_get(x_7, 0); -lean::inc(x_45); -if (lean::obj_tag(x_45) == 0) +obj* x_40; +x_40 = lean::cnstr_get(x_7, 0); +lean::inc(x_40); +if (lean::obj_tag(x_40) == 0) { -obj* x_48; obj* x_51; +obj* x_43; obj* x_46; lean::dec(x_3); -x_48 = lean::cnstr_get(x_4, 0); -lean::inc(x_48); +x_43 = lean::cnstr_get(x_4, 0); +lean::inc(x_43); lean::dec(x_4); if (lean::obj_tag(x_7) == 0) { -obj* x_54; -lean::dec(x_45); -x_54 = lean::box(0); -x_51 = x_54; -goto lbl_52; +obj* x_49; +lean::dec(x_40); +x_49 = lean::box(0); +x_46 = x_49; +goto lbl_47; } else { -obj* x_55; +obj* x_50; if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - x_55 = x_7; + x_50 = x_7; } else { lean::dec(x_7); - x_55 = lean::box(0); + x_50 = lean::box(0); } -if (lean::obj_tag(x_45) == 0) +if (lean::obj_tag(x_40) == 0) { -obj* x_56; obj* x_59; obj* x_61; obj* x_65; obj* x_66; -x_56 = lean::cnstr_get(x_45, 0); -lean::inc(x_56); -lean::dec(x_45); -x_59 = lean::cnstr_get(x_56, 1); -lean::inc(x_59); -x_61 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_2, x_56, x_59, x_48); -lean::dec(x_48); -lean::dec(x_56); -lean::dec(x_2); -if (lean::is_scalar(x_55)) { - x_65 = lean::alloc_cnstr(1, 1, 0); -} else { - x_65 = x_55; -} -lean::cnstr_set(x_65, 0, x_61); -x_66 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_66, 0, x_65); -return x_66; -} -else -{ -obj* x_69; -lean::dec(x_55); -lean::dec(x_45); -x_69 = lean::box(0); -x_51 = x_69; -goto lbl_52; -} -} -lbl_52: -{ -obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_80; obj* x_81; +obj* x_51; obj* x_54; obj* x_57; obj* x_60; obj* x_61; +x_51 = lean::cnstr_get(x_40, 0); +lean::inc(x_51); +lean::dec(x_40); +x_54 = lean::cnstr_get(x_51, 1); +lean::inc(x_54); lean::dec(x_51); -x_71 = lean::box(0); -x_72 = l_lean_expander_expand__binders___closed__1; -x_73 = l_lean_expander_expand__binders___closed__2; -x_74 = l_lean_expander_expand__binders___closed__3; -x_75 = l_lean_expander_expand__binders___closed__4; -x_76 = l_lean_expander_get__opt__type___main___closed__1; -x_77 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_2, x_72, x_71, x_73, x_74, x_75, x_75, x_76, x_48); -lean::dec(x_48); +x_57 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_2, x_54, x_43); +lean::dec(x_43); lean::dec(x_2); -x_80 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_80, 0, x_77); -x_81 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_81, 0, x_80); -return x_81; +if (lean::is_scalar(x_50)) { + x_60 = lean::alloc_cnstr(1, 1, 0); +} else { + x_60 = x_50; +} +lean::cnstr_set(x_60, 0, x_57); +x_61 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_61, 0, x_60); +return x_61; +} +else +{ +obj* x_64; +lean::dec(x_50); +lean::dec(x_40); +x_64 = lean::box(0); +x_46 = x_64; +goto lbl_47; +} +} +lbl_47: +{ +obj* x_66; obj* x_67; obj* x_70; obj* x_71; +lean::dec(x_46); +x_66 = l_lean_expander_get__opt__type___main___closed__1; +x_67 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_2, x_66, x_43); +lean::dec(x_43); +lean::dec(x_2); +x_70 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_70, 0, x_67); +x_71 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_71, 0, x_70); +return x_71; } } else { -obj* x_82; obj* x_86; -x_82 = lean::cnstr_get(x_45, 0); -lean::inc(x_82); -lean::inc(x_82); +obj* x_72; obj* x_76; +x_72 = lean::cnstr_get(x_40, 0); +lean::inc(x_72); +lean::inc(x_72); lean::inc(x_0); -x_86 = l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6(x_0, x_2, x_82, x_3); -if (lean::obj_tag(x_86) == 0) +x_76 = l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6(x_0, x_2, x_72, x_3); +if (lean::obj_tag(x_76) == 0) { -obj* x_92; obj* x_94; obj* x_95; +obj* x_82; obj* x_84; obj* x_85; lean::dec(x_4); lean::dec(x_7); lean::dec(x_0); -lean::dec(x_45); -lean::dec(x_82); -x_92 = lean::cnstr_get(x_86, 0); -if (lean::is_exclusive(x_86)) { - x_94 = x_86; +lean::dec(x_72); +lean::dec(x_40); +x_82 = lean::cnstr_get(x_76, 0); +if (lean::is_exclusive(x_76)) { + x_84 = x_76; } else { - lean::inc(x_92); - lean::dec(x_86); - x_94 = lean::box(0); + lean::inc(x_82); + lean::dec(x_76); + x_84 = lean::box(0); } -if (lean::is_scalar(x_94)) { - x_95 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_84)) { + x_85 = lean::alloc_cnstr(0, 1, 0); } else { - x_95 = x_94; + x_85 = x_84; } -lean::cnstr_set(x_95, 0, x_92); -return x_95; +lean::cnstr_set(x_85, 0, x_82); +return x_85; } else { -obj* x_96; obj* x_98; obj* x_99; obj* x_102; -x_96 = lean::cnstr_get(x_86, 0); -if (lean::is_exclusive(x_86)) { - lean::cnstr_set(x_86, 0, lean::box(0)); - x_98 = x_86; +obj* x_86; obj* x_88; obj* x_89; obj* x_92; +x_86 = lean::cnstr_get(x_76, 0); +if (lean::is_exclusive(x_76)) { + lean::cnstr_set(x_76, 0, lean::box(0)); + x_88 = x_76; } else { - lean::inc(x_96); - lean::dec(x_86); - x_98 = lean::box(0); + lean::inc(x_86); + lean::dec(x_76); + x_88 = lean::box(0); } -x_99 = lean::cnstr_get(x_4, 0); -lean::inc(x_99); +x_89 = lean::cnstr_get(x_4, 0); +lean::inc(x_89); lean::dec(x_4); if (lean::obj_tag(x_7) == 0) { -obj* x_106; -lean::dec(x_45); -lean::dec(x_82); -x_106 = lean::box(0); -x_102 = x_106; -goto lbl_103; +obj* x_96; +lean::dec(x_72); +lean::dec(x_40); +x_96 = lean::box(0); +x_92 = x_96; +goto lbl_93; } else { -obj* x_107; +obj* x_97; if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - x_107 = x_7; + x_97 = x_7; } else { lean::dec(x_7); - x_107 = lean::box(0); + x_97 = lean::box(0); } -if (lean::obj_tag(x_45) == 0) +if (lean::obj_tag(x_40) == 0) { -obj* x_110; obj* x_112; obj* x_116; obj* x_117; -lean::dec(x_45); -lean::dec(x_98); -x_110 = lean::cnstr_get(x_82, 1); -lean::inc(x_110); -x_112 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_96, x_82, x_110, x_99); -lean::dec(x_99); -lean::dec(x_82); -lean::dec(x_96); -if (lean::is_scalar(x_107)) { - x_116 = lean::alloc_cnstr(1, 1, 0); +obj* x_100; obj* x_103; obj* x_106; obj* x_107; +lean::dec(x_40); +lean::dec(x_88); +x_100 = lean::cnstr_get(x_72, 1); +lean::inc(x_100); +lean::dec(x_72); +x_103 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_86, x_100, x_89); +lean::dec(x_89); +lean::dec(x_86); +if (lean::is_scalar(x_97)) { + x_106 = lean::alloc_cnstr(1, 1, 0); } else { - x_116 = x_107; + x_106 = x_97; } -lean::cnstr_set(x_116, 0, x_112); +lean::cnstr_set(x_106, 0, x_103); +x_107 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_107, 0, x_106); +return x_107; +} +else +{ +obj* x_111; +lean::dec(x_72); +lean::dec(x_40); +lean::dec(x_97); +x_111 = lean::box(0); +x_92 = x_111; +goto lbl_93; +} +} +lbl_93: +{ +obj* x_113; obj* x_114; obj* x_117; obj* x_118; +lean::dec(x_92); +x_113 = l_lean_expander_get__opt__type___main___closed__1; +x_114 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_86, x_113, x_89); +lean::dec(x_89); +lean::dec(x_86); x_117 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_117, 0, x_116); -return x_117; -} -else -{ -obj* x_121; -lean::dec(x_45); -lean::dec(x_82); -lean::dec(x_107); -x_121 = lean::box(0); -x_102 = x_121; -goto lbl_103; -} -} -lbl_103: -{ -obj* x_123; obj* x_124; obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_132; obj* x_133; -lean::dec(x_102); -x_123 = lean::box(0); -x_124 = l_lean_expander_expand__binders___closed__1; -x_125 = l_lean_expander_expand__binders___closed__2; -x_126 = l_lean_expander_expand__binders___closed__3; -x_127 = l_lean_expander_expand__binders___closed__4; -x_128 = l_lean_expander_get__opt__type___main___closed__1; -x_129 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_96, x_124, x_123, x_125, x_126, x_127, x_127, x_128, x_99); -lean::dec(x_99); -lean::dec(x_96); -x_132 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_132, 0, x_129); -if (lean::is_scalar(x_98)) { - x_133 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_117, 0, x_114); +if (lean::is_scalar(x_88)) { + x_118 = lean::alloc_cnstr(1, 1, 0); } else { - x_133 = x_98; + x_118 = x_88; } -lean::cnstr_set(x_133, 0, x_132); -return x_133; +lean::cnstr_set(x_118, 0, x_117); +return x_118; } } } @@ -7674,68 +7253,54 @@ return x_133; } else { -obj* x_138; +obj* x_123; lean::dec(x_1); lean::dec(x_3); lean::dec(x_0); lean::dec(x_2); -x_138 = l_lean_expander_no__expansion___closed__1; -return x_138; +x_123 = l_lean_expander_no__expansion___closed__1; +return x_123; } } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1___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, obj* x_8, obj* x_9) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_10; -x_10 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__1(x_0, x_1, x_2, x_3); lean::dec(x_1); -lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_9); -return x_10; +return x_4; } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; -x_5 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_1, x_2, x_3, x_4); +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__2(x_0, x_1, x_2, x_3); lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_4); -return x_5; -} -} -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3___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, obj* x_8, obj* x_9) { -_start: -{ -obj* x_10; -x_10 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean::dec(x_1); -lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_9); -return x_10; +return x_4; } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; -x_5 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_1, x_2, x_3, x_4); +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__3(x_0, x_1, x_2, x_3); lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_4); -return x_5; +lean::dec(x_3); +return x_4; +} +} +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__4(x_0, x_1, x_2, x_3); +lean::dec(x_1); +lean::dec(x_3); +return x_4; } } obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -7747,31 +7312,24 @@ lean::dec(x_1); return x_3; } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7___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, obj* x_8, obj* x_9) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_10; -x_10 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__7(x_0, x_1, x_2, x_3); lean::dec(x_1); -lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_9); -return x_10; +return x_4; } } -obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_foldr___main___at_lean_expander_expand__binders___spec__8___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; -x_5 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_1, x_2, x_3, x_4); +obj* x_4; +x_4 = l_list_foldr___main___at_lean_expander_expand__binders___spec__8(x_0, x_1, x_2, x_3); lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_4); -return x_5; +lean::dec(x_3); +return x_4; } } obj* l_list_mmap___main___at_lean_expander_bracketed__binders_transform___spec__1(obj* x_0, obj* x_1) { @@ -7781,7 +7339,7 @@ if (lean::obj_tag(x_0) == 0) { obj* x_3; lean::dec(x_1); -x_3 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_3 = l_lean_expander_expand__bracketed__binder___main___closed__6; return x_3; } else @@ -10034,7 +9592,7 @@ if (lean::obj_tag(x_0) == 0) { obj* x_3; lean::dec(x_1); -x_3 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_3 = l_lean_expander_expand__bracketed__binder___main___closed__6; return x_3; } else @@ -10626,552 +10184,519 @@ lean::dec(x_1); return x_2; } } -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } -} -} -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(obj* x_0) { -_start: +else { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___rarg(x_0, x_1, x_2); -return x_3; +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); } -} -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(obj* x_0, obj* x_1) { -_start: +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___rarg), 3, 0); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) { -if (lean::obj_tag(x_3) == 0) -{ -return x_2; +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; } else { -obj* x_4; obj* x_6; obj* x_9; obj* x_11; obj* x_14; -x_4 = lean::cnstr_get(x_3, 0); -lean::inc(x_4); -x_6 = lean::cnstr_get(x_3, 1); -lean::inc(x_6); +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(x_0, x_1, x_2, x_3); +return x_4; +} +} +obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +obj* x_3; obj* x_5; obj* x_8; obj* x_10; obj* x_13; +x_3 = lean::cnstr_get(x_2, 0); +lean::inc(x_3); +x_5 = lean::cnstr_get(x_2, 1); +lean::inc(x_5); +lean::dec(x_2); +x_8 = lean::cnstr_get(x_3, 0); +lean::inc(x_8); +x_10 = lean::cnstr_get(x_3, 1); +lean::inc(x_10); lean::dec(x_3); -x_9 = lean::cnstr_get(x_4, 0); -lean::inc(x_9); -x_11 = lean::cnstr_get(x_4, 1); -lean::inc(x_11); -lean::dec(x_4); -x_14 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___rarg(x_2, x_9, x_11); -x_1 = x_0; -x_2 = x_14; -x_3 = x_6; +x_13 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(x_0, x_1, x_8, x_10); +x_1 = x_13; +x_2 = x_5; goto _start; } } @@ -11335,7 +10860,7 @@ lean::cnstr_set(x_76, 0, x_2); lean::cnstr_set(x_76, 1, x_75); x_77 = lean::box(0); x_78 = lean::box(0); -x_79 = l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(x_77, lean::box(0), x_78, x_76); +x_79 = l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(x_77, x_78, x_76); return x_79; } } @@ -11347,53 +10872,51 @@ x_0 = l_rbmap_from__list___at_lean_expander_builtin__transformers___spec__1; return x_0; } } -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__4(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); return x_4; } } +obj* l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_expander_builtin__transformers___spec__5(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_expander_builtin__transformers___spec__3(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbmap_insert___main___at_lean_expander_builtin__transformers___spec__2(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_list_foldl___main___at_lean_expander_builtin__transformers___spec__6(x_0, x_1, x_2); +lean::dec(x_0); +return x_3; +} +} obj* l_lean_expander_expander__config_has__lift(obj* x_0) { _start: { @@ -11513,7 +11036,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -12307,14 +11830,6 @@ lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed_ lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__8); l_lean_expander_expand__bracketed__binder___main___closed__9 = _init_l_lean_expander_expand__bracketed__binder___main___closed__9(); lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__9); - l_lean_expander_expand__bracketed__binder___main___closed__10 = _init_l_lean_expander_expand__bracketed__binder___main___closed__10(); -lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__10); - l_lean_expander_expand__bracketed__binder___main___closed__11 = _init_l_lean_expander_expand__bracketed__binder___main___closed__11(); -lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__11); - l_lean_expander_expand__bracketed__binder___main___closed__12 = _init_l_lean_expander_expand__bracketed__binder___main___closed__12(); -lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__12); - l_lean_expander_expand__bracketed__binder___main___closed__13 = _init_l_lean_expander_expand__bracketed__binder___main___closed__13(); -lean::mark_persistent(l_lean_expander_expand__bracketed__binder___main___closed__13); l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__1 = _init_l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__1(); lean::mark_persistent(l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__1); l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__2 = _init_l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__2(); @@ -12323,14 +11838,6 @@ lean::mark_persistent(l_list_mfoldr___main___at_lean_expander_expand__binders___ lean::mark_persistent(l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__3); l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__4 = _init_l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__4(); lean::mark_persistent(l_list_mfoldr___main___at_lean_expander_expand__binders___spec__6___closed__4); - l_lean_expander_expand__binders___closed__1 = _init_l_lean_expander_expand__binders___closed__1(); -lean::mark_persistent(l_lean_expander_expand__binders___closed__1); - l_lean_expander_expand__binders___closed__2 = _init_l_lean_expander_expand__binders___closed__2(); -lean::mark_persistent(l_lean_expander_expand__binders___closed__2); - l_lean_expander_expand__binders___closed__3 = _init_l_lean_expander_expand__binders___closed__3(); -lean::mark_persistent(l_lean_expander_expand__binders___closed__3); - l_lean_expander_expand__binders___closed__4 = _init_l_lean_expander_expand__binders___closed__4(); -lean::mark_persistent(l_lean_expander_expand__binders___closed__4); l_lean_expander_lambda_transform___closed__1 = _init_l_lean_expander_lambda_transform___closed__1(); lean::mark_persistent(l_lean_expander_lambda_transform___closed__1); l_lean_expander_arrow_transform___closed__1 = _init_l_lean_expander_arrow_transform___closed__1(); diff --git a/src/boot/init/lean/frontend.cpp b/src/boot/init/lean/frontend.cpp index c7b21968f5..f4a281e07a 100644 --- a/src/boot/init/lean/frontend.cpp +++ b/src/boot/init/lean/frontend.cpp @@ -15,7 +15,7 @@ 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*, obj*); +obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6(obj*, uint8, obj*, 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*); @@ -29,6 +29,7 @@ obj* l_lean_process__file___lambda__1___closed__3; obj* l_list_reverse___rarg(obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); obj* l_list_mmap_x_27___main___at_lean_run__frontend___spec__4(obj*, obj*, obj*); +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*); @@ -44,11 +45,11 @@ obj* l_lean_run__frontend(obj*, obj*, obj*, uint8, 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*, 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); -obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(obj*, uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(obj*, uint8, obj*, obj*, obj*, obj*, obj*, obj*); 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; @@ -74,7 +75,7 @@ obj* l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1; 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__eio___at_lean_run__frontend___spec__5___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, 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*); @@ -82,7 +83,6 @@ extern obj* l_lean_parser_command_builtin__command__parsers_lean_parser_has__tok 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*); -extern obj* l_lean_expander_expand__bracketed__binder___main___closed__8; 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*); @@ -536,646 +536,750 @@ 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* x_7, obj* x_8) { +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) { _start: { -obj* x_9; obj* x_10; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_21; obj* x_24; obj* x_27; obj* x_29; obj* x_32; obj* x_34; obj* x_37; obj* x_40; obj* x_43; obj* x_45; obj* x_48; obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_55; -x_12 = lean::cnstr_get(x_7, 1); +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; +x_10 = lean::cnstr_get(x_5, 1); +lean::inc(x_10); +x_12 = lean::cnstr_get(x_10, 1); lean::inc(x_12); x_14 = lean::cnstr_get(x_12, 1); lean::inc(x_14); -x_16 = lean::cnstr_get(x_14, 1); +x_16 = lean::cnstr_get(x_5, 0); lean::inc(x_16); -x_18 = lean::cnstr_get(x_7, 0); -lean::inc(x_18); -lean::dec(x_7); -x_21 = lean::cnstr_get(x_12, 0); -lean::inc(x_21); +lean::dec(x_5); +x_19 = lean::cnstr_get(x_10, 0); +lean::inc(x_19); +lean::dec(x_10); +x_22 = lean::cnstr_get(x_12, 0); +lean::inc(x_22); lean::dec(x_12); -x_24 = lean::cnstr_get(x_14, 0); -lean::inc(x_24); -lean::dec(x_14); -x_27 = lean::cnstr_get(x_16, 0); +x_25 = lean::cnstr_get(x_14, 0); +lean::inc(x_25); +x_27 = lean::cnstr_get(x_14, 1); lean::inc(x_27); -x_29 = lean::cnstr_get(x_16, 1); -lean::inc(x_29); -lean::dec(x_16); -x_32 = lean::cnstr_get(x_24, 0); +lean::dec(x_14); +x_30 = lean::cnstr_get(x_22, 0); +lean::inc(x_30); +x_32 = lean::cnstr_get(x_30, 0); lean::inc(x_32); -x_34 = lean::cnstr_get(x_32, 0); -lean::inc(x_34); +lean::dec(x_30); +x_35 = lean::cnstr_get(x_32, 0); +lean::inc(x_35); lean::dec(x_32); -x_37 = lean::cnstr_get(x_34, 0); -lean::inc(x_37); -lean::dec(x_34); -x_40 = lean::cnstr_get(x_37, 2); -lean::inc(x_40); -lean::dec(x_37); -x_43 = lean::cnstr_get(x_18, 0); +x_38 = lean::cnstr_get(x_35, 2); +lean::inc(x_38); +lean::dec(x_35); +x_41 = lean::cnstr_get(x_16, 0); +lean::inc(x_41); +x_43 = lean::cnstr_get(x_41, 1); lean::inc(x_43); -x_45 = lean::cnstr_get(x_43, 1); -lean::inc(x_45); -lean::dec(x_43); -x_48 = l_lean_file__map_to__position(x_40, x_45); -lean::inc(x_24); -x_50 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate___main___at_lean_run__frontend___spec__6___lambda__1___boxed), 3, 2); -lean::closure_set(x_50, 0, x_24); -lean::closure_set(x_50, 1, x_18); -x_51 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__1; -x_52 = l_lean_profileit__pure___rarg(x_51, x_48, x_50, x_8); -x_53 = lean::cnstr_get(x_52, 0); +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); +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_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); +x_53 = lean::cnstr_get(x_51, 1); lean::inc(x_53); -x_55 = lean::cnstr_get(x_53, 1); -lean::inc(x_55); -if (lean::obj_tag(x_55) == 0) +if (lean::obj_tag(x_53) == 0) { -obj* x_61; obj* x_64; obj* x_67; obj* x_71; obj* x_72; -lean::dec(x_21); -lean::dec(x_24); -lean::dec(x_48); -lean::dec(x_27); -x_61 = lean::cnstr_get(x_52, 1); -lean::inc(x_61); -lean::dec(x_52); -x_64 = lean::cnstr_get(x_53, 0); -lean::inc(x_64); +obj* x_59; obj* x_62; obj* x_65; obj* x_69; obj* x_70; +lean::dec(x_25); +lean::dec(x_19); +lean::dec(x_22); +lean::dec(x_46); +x_59 = lean::cnstr_get(x_50, 1); +lean::inc(x_59); +lean::dec(x_50); +x_62 = lean::cnstr_get(x_51, 0); +lean::inc(x_62); +lean::dec(x_51); +x_65 = lean::cnstr_get(x_53, 0); +lean::inc(x_65); lean::dec(x_53); -x_67 = lean::cnstr_get(x_55, 0); -lean::inc(x_67); -lean::dec(x_55); lean::inc(x_0); -x_71 = lean::apply_2(x_0, x_67, x_61); -x_72 = lean::cnstr_get(x_71, 0); -lean::inc(x_72); -if (lean::obj_tag(x_72) == 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) { -obj* x_76; obj* x_79; obj* x_81; obj* x_82; -lean::dec(x_29); -lean::dec(x_64); -x_76 = lean::cnstr_get(x_71, 1); -lean::inc(x_76); -lean::dec(x_71); -x_79 = lean::cnstr_get(x_72, 0); -if (lean::is_exclusive(x_72)) { - x_81 = x_72; +obj* x_74; obj* x_77; obj* x_79; obj* x_80; +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_79); - lean::dec(x_72); - x_81 = lean::box(0); + lean::inc(x_77); + lean::dec(x_70); + x_79 = lean::box(0); } -if (lean::is_scalar(x_81)) { - x_82 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_79)) { + x_80 = lean::alloc_cnstr(0, 1, 0); } else { - x_82 = x_81; + x_80 = x_79; } -lean::cnstr_set(x_82, 0, x_79); -x_9 = x_82; -x_10 = x_76; -goto lbl_11; +lean::cnstr_set(x_80, 0, x_77); +x_7 = x_80; +x_8 = x_74; +goto lbl_9; } else { -obj* x_84; obj* x_89; obj* x_90; -lean::dec(x_72); -x_84 = lean::cnstr_get(x_71, 1); -lean::inc(x_84); -lean::dec(x_71); +obj* x_82; obj* x_87; obj* x_88; +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_89 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__2(x_0, x_2, x_84); -x_90 = lean::cnstr_get(x_89, 0); -lean::inc(x_90); -if (lean::obj_tag(x_90) == 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) { -obj* x_94; obj* x_97; obj* x_99; obj* x_100; -lean::dec(x_29); -lean::dec(x_64); -x_94 = lean::cnstr_get(x_89, 1); -lean::inc(x_94); -lean::dec(x_89); -x_97 = lean::cnstr_get(x_90, 0); -if (lean::is_exclusive(x_90)) { - x_99 = x_90; +obj* x_92; obj* x_95; obj* x_97; obj* x_98; +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; } else { - lean::inc(x_97); - lean::dec(x_90); + lean::inc(x_95); + lean::dec(x_88); + x_97 = lean::box(0); +} +if (lean::is_scalar(x_97)) { + x_98 = lean::alloc_cnstr(0, 1, 0); +} else { + x_98 = x_97; +} +lean::cnstr_set(x_98, 0, x_95); +x_7 = x_98; +x_8 = x_92; +goto lbl_9; +} +else +{ +obj* x_99; +if (lean::is_exclusive(x_88)) { + lean::cnstr_release(x_88, 0); + x_99 = x_88; +} else { + lean::dec(x_88); x_99 = lean::box(0); } -if (lean::is_scalar(x_99)) { - x_100 = lean::alloc_cnstr(0, 1, 0); -} else { - x_100 = x_99; -} -lean::cnstr_set(x_100, 0, x_97); -x_9 = x_100; -x_10 = x_94; -goto lbl_11; -} -else -{ -obj* x_101; -if (lean::is_exclusive(x_90)) { - lean::cnstr_release(x_90, 0); - x_101 = x_90; -} else { - lean::dec(x_90); - x_101 = lean::box(0); -} if (x_1 == 0) { -obj* x_104; obj* x_108; obj* x_109; obj* x_110; -lean::dec(x_29); -lean::dec(x_64); -x_104 = lean::cnstr_get(x_89, 1); -lean::inc(x_104); -lean::dec(x_89); -lean::inc(x_4); -x_108 = l_list_reverse___rarg(x_4); -x_109 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_109, 0, x_108); -if (lean::is_scalar(x_101)) { - x_110 = lean::alloc_cnstr(1, 1, 0); -} else { - x_110 = x_101; -} -lean::cnstr_set(x_110, 0, x_109); -x_9 = x_110; -x_10 = x_104; -goto lbl_11; -} -else -{ -obj* x_111; obj* x_114; obj* x_115; obj* x_116; obj* x_117; -x_111 = lean::cnstr_get(x_89, 1); -lean::inc(x_111); -lean::dec(x_89); -x_114 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_114, 0, x_64); -lean::cnstr_set(x_114, 1, x_29); -x_115 = l_list_reverse___rarg(x_114); -x_116 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_116, 0, x_115); -if (lean::is_scalar(x_101)) { - x_117 = lean::alloc_cnstr(1, 1, 0); -} else { - x_117 = x_101; -} -lean::cnstr_set(x_117, 0, x_116); -x_9 = x_117; -x_10 = x_111; -goto lbl_11; -} -} -} -} -else -{ -obj* x_118; obj* x_121; obj* x_124; obj* x_127; obj* x_129; obj* x_131; obj* x_132; obj* x_134; obj* x_135; -x_118 = lean::cnstr_get(x_55, 0); -lean::inc(x_118); -lean::dec(x_55); -x_121 = lean::cnstr_get(x_52, 1); -lean::inc(x_121); -lean::dec(x_52); -x_124 = lean::cnstr_get(x_53, 0); -lean::inc(x_124); -lean::dec(x_53); -x_127 = lean::cnstr_get(x_118, 0); -x_129 = lean::cnstr_get(x_118, 1); -if (lean::is_exclusive(x_118)) { - lean::cnstr_set(x_118, 0, lean::box(0)); - lean::cnstr_set(x_118, 1, lean::box(0)); - x_131 = x_118; -} else { - lean::inc(x_127); - lean::inc(x_129); - lean::dec(x_118); - x_131 = lean::box(0); -} -x_132 = l_list_reverse___rarg(x_129); -lean::inc(x_0); -x_134 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__3(x_0, x_132, x_121); -x_135 = lean::cnstr_get(x_134, 0); -lean::inc(x_135); -if (lean::obj_tag(x_135) == 0) -{ -obj* x_145; obj* x_148; obj* x_150; obj* x_151; -lean::dec(x_21); -lean::dec(x_24); -lean::dec(x_48); +obj* x_102; obj* x_106; obj* x_107; obj* x_108; lean::dec(x_27); -lean::dec(x_29); -lean::dec(x_131); -lean::dec(x_124); -lean::dec(x_127); -x_145 = lean::cnstr_get(x_134, 1); -lean::inc(x_145); -lean::dec(x_134); -x_148 = lean::cnstr_get(x_135, 0); -if (lean::is_exclusive(x_135)) { - x_150 = x_135; +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); } else { - lean::inc(x_148); - lean::dec(x_135); + x_108 = x_99; +} +lean::cnstr_set(x_108, 0, x_107); +x_7 = x_108; +x_8 = x_102; +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); +} else { + x_115 = x_99; +} +lean::cnstr_set(x_115, 0, x_114); +x_7 = x_115; +x_8 = x_109; +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); +lean::dec(x_53); +x_119 = lean::cnstr_get(x_50, 1); +lean::inc(x_119); +lean::dec(x_50); +x_122 = lean::cnstr_get(x_51, 0); +lean::inc(x_122); +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; +} else { + lean::inc(x_125); + lean::inc(x_127); + lean::dec(x_116); + x_129 = lean::box(0); +} +x_130 = l_list_reverse___rarg(x_127); +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) +{ +obj* x_143; obj* x_146; obj* x_148; obj* x_149; +lean::dec(x_25); +lean::dec(x_27); +lean::dec(x_19); +lean::dec(x_22); +lean::dec(x_46); +lean::dec(x_122); +lean::dec(x_125); +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; +} else { + lean::inc(x_146); + lean::dec(x_133); + x_148 = lean::box(0); +} +if (lean::is_scalar(x_148)) { + x_149 = lean::alloc_cnstr(0, 1, 0); +} else { + x_149 = x_148; +} +lean::cnstr_set(x_149, 0, x_146); +x_7 = x_149; +x_8 = x_143; +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; +} else { + lean::dec(x_133); x_150 = lean::box(0); } -if (lean::is_scalar(x_150)) { - x_151 = lean::alloc_cnstr(0, 1, 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; } else { - x_151 = x_150; + lean::inc(x_151); + lean::dec(x_132); + x_153 = lean::box(0); } -lean::cnstr_set(x_151, 0, x_148); -x_9 = x_151; -x_10 = x_145; -goto lbl_11; -} -else +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) { -obj* x_152; obj* x_153; obj* x_155; obj* x_158; obj* x_159; obj* x_160; obj* x_161; -if (lean::is_exclusive(x_135)) { - lean::cnstr_release(x_135, 0); - x_152 = x_135; -} else { - lean::dec(x_135); - x_152 = lean::box(0); -} -x_153 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - lean::cnstr_set(x_134, 1, lean::box(0)); - x_155 = x_134; -} else { - lean::inc(x_153); - lean::dec(x_134); - x_155 = lean::box(0); -} -lean::inc(x_27); -lean::inc(x_124); -x_158 = 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_158, 0, x_124); -lean::closure_set(x_158, 1, x_27); -x_159 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__2; -x_160 = l_lean_profileit__pure___rarg(x_159, x_48, x_158, x_153); -x_161 = lean::cnstr_get(x_160, 0); -lean::inc(x_161); -if (lean::obj_tag(x_161) == 0) -{ -lean::dec(x_48); -lean::dec(x_152); +lean::dec(x_46); +lean::dec(x_150); if (x_1 == 0) { -obj* x_167; obj* x_169; obj* x_170; obj* x_174; obj* x_175; -lean::dec(x_29); -lean::dec(x_124); -x_167 = lean::cnstr_get(x_160, 1); -if (lean::is_exclusive(x_160)) { - lean::cnstr_release(x_160, 0); - lean::cnstr_set(x_160, 1, lean::box(0)); - x_169 = x_160; -} else { - lean::inc(x_167); - lean::dec(x_160); - x_169 = lean::box(0); -} -x_170 = lean::cnstr_get(x_161, 0); -lean::inc(x_170); -lean::dec(x_161); -lean::inc(x_0); -x_174 = lean::apply_2(x_0, x_170, x_167); -x_175 = lean::cnstr_get(x_174, 0); -lean::inc(x_175); -if (lean::obj_tag(x_175) == 0) -{ -obj* x_184; obj* x_187; obj* x_189; obj* x_190; -lean::dec(x_21); -lean::dec(x_24); +obj* x_165; obj* x_167; obj* x_168; obj* x_172; obj* x_173; lean::dec(x_27); -lean::dec(x_155); -lean::dec(x_169); -lean::dec(x_131); -lean::dec(x_127); -x_184 = lean::cnstr_get(x_174, 1); -lean::inc(x_184); -lean::dec(x_174); -x_187 = lean::cnstr_get(x_175, 0); -if (lean::is_exclusive(x_175)) { - x_189 = x_175; +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; } else { - lean::inc(x_187); - lean::dec(x_175); + lean::inc(x_165); + lean::dec(x_158); + x_167 = 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) +{ +obj* x_182; obj* x_185; obj* x_187; obj* x_188; +lean::dec(x_25); +lean::dec(x_19); +lean::dec(x_22); +lean::dec(x_153); +lean::dec(x_167); +lean::dec(x_125); +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; +} else { + lean::inc(x_185); + lean::dec(x_173); + x_187 = lean::box(0); +} +if (lean::is_scalar(x_187)) { + x_188 = lean::alloc_cnstr(0, 1, 0); +} else { + x_188 = x_187; +} +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); } -if (lean::is_scalar(x_189)) { - x_190 = lean::alloc_cnstr(0, 1, 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 { - x_190 = x_189; -} -lean::cnstr_set(x_190, 0, x_187); -x_9 = x_190; -x_10 = x_184; -goto lbl_11; -} -else -{ -obj* x_191; obj* x_192; obj* x_194; obj* x_196; obj* x_197; obj* x_198; obj* x_199; obj* x_200; obj* x_201; -if (lean::is_exclusive(x_175)) { - lean::cnstr_release(x_175, 0); - x_191 = x_175; -} else { - lean::dec(x_175); - x_191 = lean::box(0); -} -x_192 = lean::cnstr_get(x_174, 1); -if (lean::is_exclusive(x_174)) { - lean::cnstr_release(x_174, 0); - x_194 = x_174; -} else { - lean::inc(x_192); - lean::dec(x_174); - x_194 = lean::box(0); + lean::inc(x_190); + lean::dec(x_172); + x_192 = lean::box(0); } lean::inc(x_4); -if (lean::is_scalar(x_194)) { +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_194; + x_196 = x_153; } -lean::cnstr_set(x_196, 0, x_27); -lean::cnstr_set(x_196, 1, x_4); -if (lean::is_scalar(x_169)) { +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_169; + x_197 = x_129; } -lean::cnstr_set(x_197, 0, x_24); +lean::cnstr_set(x_197, 0, x_125); lean::cnstr_set(x_197, 1, x_196); -if (lean::is_scalar(x_155)) { - x_198 = lean::alloc_cnstr(0, 2, 0); +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_198 = x_155; + x_199 = x_189; } -lean::cnstr_set(x_198, 0, x_21); -lean::cnstr_set(x_198, 1, x_197); -if (lean::is_scalar(x_131)) { - x_199 = lean::alloc_cnstr(0, 2, 0); -} else { - x_199 = x_131; -} -lean::cnstr_set(x_199, 0, x_127); -lean::cnstr_set(x_199, 1, x_198); -x_200 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_200, 0, x_199); -if (lean::is_scalar(x_191)) { - x_201 = lean::alloc_cnstr(1, 1, 0); -} else { - x_201 = x_191; -} -lean::cnstr_set(x_201, 0, x_200); -x_9 = x_201; -x_10 = x_192; -goto lbl_11; +lean::cnstr_set(x_199, 0, x_198); +x_7 = x_199; +x_8 = x_190; +goto lbl_9; } } else { -obj* x_202; obj* x_204; obj* x_205; obj* x_209; obj* x_210; -x_202 = lean::cnstr_get(x_160, 1); -if (lean::is_exclusive(x_160)) { - lean::cnstr_release(x_160, 0); - lean::cnstr_set(x_160, 1, lean::box(0)); - x_204 = x_160; +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; } else { - lean::inc(x_202); - lean::dec(x_160); - x_204 = lean::box(0); + lean::inc(x_200); + lean::dec(x_158); + x_202 = lean::box(0); } -x_205 = lean::cnstr_get(x_161, 0); -lean::inc(x_205); -lean::dec(x_161); +x_203 = lean::cnstr_get(x_159, 0); +lean::inc(x_203); +lean::dec(x_159); lean::inc(x_0); -x_209 = lean::apply_2(x_0, x_205, x_202); -x_210 = lean::cnstr_get(x_209, 0); -lean::inc(x_210); -if (lean::obj_tag(x_210) == 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) { -obj* x_221; obj* x_224; obj* x_226; obj* x_227; -lean::dec(x_204); -lean::dec(x_21); -lean::dec(x_24); +obj* x_219; obj* x_222; obj* x_224; obj* x_225; +lean::dec(x_202); +lean::dec(x_25); lean::dec(x_27); -lean::dec(x_29); -lean::dec(x_155); -lean::dec(x_131); -lean::dec(x_124); -lean::dec(x_127); -x_221 = lean::cnstr_get(x_209, 1); -lean::inc(x_221); -lean::dec(x_209); -x_224 = lean::cnstr_get(x_210, 0); -if (lean::is_exclusive(x_210)) { - x_226 = x_210; +lean::dec(x_19); +lean::dec(x_22); +lean::dec(x_153); +lean::dec(x_122); +lean::dec(x_125); +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; } else { - lean::inc(x_224); - lean::dec(x_210); + lean::inc(x_222); + lean::dec(x_208); + x_224 = lean::box(0); +} +if (lean::is_scalar(x_224)) { + x_225 = lean::alloc_cnstr(0, 1, 0); +} else { + x_225 = x_224; +} +lean::cnstr_set(x_225, 0, x_222); +x_7 = x_225; +x_8 = x_219; +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; +} else { + lean::dec(x_208); x_226 = lean::box(0); } -if (lean::is_scalar(x_226)) { - x_227 = lean::alloc_cnstr(0, 1, 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; } else { - x_227 = x_226; + lean::inc(x_227); + lean::dec(x_207); + x_229 = lean::box(0); } -lean::cnstr_set(x_227, 0, x_224); -x_9 = x_227; -x_10 = x_221; -goto lbl_11; -} -else -{ -obj* x_228; obj* x_229; obj* x_231; obj* x_232; obj* x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; -if (lean::is_exclusive(x_210)) { - lean::cnstr_release(x_210, 0); - x_228 = x_210; +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); } else { - lean::dec(x_210); - x_228 = lean::box(0); + x_231 = x_229; } -x_229 = lean::cnstr_get(x_209, 1); -if (lean::is_exclusive(x_209)) { - lean::cnstr_release(x_209, 0); - x_231 = x_209; +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); } else { - lean::inc(x_229); - lean::dec(x_209); - x_231 = lean::box(0); + x_232 = x_202; } -x_232 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_232, 0, x_124); -lean::cnstr_set(x_232, 1, x_29); -if (lean::is_scalar(x_231)) { +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); } else { - x_233 = x_231; + x_233 = x_153; } -lean::cnstr_set(x_233, 0, x_27); +lean::cnstr_set(x_233, 0, x_19); lean::cnstr_set(x_233, 1, x_232); -if (lean::is_scalar(x_204)) { +if (lean::is_scalar(x_129)) { x_234 = lean::alloc_cnstr(0, 2, 0); } else { - x_234 = x_204; + x_234 = x_129; } -lean::cnstr_set(x_234, 0, x_24); +lean::cnstr_set(x_234, 0, x_125); lean::cnstr_set(x_234, 1, x_233); -if (lean::is_scalar(x_155)) { - x_235 = lean::alloc_cnstr(0, 2, 0); +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); } else { - x_235 = x_155; + x_236 = x_226; } -lean::cnstr_set(x_235, 0, x_21); -lean::cnstr_set(x_235, 1, x_234); -if (lean::is_scalar(x_131)) { - x_236 = lean::alloc_cnstr(0, 2, 0); -} else { - x_236 = x_131; -} -lean::cnstr_set(x_236, 0, x_127); -lean::cnstr_set(x_236, 1, x_235); -x_237 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_237, 0, x_236); -if (lean::is_scalar(x_228)) { - x_238 = lean::alloc_cnstr(1, 1, 0); -} else { - x_238 = x_228; -} -lean::cnstr_set(x_238, 0, x_237); -x_9 = x_238; -x_10 = x_229; -goto lbl_11; +lean::cnstr_set(x_236, 0, x_235); +x_7 = x_236; +x_8 = x_227; +goto lbl_9; } } } else { -obj* x_242; obj* x_244; obj* x_245; obj* x_247; obj* x_250; obj* x_251; obj* x_252; obj* x_254; obj* x_256; obj* x_258; obj* x_259; obj* x_261; obj* x_263; obj* x_264; obj* x_266; obj* x_268; obj* x_269; obj* x_271; -lean::dec(x_24); -lean::dec(x_27); -lean::dec(x_131); -x_242 = lean::cnstr_get(x_160, 1); -if (lean::is_exclusive(x_160)) { - lean::cnstr_release(x_160, 0); - lean::cnstr_set(x_160, 1, lean::box(0)); - x_244 = x_160; +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; +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; } else { - lean::inc(x_242); - lean::dec(x_160); - x_244 = lean::box(0); + lean::inc(x_240); + lean::dec(x_158); + x_242 = lean::box(0); } -x_245 = lean::cnstr_get(x_161, 0); -if (lean::is_exclusive(x_161)) { - lean::cnstr_set(x_161, 0, lean::box(0)); - x_247 = x_161; +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; } else { - lean::inc(x_245); - lean::dec(x_161); - x_247 = lean::box(0); + lean::inc(x_243); + lean::dec(x_159); + x_245 = lean::box(0); } -lean::inc(x_245); +lean::inc(x_243); lean::inc(x_3); -x_250 = 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_250, 0, x_3); -lean::closure_set(x_250, 1, x_21); -lean::closure_set(x_250, 2, x_245); -x_251 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6___closed__3; -x_252 = l_lean_profileit__pure___rarg(x_251, x_48, x_250, x_242); -lean::dec(x_48); -x_254 = lean::cnstr_get(x_252, 0); -x_256 = lean::cnstr_get(x_252, 1); -if (lean::is_exclusive(x_252)) { - lean::cnstr_set(x_252, 0, lean::box(0)); - lean::cnstr_set(x_252, 1, lean::box(0)); - x_258 = x_252; +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::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; } else { + lean::inc(x_252); lean::inc(x_254); - lean::inc(x_256); - lean::dec(x_252); - x_258 = lean::box(0); + lean::dec(x_250); + x_256 = lean::box(0); } -x_259 = lean::cnstr_get(x_254, 5); -lean::inc(x_259); -x_261 = l_list_reverse___rarg(x_259); +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_263 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__4(x_0, x_261, x_256); -x_264 = lean::cnstr_get(x_263, 0); -x_266 = lean::cnstr_get(x_263, 1); -if (lean::is_exclusive(x_263)) { - lean::cnstr_set(x_263, 0, lean::box(0)); - lean::cnstr_set(x_263, 1, lean::box(0)); - x_268 = x_263; +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; } else { + lean::inc(x_262); lean::inc(x_264); - lean::inc(x_266); - lean::dec(x_263); - x_268 = lean::box(0); + lean::dec(x_261); + x_266 = lean::box(0); } -if (lean::obj_tag(x_264) == 0) +if (lean::obj_tag(x_262) == 0) { -obj* x_284; obj* x_286; obj* x_287; -lean::dec(x_258); -lean::dec(x_247); -lean::dec(x_244); +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_268); -lean::dec(x_254); -lean::dec(x_29); -lean::dec(x_152); -lean::dec(x_155); -lean::dec(x_124); -lean::dec(x_127); -x_284 = lean::cnstr_get(x_264, 0); -if (lean::is_exclusive(x_264)) { - x_286 = x_264; +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_284); - lean::dec(x_264); - x_286 = lean::box(0); + lean::inc(x_282); + lean::dec(x_262); + x_284 = lean::box(0); } -if (lean::is_scalar(x_286)) { - x_287 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(0, 1, 0); } else { - x_287 = x_286; + x_285 = x_284; } -lean::cnstr_set(x_287, 0, x_284); -x_9 = x_287; -x_10 = x_266; -goto lbl_11; +lean::cnstr_set(x_285, 0, x_282); +x_7 = x_285; +x_8 = x_264; +goto lbl_9; } else { -obj* x_289; uint8 x_290; -lean::dec(x_264); -x_289 = l_lean_parser_module_eoi; -x_290 = l_lean_parser_syntax_is__of__kind___main(x_289, x_245); -lean::dec(x_245); -if (x_290 == 0) +obj* x_287; uint8 x_288; +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_293; -lean::dec(x_152); -x_293 = lean::box(0); -x_269 = x_293; +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; } +} +lbl_268: +{ +lean::dec(x_267); +if (x_1 == 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; +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); +} else { + x_308 = x_266; +} +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); +} else { + x_309 = x_256; +} +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); +} else { + x_310 = x_242; +} +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); +} else { + x_311 = x_153; +} +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); +} else { + x_313 = x_245; +} +lean::cnstr_set(x_313, 0, x_312); +x_7 = x_313; +x_8 = x_264; +goto lbl_9; +} else { -obj* x_301; -lean::dec(x_258); -lean::dec(x_247); -lean::dec(x_244); -lean::dec(x_268); -lean::dec(x_254); -lean::dec(x_155); -lean::dec(x_127); -x_301 = lean::box(0); -x_271 = x_301; -goto lbl_272; +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); +} else { + x_319 = x_266; +} +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); +} else { + x_320 = x_256; +} +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); +} else { + x_321 = x_242; +} +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); +} else { + x_322 = x_153; +} +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); +} else { + x_324 = x_245; +} +lean::cnstr_set(x_324, 0, x_323); +x_7 = x_324; +x_8 = x_264; +goto lbl_9; } } lbl_270: @@ -1183,223 +1287,117 @@ lbl_270: lean::dec(x_269); if (x_1 == 0) { -obj* x_305; obj* x_307; obj* x_310; obj* x_311; obj* x_312; obj* x_313; obj* x_314; obj* x_315; -lean::dec(x_29); -lean::dec(x_124); -x_305 = lean::cnstr_get(x_254, 6); -lean::inc(x_305); -x_307 = lean::cnstr_get(x_254, 7); -lean::inc(x_307); +obj* x_329; obj* x_330; obj* x_331; +lean::dec(x_27); +lean::dec(x_122); lean::inc(x_4); -if (lean::is_scalar(x_268)) { - x_310 = lean::alloc_cnstr(0, 2, 0); +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_310 = x_268; + x_331 = x_150; } -lean::cnstr_set(x_310, 0, x_307); -lean::cnstr_set(x_310, 1, x_4); -if (lean::is_scalar(x_258)) { - x_311 = lean::alloc_cnstr(0, 2, 0); -} else { - x_311 = x_258; -} -lean::cnstr_set(x_311, 0, x_305); -lean::cnstr_set(x_311, 1, x_310); -if (lean::is_scalar(x_244)) { - x_312 = lean::alloc_cnstr(0, 2, 0); -} else { - x_312 = x_244; -} -lean::cnstr_set(x_312, 0, x_254); -lean::cnstr_set(x_312, 1, x_311); -if (lean::is_scalar(x_155)) { - x_313 = lean::alloc_cnstr(0, 2, 0); -} else { - x_313 = x_155; -} -lean::cnstr_set(x_313, 0, x_127); -lean::cnstr_set(x_313, 1, x_312); -x_314 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_314, 0, x_313); -if (lean::is_scalar(x_247)) { - x_315 = lean::alloc_cnstr(1, 1, 0); -} else { - x_315 = x_247; -} -lean::cnstr_set(x_315, 0, x_314); -x_9 = x_315; -x_10 = x_266; -goto lbl_11; +lean::cnstr_set(x_331, 0, x_330); +x_7 = x_331; +x_8 = x_264; +goto lbl_9; } else { -obj* x_316; obj* x_318; obj* x_320; obj* x_321; obj* x_322; obj* x_323; obj* x_324; obj* x_325; obj* x_326; -x_316 = lean::cnstr_get(x_254, 6); -lean::inc(x_316); -x_318 = lean::cnstr_get(x_254, 7); -lean::inc(x_318); -x_320 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_320, 0, x_124); -lean::cnstr_set(x_320, 1, x_29); -if (lean::is_scalar(x_268)) { - x_321 = lean::alloc_cnstr(0, 2, 0); +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); } else { - x_321 = x_268; + x_335 = x_150; } -lean::cnstr_set(x_321, 0, x_318); -lean::cnstr_set(x_321, 1, x_320); -if (lean::is_scalar(x_258)) { - x_322 = lean::alloc_cnstr(0, 2, 0); -} else { - x_322 = x_258; -} -lean::cnstr_set(x_322, 0, x_316); -lean::cnstr_set(x_322, 1, x_321); -if (lean::is_scalar(x_244)) { - x_323 = lean::alloc_cnstr(0, 2, 0); -} else { - x_323 = x_244; -} -lean::cnstr_set(x_323, 0, x_254); -lean::cnstr_set(x_323, 1, x_322); -if (lean::is_scalar(x_155)) { - x_324 = lean::alloc_cnstr(0, 2, 0); -} else { - x_324 = x_155; -} -lean::cnstr_set(x_324, 0, x_127); -lean::cnstr_set(x_324, 1, x_323); -x_325 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_325, 0, x_324); -if (lean::is_scalar(x_247)) { - x_326 = lean::alloc_cnstr(1, 1, 0); -} else { - x_326 = x_247; -} -lean::cnstr_set(x_326, 0, x_325); -x_9 = x_326; -x_10 = x_266; -goto lbl_11; +lean::cnstr_set(x_335, 0, x_334); +x_7 = x_335; +x_8 = x_264; +goto lbl_9; } } -lbl_272: +} +} +} +lbl_9: { -lean::dec(x_271); -if (x_1 == 0) +if (lean::obj_tag(x_7) == 0) { -obj* x_331; obj* x_332; obj* x_333; -lean::dec(x_29); -lean::dec(x_124); -lean::inc(x_4); -x_331 = l_list_reverse___rarg(x_4); -x_332 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_332, 0, x_331); -if (lean::is_scalar(x_152)) { - x_333 = lean::alloc_cnstr(1, 1, 0); -} else { - x_333 = x_152; -} -lean::cnstr_set(x_333, 0, x_332); -x_9 = x_333; -x_10 = x_266; -goto lbl_11; -} -else -{ -obj* x_334; obj* x_335; obj* x_336; obj* x_337; -x_334 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_334, 0, x_124); -lean::cnstr_set(x_334, 1, x_29); -x_335 = l_list_reverse___rarg(x_334); -x_336 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_336, 0, x_335); -if (lean::is_scalar(x_152)) { - x_337 = lean::alloc_cnstr(1, 1, 0); -} else { - x_337 = x_152; -} -lean::cnstr_set(x_337, 0, x_336); -x_9 = x_337; -x_10 = x_266; -goto lbl_11; -} -} -} -} -} -lbl_11: -{ -if (lean::obj_tag(x_9) == 0) -{ -obj* x_342; obj* x_344; obj* x_345; obj* x_346; +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_342 = lean::cnstr_get(x_9, 0); -if (lean::is_exclusive(x_9)) { - x_344 = x_9; +x_340 = lean::cnstr_get(x_7, 0); +if (lean::is_exclusive(x_7)) { + x_342 = x_7; } else { - lean::inc(x_342); - lean::dec(x_9); - x_344 = lean::box(0); + lean::inc(x_340); + lean::dec(x_7); + x_342 = lean::box(0); } -if (lean::is_scalar(x_344)) { - x_345 = lean::alloc_cnstr(0, 1, 0); +if (lean::is_scalar(x_342)) { + x_343 = lean::alloc_cnstr(0, 1, 0); } else { - x_345 = x_344; + x_343 = x_342; } -lean::cnstr_set(x_345, 0, x_342); -x_346 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_346, 0, x_345); -lean::cnstr_set(x_346, 1, x_10); -return x_346; +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; } else { -obj* x_347; obj* x_349; -x_347 = lean::cnstr_get(x_9, 0); -if (lean::is_exclusive(x_9)) { - lean::cnstr_set(x_9, 0, lean::box(0)); - x_349 = x_9; +obj* x_345; obj* x_347; +x_345 = 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; } else { - lean::inc(x_347); - lean::dec(x_9); - x_349 = lean::box(0); + lean::inc(x_345); + lean::dec(x_7); + x_347 = lean::box(0); } -if (lean::obj_tag(x_347) == 0) +if (lean::obj_tag(x_345) == 0) { -obj* x_351; -lean::dec(x_349); -x_351 = lean::cnstr_get(x_347, 0); -lean::inc(x_351); +obj* x_349; lean::dec(x_347); -x_5 = x_0; -x_6 = x_0; -x_7 = x_351; -x_8 = x_10; +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; } else { -obj* x_359; obj* x_362; obj* x_363; +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_359 = lean::cnstr_get(x_347, 0); -lean::inc(x_359); -lean::dec(x_347); -if (lean::is_scalar(x_349)) { - x_362 = lean::alloc_cnstr(1, 1, 0); +x_357 = lean::cnstr_get(x_345, 0); +lean::inc(x_357); +lean::dec(x_345); +if (lean::is_scalar(x_347)) { + x_360 = lean::alloc_cnstr(1, 1, 0); } else { - x_362 = x_349; + x_360 = x_347; } -lean::cnstr_set(x_362, 0, x_359); -x_363 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_363, 0, x_362); -lean::cnstr_set(x_363, 1, x_10); -return x_363; +lean::cnstr_set(x_360, 0, x_357); +x_361 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_361, 0, x_360); +lean::cnstr_set(x_361, 1, x_8); +return x_361; } } } @@ -1420,39 +1418,47 @@ 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* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12, obj* x_13) { +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_14; obj* x_15; obj* x_16; obj* x_18; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; -x_14 = l_lean_expander_builtin__transformers; -x_15 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_15, 0, x_9); -lean::cnstr_set(x_15, 1, x_14); -x_16 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___closed__1; -lean::inc(x_12); -x_18 = l_lean_elaborator_mk__state(x_12, x_16); +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; +x_8 = lean::cnstr_get(x_2, 0); +lean::inc(x_8); +x_10 = lean::cnstr_get(x_8, 0); +lean::inc(x_10); +lean::dec(x_8); +x_13 = lean::cnstr_get(x_10, 0); lean::inc(x_13); -x_20 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_20, 0, x_15); -lean::cnstr_set(x_20, 1, x_13); -x_21 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_21, 0, x_2); -lean::cnstr_set(x_21, 1, x_20); +lean::dec(x_10); +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; +lean::inc(x_6); +x_20 = l_lean_elaborator_mk__state(x_6, x_18); +lean::inc(x_7); x_22 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_22, 0, x_18); -lean::cnstr_set(x_22, 1, x_21); +lean::cnstr_set(x_22, 0, x_17); +lean::cnstr_set(x_22, 1, x_7); x_23 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_23, 0, x_3); +lean::cnstr_set(x_23, 0, x_2); lean::cnstr_set(x_23, 1, x_22); -x_24 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6(x_0, x_1, x_5, x_12, x_13, lean::box(0), lean::box(0), x_23, x_6); -return x_24; +x_24 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_24, 0, x_20); +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; } } obj* l_io_prim_iterate__eio___at_lean_run__frontend___spec__5(obj* x_0, obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___boxed), 14, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg___boxed), 8, 0); return x_2; } } @@ -1605,7 +1611,7 @@ if (lean::is_exclusive(x_43)) { lean::dec(x_43); x_57 = lean::box(0); } -x_58 = l_lean_expander_expand__bracketed__binder___main___closed__8; +x_58 = l_lean_expander_expand__bracketed__binder___main___closed__6; if (lean::is_scalar(x_57)) { x_59 = lean::alloc_cnstr(0, 2, 0); } else { @@ -1618,7 +1624,7 @@ return x_59; } else { -obj* x_60; obj* x_63; obj* x_65; obj* x_69; obj* x_72; obj* x_73; +obj* x_60; obj* x_63; obj* x_65; obj* x_68; obj* x_71; obj* x_72; x_60 = lean::cnstr_get(x_34, 0); lean::inc(x_60); lean::dec(x_34); @@ -1627,88 +1633,82 @@ lean::inc(x_63); x_65 = lean::cnstr_get(x_60, 1); lean::inc(x_65); lean::dec(x_60); -lean::inc(x_65); -x_69 = l_list_reverse___rarg(x_65); -lean::inc(x_69); +x_68 = l_list_reverse___rarg(x_65); +lean::inc(x_68); lean::inc(x_2); -x_72 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__1(x_2, x_69, x_6); -x_73 = lean::cnstr_get(x_72, 0); -lean::inc(x_73); -if (lean::obj_tag(x_73) == 0) +x_71 = l_list_mmap_x_27___main___at_lean_run__frontend___spec__1(x_2, x_68, x_6); +x_72 = lean::cnstr_get(x_71, 0); +lean::inc(x_72); +if (lean::obj_tag(x_72) == 0) { -obj* x_82; obj* x_84; obj* x_85; obj* x_87; obj* x_88; obj* x_89; +obj* x_80; obj* x_82; obj* x_83; obj* x_85; obj* x_86; obj* x_87; lean::dec(x_1); lean::dec(x_0); lean::dec(x_2); -lean::dec(x_65); lean::dec(x_63); -lean::dec(x_69); +lean::dec(x_68); lean::dec(x_29); -x_82 = lean::cnstr_get(x_72, 1); +x_80 = lean::cnstr_get(x_71, 1); +if (lean::is_exclusive(x_71)) { + lean::cnstr_release(x_71, 0); + x_82 = x_71; +} else { + lean::inc(x_80); + lean::dec(x_71); + x_82 = lean::box(0); +} +x_83 = lean::cnstr_get(x_72, 0); if (lean::is_exclusive(x_72)) { - lean::cnstr_release(x_72, 0); - x_84 = x_72; + x_85 = x_72; } else { - lean::inc(x_82); + lean::inc(x_83); lean::dec(x_72); - x_84 = lean::box(0); + x_85 = lean::box(0); } -x_85 = lean::cnstr_get(x_73, 0); -if (lean::is_exclusive(x_73)) { - x_87 = x_73; +if (lean::is_scalar(x_85)) { + x_86 = lean::alloc_cnstr(0, 1, 0); } else { - lean::inc(x_85); - lean::dec(x_73); - x_87 = lean::box(0); + x_86 = x_85; } -if (lean::is_scalar(x_87)) { - x_88 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_86, 0, x_83); +if (lean::is_scalar(x_82)) { + x_87 = lean::alloc_cnstr(0, 2, 0); } else { - x_88 = x_87; + x_87 = x_82; } -lean::cnstr_set(x_88, 0, x_85); -if (lean::is_scalar(x_84)) { - x_89 = lean::alloc_cnstr(0, 2, 0); -} else { - x_89 = x_84; -} -lean::cnstr_set(x_89, 0, x_88); -lean::cnstr_set(x_89, 1, x_82); -return x_89; +lean::cnstr_set(x_87, 0, x_86); +lean::cnstr_set(x_87, 1, x_80); +return x_87; } else { -obj* x_91; obj* x_94; obj* x_96; obj* x_98; obj* x_100; obj* x_103; obj* x_106; obj* x_107; obj* x_108; -lean::dec(x_73); -x_91 = lean::cnstr_get(x_72, 1); -lean::inc(x_91); +obj* x_89; obj* x_92; obj* x_94; obj* x_97; obj* x_100; obj* x_103; obj* x_105; obj* x_106; obj* x_107; lean::dec(x_72); -x_94 = lean::cnstr_get(x_29, 0); +x_89 = lean::cnstr_get(x_71, 1); +lean::inc(x_89); +lean::dec(x_71); +x_92 = lean::cnstr_get(x_29, 0); +lean::inc(x_92); +x_94 = lean::cnstr_get(x_92, 0); lean::inc(x_94); -x_96 = lean::cnstr_get(x_94, 0); -lean::inc(x_96); -x_98 = lean::cnstr_get(x_96, 0); -lean::inc(x_98); -x_100 = lean::cnstr_get(x_98, 2); -lean::inc(x_100); +lean::dec(x_92); +x_97 = lean::cnstr_get(x_94, 0); +lean::inc(x_97); +lean::dec(x_94); +x_100 = lean::cnstr_get(x_97, 2); lean::inc(x_100); +lean::dec(x_97); x_103 = lean::alloc_cnstr(0, 3, 0); lean::cnstr_set(x_103, 0, x_0); lean::cnstr_set(x_103, 1, x_1); lean::cnstr_set(x_103, 2, x_100); lean::inc(x_29); -lean::inc(x_103); -x_106 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_106, 0, x_103); -lean::cnstr_set(x_106, 1, x_29); -x_107 = lean::box(0); -x_108 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(x_2, x_3, x_29, x_63, x_65, x_69, x_91, x_94, x_96, x_98, x_100, x_103, x_106, x_107); -lean::dec(x_103); -lean::dec(x_100); -lean::dec(x_96); -lean::dec(x_94); -lean::dec(x_65); -return x_108; +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); +return x_107; } } } @@ -1742,29 +1742,22 @@ 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* x_7, obj* x_8) { +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) { _start: { -uint8 x_9; obj* x_10; -x_9 = lean::unbox(x_1); -x_10 = l_io_prim_iterate___main___at_lean_run__frontend___spec__6(x_0, x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean::dec(x_5); -lean::dec(x_6); -return x_10; +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); +return x_8; } } -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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12, obj* x_13) { +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: { -uint8 x_14; obj* x_15; -x_14 = lean::unbox(x_1); -x_15 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(x_0, x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -lean::dec(x_4); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_10); -lean::dec(x_11); -return x_15; +uint8 x_8; obj* x_9; +x_8 = lean::unbox(x_1); +x_9 = l_io_prim_iterate__eio___at_lean_run__frontend___spec__5___rarg(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___boxed(obj* x_0, obj* x_1) { diff --git a/src/boot/init/lean/name.cpp b/src/boot/init/lean/name.cpp index d725941dc0..09015fa1ee 100644 --- a/src/boot/init/lean/name.cpp +++ b/src/boot/init/lean/name.cpp @@ -14,10 +14,9 @@ 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_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(obj*, obj*, obj*); obj* l_lean_name__set_insert(obj*, obj*); obj* l_lean_string__to__name; -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_name__map_find___spec__1(obj*); obj* l_rbmap_find___main___at_lean_name__map_contains___spec__1___boxed(obj*); obj* l_lean_name_has__append; @@ -25,15 +24,16 @@ uint8 l_lean_name_quick__lt__core(obj*, obj*); obj* l_lean_name_replace__prefix___boxed(obj*, obj*, obj*); obj* l_lean_name_decidable__eq; obj* l_lean_mk__str__name(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj*); +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_lean_name_1__hash__aux___main___boxed(obj*, obj*); obj* l_lean_name_components_x_27(obj*); obj* l_lean_name__map_find___rarg___boxed(obj*, obj*); obj* l_lean_name_quick__lt__core___main___boxed(obj*, obj*); obj* l_rbmap_find___main___at_lean_name__map_find___spec__1___boxed(obj*); obj* l_rbmap_find___main___at_lean_name__set_contains___spec__1___boxed(obj*, obj*); -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3(obj*); +obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___boxed(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_name__map_insert(obj*); obj* l_lean_name_to__string(obj*); obj* l_list_reverse___rarg(obj*); @@ -48,8 +48,7 @@ obj* l_lean_inhabited; obj* l_lean_name_quick__lt__core___boxed(obj*, obj*); obj* l_rbmap_find___main___at_lean_name__map_contains___spec__1___rarg(obj*, obj*); obj* l_lean_name_to__string___closed__1; -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3(obj*); namespace lean { obj* string_append(obj*, obj*); } @@ -60,7 +59,7 @@ uint8 l_lean_name_decidable__rel(obj*, obj*); uint8 l_option_is__some___main___rarg(obj*); obj* l_lean_name__map_contains___rarg___boxed(obj*, obj*); obj* l_lean_name_append(obj*, obj*); -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(obj*, obj*, obj*, obj*); obj* l_lean_name_hashable; obj* l_lean_name_replace__prefix___main(obj*, obj*, obj*); obj* l_lean_name_components(obj*); @@ -69,11 +68,10 @@ namespace lean { uint8 string_dec_lt(obj*, obj*); } obj* l_rbmap_insert___main___at_lean_name__set_insert___spec__1(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(obj*, obj*, obj*, obj*); obj* l_lean_name_to__string__with__sep___main(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4(obj*, obj*); -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___boxed(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4(obj*); +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___boxed(obj*); namespace lean { uint8 nat_dec_eq(obj*, obj*); } @@ -85,14 +83,14 @@ obj* l_lean_name_to__string__with__sep(obj*, obj*); obj* l_lean_name_to__string__with__sep___main___boxed(obj*, obj*); obj* l_lean_name_dec__eq___boxed(obj*, obj*); usize l___private_init_lean_name_1__hash__aux(obj*, usize); -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj*); +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj*, obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1___boxed(obj*); obj* l_lean_name__map_insert___boxed(obj*); obj* l_lean_name_quick__lt___boxed(obj*, obj*); obj* l_rbnode_balance2___main___rarg(obj*, obj*); obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1(obj*); obj* l_lean_name__map_contains(obj*); -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2(obj*); uint8 l_lean_name__map_contains___rarg(obj*, obj*); obj* l_lean_name__map_find___rarg(obj*, obj*); obj* l_lean_mk__name__map(obj*); @@ -100,11 +98,12 @@ uint8 l_lean_name__set_contains(obj*, obj*); obj* l_lean_name__set_contains___boxed(obj*, obj*); obj* l_lean_name_replace__prefix___main___boxed(obj*, obj*, obj*); extern "C" uint8 lean_name_dec_eq(obj*, obj*); -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2(obj*, obj*); +obj* l_rbnode_insert___at_lean_name__set_insert___spec__2(obj*, obj*, obj*, obj*); namespace lean { uint8 string_dec_eq(obj*, obj*); } -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___boxed(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_mk__num__name(obj*, obj*); uint8 l_lean_name_quick__lt(obj*, obj*); obj* l_lean_mk__simple__name(obj*); @@ -118,20 +117,21 @@ obj* l_lean_name_to__string__with__sep___boxed(obj*, obj*); obj* l_lean_name__map_find(obj*); obj* l_lean_name_update__prefix___main(obj*, obj*); obj* l_lean_name_get__prefix(obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj*, obj*, obj*, obj*); usize l___private_init_lean_name_1__hash__aux___main(obj*, usize); obj* l_rbmap_find___main___at_lean_name__map_find___spec__1___rarg___boxed(obj*, obj*); extern "C" obj* lean_name_mk_numeral(obj*, obj*); obj* l_nat_repr(obj*); obj* l_lean_mk__name__set; obj* l_lean_name_get__prefix___main(obj*); -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___boxed(obj*); obj* l_lean_name_hash___boxed(obj*); -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2___boxed(obj*, obj*, obj*, obj*); uint8 l_rbnode_is__red___main___rarg(obj*); obj* l_rbmap_find___main___at_lean_name__set_contains___spec__1(obj*, obj*); obj* l_lean_name_append___main___boxed(obj*, obj*); uint8 l_lean_name_quick__lt__core___main(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_name_to__string__with__sep___main___closed__1; obj* l_lean_mk__name__map___boxed(obj*); obj* l_lean_name_get__prefix___boxed(obj*); @@ -141,7 +141,7 @@ uint8 nat_dec_lt(obj*, obj*); } obj* l_rbnode_set__black___main___rarg(obj*); obj* l_lean_name_decidable__rel___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3___boxed(obj*); +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3___boxed(obj*, obj*, obj*, obj*); obj* l_lean_name__map_find___boxed(obj*); obj* _init_l_lean_inhabited() { _start: @@ -962,518 +962,519 @@ lean::dec(x_0); return x_1; } } -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2(obj* x_0, obj* x_1, obj* x_2) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3(obj* x_0) { _start: { -obj* x_3; -x_3 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg), 3, 0); -return x_3; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg___boxed), 4, 0); +return x_1; } } obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(x_0, x_1, x_2); -return x_3; +obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(x_3, x_0, x_1, x_2); +return x_4; } } obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1(obj* x_0) { @@ -1500,35 +1501,58 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_lean_name__map_insert___rarg return x_1; } } -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } -obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj* x_0) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4(x_0, x_1); +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_name__map_insert___spec__3(x_0); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_1; } } -obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_name__map_insert___spec__2(x_0, x_1, x_2); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4___rarg(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -return x_3; +return x_4; +} +} +obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__4___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_name__map_insert___spec__4(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_insert___at_lean_name__map_insert___spec__2(x_0); +lean::dec(x_0); +return x_1; } } obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1___boxed(obj* x_0) { @@ -1549,59 +1573,57 @@ lean::dec(x_0); return x_1; } } -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_3) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_5; -x_5 = lean::box(0); -return x_5; +obj* x_4; +x_4 = lean::box(0); +return x_4; } else { -obj* x_6; obj* x_8; obj* x_10; obj* x_12; uint8 x_15; -x_6 = lean::cnstr_get(x_3, 0); -lean::inc(x_6); -x_8 = lean::cnstr_get(x_3, 1); -lean::inc(x_8); -x_10 = lean::cnstr_get(x_3, 2); -lean::inc(x_10); -x_12 = lean::cnstr_get(x_3, 3); -lean::inc(x_12); -lean::dec(x_3); -x_15 = l_lean_name_quick__lt(x_4, x_8); -if (x_15 == 0) +obj* x_5; obj* x_7; obj* x_9; obj* x_11; uint8 x_14; +x_5 = lean::cnstr_get(x_2, 0); +lean::inc(x_5); +x_7 = lean::cnstr_get(x_2, 1); +lean::inc(x_7); +x_9 = lean::cnstr_get(x_2, 2); +lean::inc(x_9); +x_11 = lean::cnstr_get(x_2, 3); +lean::inc(x_11); +lean::dec(x_2); +x_14 = l_lean_name_quick__lt(x_3, x_7); +if (x_14 == 0) { -uint8 x_17; -lean::dec(x_6); -x_17 = l_lean_name_quick__lt(x_8, x_4); -lean::dec(x_8); -if (x_17 == 0) +uint8 x_16; +lean::dec(x_5); +x_16 = l_lean_name_quick__lt(x_7, x_3); +lean::dec(x_7); +if (x_16 == 0) { -obj* x_20; -lean::dec(x_12); -x_20 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_20, 0, x_10); -return x_20; +obj* x_19; +lean::dec(x_11); +x_19 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_19, 0, x_9); +return x_19; } else { -lean::dec(x_10); +lean::dec(x_9); x_1 = x_0; -x_2 = x_0; -x_3 = x_12; +x_2 = x_11; goto _start; } } else { -lean::dec(x_8); -lean::dec(x_10); -lean::dec(x_12); +lean::dec(x_7); +lean::dec(x_9); +lean::dec(x_11); x_1 = x_0; -x_2 = x_0; -x_3 = x_6; +x_2 = x_5; goto _start; } } @@ -1612,7 +1634,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -1642,16 +1664,15 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_lean_name__map_contains___ra return x_1; } } -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; -x_5 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_0, x_1, x_2, x_3, x_4); +obj* x_4; +x_4 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_0, x_1, x_2, x_3); lean::dec(x_0); lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_4); -return x_5; +lean::dec(x_3); +return x_4; } } obj* l_rbmap_find___main___at_lean_name__map_contains___spec__1___rarg___boxed(obj* x_0, obj* x_1) { @@ -1696,7 +1717,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -1768,518 +1789,495 @@ x_0 = lean::box(0); return x_0; } } -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2(obj* x_0, obj* x_1) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_name__set_insert___spec__2___rarg), 3, 0); -return x_2; +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_insert___at_lean_name__set_insert___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} } } obj* l_rbmap_insert___main___at_lean_name__set_insert___spec__1(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_name__set_insert___spec__2___rarg(x_0, x_1, x_2); -return x_3; +obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_rbnode_insert___at_lean_name__set_insert___spec__2(x_3, x_0, x_1, x_2); +return x_4; } } obj* l_lean_name__set_insert(obj* x_0, obj* x_1) { @@ -2291,32 +2289,31 @@ x_3 = l_rbmap_insert___main___at_lean_name__set_insert___spec__1(x_0, x_1, x_2); return x_3; } } -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3___boxed(obj* x_0) { +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_name__set_insert___spec__3(x_0, x_1, x_2, x_3); lean::dec(x_0); -return x_1; +return x_4; } } -obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___boxed(obj* x_0) { +obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0); +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_name__set_insert___spec__4(x_0, x_1, x_2, x_3); lean::dec(x_0); -return x_1; +return x_4; } } -obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_insert___at_lean_name__set_insert___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_2; -x_2 = l_rbnode_insert___at_lean_name__set_insert___spec__2(x_0, x_1); +obj* x_4; +x_4 = l_rbnode_insert___at_lean_name__set_insert___spec__2(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_4; } } obj* l_rbmap_find___main___at_lean_name__set_contains___spec__1(obj* x_0, obj* x_1) { @@ -2324,7 +2321,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } diff --git a/src/boot/init/lean/parser/basic.cpp b/src/boot/init/lean/parser/basic.cpp index d75dff8194..816c5fb60c 100644 --- a/src/boot/init/lean/parser/basic.cpp +++ b/src/boot/init/lean/parser/basic.cpp @@ -16,17 +16,20 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #endif obj* l_lean_parser_put__cache(obj*, obj*, obj*, obj*); obj* l_lean_parser_token__map_insert___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_parser__t_monad___rarg(obj*); obj* l_lean_parser_run___boxed(obj*, obj*, obj*); -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_parser_has__view_default(obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_command__parser__config__coe__parser__config___boxed(obj*); obj* l_lean_parser_parser__core__t_lean_parser_monad__parsec(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(obj*, obj*, obj*, obj*); obj* l_id___boxed(obj*); obj* l_lean_parser_parser__t_monad__except___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_get__cache___rarg(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_parsec__t_monad__except___rarg(obj*, obj*); obj* l_lean_parser_parsec__t_alternative___rarg(obj*, obj*); obj* l_lean_parser_trailing__term__parser__m_monad__except; @@ -45,7 +48,7 @@ obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__2___boxed( obj* l_rbmap_find___main___at_lean_parser_token__map_insert___spec__1___rarg(obj*, obj*); obj* l_lean_parser_list_cons_tokens___rarg(obj*, obj*); obj* l_lean_parser_has__view_default___rarg___boxed(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(obj*); obj* l_reader__t_lift___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_trie_find___rarg(obj*, obj*); obj* l_lean_parser_parsec__t_monad___rarg(obj*, obj*); @@ -58,9 +61,9 @@ obj* l_lean_parser_parser__t_monad(obj*, obj*); obj* l_lean_parser_command__parser__m_monad__reader__adapter(obj*, obj*); uint8 l_lean_parser_syntax_is__of__kind___main(obj*, obj*); obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__2(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(obj*); obj* l_id___rarg___boxed(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_has__tokens_inhabited___boxed(obj*, obj*); obj* l_lean_parser_command__parser__m_basic__parser___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command__parser__m_lean_parser_monad__parsec(obj*); @@ -71,6 +74,7 @@ obj* l_lean_parser_message__of__parsec__message___rarg(obj*, obj*); obj* l_lean_parser_parser__t_monad__reader___rarg(obj*); obj* l_lean_parser_parsec__t_run___at_lean_parser_run___spec__1___boxed(obj*); obj* l_lean_parser_log__message___rarg___lambda__2(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_tokens___boxed(obj*, obj*); obj* l_lean_parser_list_nil_tokens(obj*); obj* l_lean_parser_try__view___rarg___boxed(obj*, obj*, obj*); @@ -88,8 +92,9 @@ obj* l_lean_parser_trie_insert___rarg(obj*, obj*, obj*); obj* l_lean_parser_parser__t_lean_parser_monad__parsec(obj*, obj*); obj* l_lean_parser_trailing__term__parser__coe(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_parser__t_alternative___rarg(obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_list_cons_tokens___boxed(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___boxed(obj*); extern obj* l_lean_parser_parsec_result_mk__eps___rarg___closed__1; obj* l_lean_parser_parser__core__t_alternative(obj*); obj* l_lean_parser_token__map_of__list(obj*); @@ -101,7 +106,7 @@ obj* l_lean_parser_parsec__t_run___at_lean_parser_run___spec__1___rarg(obj*, obj obj* l_lean_parser_parsec__t_run___at_lean_parser_run___spec__1___rarg___lambda__1(obj*, obj*); obj* l_lean_parser_command__parser__m_monad__reader(obj*); obj* l_lean_parser_tokens___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(obj*); obj* l_lean_parser_token__map__cons_tokens(obj*, obj*, obj*, obj*); obj* l_lean_parser_parser__t_monad__reader___boxed(obj*, obj*); obj* l_lean_parser_parser__core__t_monad(obj*); @@ -117,12 +122,13 @@ obj* l_lean_parser_token__map__cons_tokens___rarg(obj*, obj*); obj* l_lean_parser_command__parser__m_basic__parser(obj*); obj* l_lean_parser_term__parser__m_lean_parser_monad__parsec; obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__6(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___boxed(obj*); obj* l_lean_parser_parser__core__t_monad___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_basic__parser__m_monad__reader; obj* l_lean_parser_term__parser__m_monad; -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg___boxed(obj*, obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_tokens___rarg___boxed(obj*); obj* l_rbmap_find___main___at_lean_parser_token__map_insert___spec__1___rarg___boxed(obj*, obj*); obj* l_lean_parser_list_nil_tokens___boxed(obj*); @@ -165,7 +171,7 @@ obj* l_lean_parser_token__map__nil_tokens(obj*); obj* l_lean_parser_command__parser__m_lean_parser_monad__parsec___boxed(obj*); obj* l_lean_parser_log__message___rarg___lambda__1(obj*, obj*, obj*, obj*); obj* l_lean_parser_rec__t_recurse___rarg(obj*, obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(obj*); obj* l_rbmap_find___main___at_lean_parser_token__map_insert___spec__1___boxed(obj*); obj* l_option_get___main___at_lean_parser_run___spec__2___boxed(obj*); uint8 l_lean_name_quick__lt(obj*, obj*); @@ -175,12 +181,12 @@ obj* l_lean_parser_trailing__term__parser__m_monad; obj* l_string_mk__iterator(obj*); obj* l_lean_parser_basic__parser__m_alternative; obj* l_reader__t_lift___rarg___boxed(obj*, obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___boxed(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___boxed(obj*); obj* l_lean_parser_parser__core__t_lean_parser_monad__parsec___boxed(obj*); obj* l_rbnode_balance1___main___rarg(obj*, obj*); obj* l_lean_parser_parser__t_alternative(obj*, obj*); obj* l_lean_parser_command__parser__m_monad__except(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(obj*); obj* l_lean_parser_trailing__term__parser__m_lean_parser_monad__parsec; obj* l_lean_parser_message__of__parsec__message(obj*); obj* l_option_get___main___at_lean_parser_run___spec__2(obj*); @@ -192,28 +198,28 @@ obj* l_lean_parser_log__message___boxed(obj*, obj*, obj*); obj* l_has__monad__lift__t__trans___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_parsec__t_run___at_lean_parser_run___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_parser__t_monad__except___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___boxed(obj*); obj* l_reader__t_monad___rarg(obj*); obj* l_lean_parser_trailing__term__parser__m_alternative; obj* l_nat_repr(obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___boxed(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___boxed(obj*); obj* l_lean_parser_command__parser__m_monad___boxed(obj*); obj* l_id_bind___boxed(obj*, obj*); obj* l_lean_parser_parser__t_monad___boxed(obj*, obj*); obj* l_lean_parser_command__parser__m_lean_parser_monad__rec___closed__1; obj* l_lean_parser_term__parser__m_lean_parser_monad__rec; obj* l_lean_parser_parser__core__t_alternative___rarg(obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(obj*, obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(obj*); obj* l_lean_parser_token__map_insert(obj*); obj* l_lean_parser_parsec__t_run___at_lean_parser_run___spec__1(obj*); -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_trailing__term__parser__m_lean_parser_monad__rec; obj* l_lean_parser_parser__t_monad__reader(obj*, obj*); obj* l_lean_file__map_to__position(obj*, obj*); obj* l_lean_parser_basic__parser__m_lean_parser_monad__parsec; obj* l_lean_parser_parser__t_lean_parser_monad__parsec___rarg(obj*); uint8 l_rbnode_is__red___main___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___boxed(obj*); obj* l_lean_parser_put__cache___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_basic__parser__m_monad__except; obj* l_list_append___rarg(obj*, obj*); @@ -2101,7 +2107,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -2113,518 +2119,519 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_rbmap_find___main___at_lean_ return x_1; } } -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(obj* x_0) { _start: { -obj* x_4; -x_4 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg), 3, 0); -return x_4; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg___boxed), 4, 0); +return x_1; } } obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(x_0, x_1, x_2); -return x_3; +obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(x_3, x_0, x_1, x_2); +return x_4; } } obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__2(obj* x_0) { @@ -2635,518 +2642,519 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lea return x_1; } } -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -if (lean::obj_tag(x_0) == 0) +if (lean::obj_tag(x_1) == 0) { -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = l_lean_name_quick__lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = l_lean_name_quick__lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = l_lean_name_quick__lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = l_lean_name_quick__lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_32); -lean::dec(x_30); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg), 3, 0); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = l_rbnode_is__red___main___rarg(x_0); -if (x_3 == 0) -{ -obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_1, x_2); -return x_4; -} -else -{ -obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_1, x_2); -x_6 = l_rbnode_set__black___main___rarg(x_5); +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; return x_6; } +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; } } -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(obj* x_0) { _start: { -obj* x_4; -x_4 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg), 3, 0); -return x_4; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; obj* x_6; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +x_6 = x_5; +return x_6; +} +else +{ +uint8 x_7; +x_7 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; +x_8 = lean::cnstr_get(x_1, 0); +x_10 = lean::cnstr_get(x_1, 1); +x_12 = lean::cnstr_get(x_1, 2); +x_14 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_16 = x_1; +} else { + lean::inc(x_8); + lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_1); + x_16 = lean::box(0); +} +x_17 = l_lean_name_quick__lt(x_2, x_10); +if (x_17 == 0) +{ +uint8 x_18; +x_18 = l_lean_name_quick__lt(x_10, x_2); +if (x_18 == 0) +{ +obj* x_21; obj* x_22; +lean::dec(x_10); +lean::dec(x_12); +if (lean::is_scalar(x_16)) { + x_21 = lean::alloc_cnstr(1, 4, 1); +} else { + x_21 = x_16; +} +lean::cnstr_set(x_21, 0, x_8); +lean::cnstr_set(x_21, 1, x_2); +lean::cnstr_set(x_21, 2, x_3); +lean::cnstr_set(x_21, 3, x_14); +lean::cnstr_set_scalar(x_21, sizeof(void*)*4, x_7); +x_22 = x_21; +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_14, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_24 = lean::alloc_cnstr(1, 4, 1); +} else { + x_24 = x_16; +} +lean::cnstr_set(x_24, 0, x_8); +lean::cnstr_set(x_24, 1, x_10); +lean::cnstr_set(x_24, 2, x_12); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_7); +x_25 = x_24; +return x_25; +} +} +else +{ +obj* x_26; obj* x_27; obj* x_28; +x_26 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_8, x_2, x_3); +if (lean::is_scalar(x_16)) { + x_27 = lean::alloc_cnstr(1, 4, 1); +} else { + x_27 = x_16; +} +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_10); +lean::cnstr_set(x_27, 2, x_12); +lean::cnstr_set(x_27, 3, x_14); +lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_7); +x_28 = x_27; +return x_28; +} +} +else +{ +obj* x_29; obj* x_31; obj* x_33; obj* x_35; obj* x_37; uint8 x_38; +x_29 = lean::cnstr_get(x_1, 0); +x_31 = lean::cnstr_get(x_1, 1); +x_33 = lean::cnstr_get(x_1, 2); +x_35 = lean::cnstr_get(x_1, 3); +if (lean::is_exclusive(x_1)) { + lean::cnstr_set(x_1, 0, lean::box(0)); + lean::cnstr_set(x_1, 1, lean::box(0)); + lean::cnstr_set(x_1, 2, lean::box(0)); + lean::cnstr_set(x_1, 3, lean::box(0)); + x_37 = x_1; +} else { + lean::inc(x_29); + lean::inc(x_31); + lean::inc(x_33); + lean::inc(x_35); + lean::dec(x_1); + x_37 = lean::box(0); +} +x_38 = l_lean_name_quick__lt(x_2, x_31); +if (x_38 == 0) +{ +uint8 x_39; +x_39 = l_lean_name_quick__lt(x_31, x_2); +if (x_39 == 0) +{ +obj* x_42; obj* x_43; +lean::dec(x_31); +lean::dec(x_33); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(1, 4, 1); +} else { + x_42 = x_37; +} +lean::cnstr_set(x_42, 0, x_29); +lean::cnstr_set(x_42, 1, x_2); +lean::cnstr_set(x_42, 2, x_3); +lean::cnstr_set(x_42, 3, x_35); +lean::cnstr_set_scalar(x_42, sizeof(void*)*4, x_7); +x_43 = x_42; +return x_43; +} +else +{ +uint8 x_44; +x_44 = l_rbnode_is__red___main___rarg(x_35); +if (x_44 == 0) +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_35, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_46 = lean::alloc_cnstr(1, 4, 1); +} else { + x_46 = x_37; +} +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_31); +lean::cnstr_set(x_46, 2, x_33); +lean::cnstr_set(x_46, 3, x_45); +lean::cnstr_set_scalar(x_46, sizeof(void*)*4, x_7); +x_47 = x_46; +return x_47; +} +else +{ +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_48 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_49 = lean::alloc_cnstr(1, 4, 1); +} else { + x_49 = x_37; +} +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_31); +lean::cnstr_set(x_49, 2, x_33); +lean::cnstr_set(x_49, 3, x_48); +lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_7); +x_50 = x_49; +x_51 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_35, x_2, x_3); +x_52 = l_rbnode_balance2___main___rarg(x_50, x_51); +return x_52; +} +} +} +else +{ +uint8 x_53; +x_53 = l_rbnode_is__red___main___rarg(x_29); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; +x_54 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_29, x_2, x_3); +if (lean::is_scalar(x_37)) { + x_55 = lean::alloc_cnstr(1, 4, 1); +} else { + x_55 = x_37; +} +lean::cnstr_set(x_55, 0, x_54); +lean::cnstr_set(x_55, 1, x_31); +lean::cnstr_set(x_55, 2, x_33); +lean::cnstr_set(x_55, 3, x_35); +lean::cnstr_set_scalar(x_55, sizeof(void*)*4, x_7); +x_56 = x_55; +return x_56; +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_57 = lean::box(0); +if (lean::is_scalar(x_37)) { + x_58 = lean::alloc_cnstr(1, 4, 1); +} else { + x_58 = x_37; +} +lean::cnstr_set(x_58, 0, x_57); +lean::cnstr_set(x_58, 1, x_31); +lean::cnstr_set(x_58, 2, x_33); +lean::cnstr_set(x_58, 3, x_35); +lean::cnstr_set_scalar(x_58, sizeof(void*)*4, x_7); +x_59 = x_58; +x_60 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_29, x_2, x_3); +x_61 = l_rbnode_balance1___main___rarg(x_59, x_60); +return x_61; +} +} +} +} +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg___boxed), 4, 0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_rbnode_is__red___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_1, x_2, x_3); +x_7 = l_rbnode_set__black___main___rarg(x_6); +return x_7; +} +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg___boxed), 4, 0); +return x_1; } } obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__6___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { -obj* x_3; -x_3 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(x_0, x_1, x_2); -return x_3; +obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(x_3, x_0, x_1, x_2); +return x_4; } } obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__6(obj* x_0) { @@ -3213,38 +3221,60 @@ lean::dec(x_0); return x_1; } } -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___rarg(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); return x_4; } } +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__4(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__5(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__3___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__3(x_0); +lean::dec(x_0); +return x_1; +} +} obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__2___boxed(obj* x_0) { _start: { @@ -3254,38 +3284,60 @@ lean::dec(x_0); return x_1; } } -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(x_0, x_1); -lean::dec(x_0); -lean::dec(x_1); -return x_2; -} -} -obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(x_0, x_1, x_2, x_3); +x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___rarg(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); return x_4; } } +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__8(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_ins___main___at_lean_parser_token__map_insert___spec__9(x_0); +lean::dec(x_0); +return x_1; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___rarg(x_0, x_1, x_2, x_3); +lean::dec(x_0); +return x_4; +} +} +obj* l_rbnode_insert___at_lean_parser_token__map_insert___spec__7___boxed(obj* x_0) { +_start: +{ +obj* x_1; +x_1 = l_rbnode_insert___at_lean_parser_token__map_insert___spec__7(x_0); +lean::dec(x_0); +return x_1; +} +} obj* l_rbmap_insert___main___at_lean_parser_token__map_insert___spec__6___boxed(obj* x_0) { _start: { diff --git a/src/boot/init/lean/parser/combinators.cpp b/src/boot/init/lean/parser/combinators.cpp index 3b74d9201d..1627297914 100644 --- a/src/boot/init/lean/parser/combinators.cpp +++ b/src/boot/init/lean/parser/combinators.cpp @@ -25,7 +25,6 @@ obj* l_lean_parser_combinators_node_tokens(obj*, obj*, obj*, obj*, obj*, obj*, o obj* l_lean_parser_combinators_node_tokens___rarg(obj*); obj* l_lean_parser_combinators_sep__by1___rarg___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_sep__by___boxed(obj*); -obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_choice_tokens___rarg___boxed(obj*); obj* l_lean_parser_combinators_node_view___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at___private_init_lean_parser_combinators_2__sep__by__aux___main___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); @@ -49,7 +48,7 @@ obj* l___private_init_lean_parser_combinators_3__sep__by_view__aux___main___rarg obj* l_lean_parser_monad__parsec_error___at_lean_parser_combinators_longest__choice___spec__2___rarg(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_longest__match_tokens(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_coe_view___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_combinators_choice__aux___main___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_longest__choice_tokens(obj*, obj*, obj*, obj*, obj*, obj*); namespace lean { @@ -82,7 +81,7 @@ obj* l_lean_parser_combinators_optional_tokens___rarg___boxed(obj*); obj* l_list_reverse___rarg(obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_combinators_sep__by___spec__2(obj*, obj*); obj* l_lean_parser_combinators_label_tokens___rarg___boxed(obj*); -obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_combinators_sep__by1___spec__2___boxed(obj*, obj*); obj* l_list_map___main___at_lean_parser_combinators_sep__by1_view___spec__1___boxed(obj*, obj*, obj*); obj* l_lean_parser_combinators_node___boxed(obj*); @@ -126,7 +125,7 @@ obj* l_lean_parser_combinators_try_view___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_combinators_2__sep__by__aux___main___at_lean_parser_combinators_sep__by___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_combinators_many___boxed(obj*); obj* l_lean_parser_combinators_longest__match_view(obj*); -obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(obj*, obj*, obj*); obj* l_lean_parser_combinators_many1_tokens___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_combinators_longest__choice___spec__2___boxed(obj*, obj*); obj* l_lean_parser_combinators_monad__lift_tokens___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); @@ -411,70 +410,68 @@ x_10 = lean::apply_2(x_6, lean::box(0), x_9); return x_10; } } -obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { -obj* x_8; -x_8 = l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(x_0, x_1, x_2, x_3, x_4, x_5, x_7, x_6); -return x_8; +obj* x_7; +x_7 = l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(x_0, x_1, x_2, x_3, x_4, x_6, x_5); +return x_7; } } -obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { -if (lean::obj_tag(x_7) == 0) +if (lean::obj_tag(x_6) == 0) { -obj* x_13; obj* x_16; obj* x_19; -lean::dec(x_5); +obj* x_11; obj* x_14; obj* x_17; lean::dec(x_4); lean::dec(x_1); lean::dec(x_3); lean::dec(x_2); -x_13 = lean::cnstr_get(x_0, 0); -lean::inc(x_13); +x_11 = lean::cnstr_get(x_0, 0); +lean::inc(x_11); lean::dec(x_0); -x_16 = lean::cnstr_get(x_13, 1); -lean::inc(x_16); -lean::dec(x_13); -x_19 = lean::apply_2(x_16, lean::box(0), x_6); -return x_19; +x_14 = lean::cnstr_get(x_11, 1); +lean::inc(x_14); +lean::dec(x_11); +x_17 = lean::apply_2(x_14, lean::box(0), x_5); +return x_17; } else { -obj* x_20; obj* x_22; obj* x_25; obj* x_27; obj* x_32; obj* x_33; obj* x_35; obj* x_37; obj* x_38; obj* x_39; -x_20 = lean::cnstr_get(x_7, 0); +obj* x_18; obj* x_20; obj* x_23; obj* x_25; obj* x_30; obj* x_31; obj* x_33; obj* x_35; obj* x_36; obj* x_37; +x_18 = lean::cnstr_get(x_6, 0); +lean::inc(x_18); +x_20 = lean::cnstr_get(x_6, 1); lean::inc(x_20); -x_22 = lean::cnstr_get(x_7, 1); -lean::inc(x_22); -lean::dec(x_7); -x_25 = lean::cnstr_get(x_0, 1); +lean::dec(x_6); +x_23 = lean::cnstr_get(x_0, 1); +lean::inc(x_23); +x_25 = lean::cnstr_get(x_1, 1); lean::inc(x_25); -x_27 = lean::cnstr_get(x_1, 1); -lean::inc(x_27); lean::inc(x_3); lean::inc(x_1); -lean::inc(x_6); -x_32 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__1), 4, 3); -lean::closure_set(x_32, 0, x_6); -lean::closure_set(x_32, 1, x_1); -lean::closure_set(x_32, 2, x_3); -x_33 = lean::apply_3(x_27, lean::box(0), x_20, x_32); -lean::inc(x_2); -x_35 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__2), 3, 2); -lean::closure_set(x_35, 0, x_2); -lean::closure_set(x_35, 1, x_6); lean::inc(x_5); -x_37 = lean::apply_4(x_5, lean::box(0), lean::box(0), x_33, x_35); -x_38 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3), 8, 7); -lean::closure_set(x_38, 0, x_0); -lean::closure_set(x_38, 1, x_1); -lean::closure_set(x_38, 2, x_2); -lean::closure_set(x_38, 3, x_3); -lean::closure_set(x_38, 4, x_4); -lean::closure_set(x_38, 5, x_5); -lean::closure_set(x_38, 6, x_22); -x_39 = lean::apply_4(x_25, lean::box(0), lean::box(0), x_37, x_38); -return x_39; +x_30 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__1), 4, 3); +lean::closure_set(x_30, 0, x_5); +lean::closure_set(x_30, 1, x_1); +lean::closure_set(x_30, 2, x_3); +x_31 = lean::apply_3(x_25, lean::box(0), x_18, x_30); +lean::inc(x_2); +x_33 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__2), 3, 2); +lean::closure_set(x_33, 0, x_2); +lean::closure_set(x_33, 1, x_5); +lean::inc(x_4); +x_35 = lean::apply_4(x_4, lean::box(0), lean::box(0), x_31, x_33); +x_36 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg___lambda__3), 7, 6); +lean::closure_set(x_36, 0, x_0); +lean::closure_set(x_36, 1, x_1); +lean::closure_set(x_36, 2, x_2); +lean::closure_set(x_36, 3, x_3); +lean::closure_set(x_36, 4, x_4); +lean::closure_set(x_36, 5, x_20); +x_37 = lean::apply_4(x_23, lean::box(0), lean::box(0), x_35, x_36); +return x_37; } } } @@ -482,7 +479,7 @@ obj* l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1(obj* x_0) _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg), 8, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg), 7, 0); return x_1; } } @@ -505,20 +502,19 @@ return x_11; obj* l_lean_parser_combinators_node___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_6; obj* x_8; obj* x_13; obj* x_14; obj* x_15; +obj* x_6; obj* x_8; obj* x_12; obj* x_13; obj* x_14; x_6 = lean::cnstr_get(x_0, 1); lean::inc(x_6); x_8 = lean::box(0); lean::inc(x_6); -lean::inc(x_6); lean::inc(x_4); lean::inc(x_3); -x_13 = l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(x_0, x_1, x_3, x_4, x_6, x_6, x_8, x_5); -x_14 = lean::alloc_closure(reinterpret_cast(l_lean_parser_combinators_node___rarg___lambda__1), 3, 2); -lean::closure_set(x_14, 0, x_3); -lean::closure_set(x_14, 1, x_4); -x_15 = lean::apply_4(x_6, lean::box(0), lean::box(0), x_13, x_14); -return x_15; +x_12 = l_list_mfoldl___main___at_lean_parser_combinators_node___spec__1___rarg(x_0, x_1, x_3, x_4, x_6, x_8, x_5); +x_13 = lean::alloc_closure(reinterpret_cast(l_lean_parser_combinators_node___rarg___lambda__1), 3, 2); +lean::closure_set(x_13, 0, x_3); +lean::closure_set(x_13, 1, x_4); +x_14 = lean::apply_4(x_6, lean::box(0), lean::box(0), x_12, x_13); +return x_14; } } obj* l_lean_parser_combinators_node(obj* x_0) { @@ -4007,50 +4003,50 @@ lean::dec(x_5); return x_6; } } -obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { -if (lean::obj_tag(x_4) == 0) +if (lean::obj_tag(x_2) == 0) { -obj* x_7; +obj* x_5; lean::dec(x_1); -lean::dec(x_3); -x_7 = lean::box(0); -return x_7; +lean::dec(x_0); +x_5 = lean::box(0); +return x_5; } else { -obj* x_8; obj* x_10; obj* x_12; obj* x_13; obj* x_15; obj* x_20; obj* x_21; obj* x_22; obj* x_23; -x_8 = lean::cnstr_get(x_4, 0); -x_10 = lean::cnstr_get(x_4, 1); -if (lean::is_exclusive(x_4)) { - x_12 = x_4; +obj* x_6; obj* x_8; obj* x_10; obj* x_11; obj* x_13; obj* x_18; obj* x_19; obj* x_20; obj* x_21; +x_6 = lean::cnstr_get(x_2, 0); +x_8 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + x_10 = x_2; } else { + lean::inc(x_6); lean::inc(x_8); - lean::inc(x_10); - lean::dec(x_4); - x_12 = lean::box(0); + lean::dec(x_2); + x_10 = lean::box(0); } -x_13 = lean::cnstr_get(x_8, 0); +x_11 = lean::cnstr_get(x_6, 0); +lean::inc(x_11); +x_13 = lean::cnstr_get(x_6, 1); lean::inc(x_13); -x_15 = lean::cnstr_get(x_8, 1); -lean::inc(x_15); -lean::dec(x_8); -lean::inc(x_3); +lean::dec(x_6); lean::inc(x_1); -x_20 = l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(x_0, x_1, x_2, x_3, x_10); -x_21 = lean::alloc_closure(reinterpret_cast(l_lean_parser_combinators_choice__aux___main___rarg___lambda__1), 3, 2); -lean::closure_set(x_21, 0, x_1); -lean::closure_set(x_21, 1, x_13); -x_22 = lean::apply_4(x_3, lean::box(0), lean::box(0), x_15, x_21); -if (lean::is_scalar(x_12)) { - x_23 = lean::alloc_cnstr(1, 2, 0); +lean::inc(x_0); +x_18 = l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(x_0, x_1, x_8); +x_19 = lean::alloc_closure(reinterpret_cast(l_lean_parser_combinators_choice__aux___main___rarg___lambda__1), 3, 2); +lean::closure_set(x_19, 0, x_0); +lean::closure_set(x_19, 1, x_11); +x_20 = lean::apply_4(x_1, lean::box(0), lean::box(0), x_13, x_19); +if (lean::is_scalar(x_10)) { + x_21 = lean::alloc_cnstr(1, 2, 0); } else { - x_23 = x_12; + x_21 = x_10; } -lean::cnstr_set(x_23, 0, x_22); -lean::cnstr_set(x_23, 1, x_20); -return x_23; +lean::cnstr_set(x_21, 0, x_20); +lean::cnstr_set(x_21, 1, x_18); +return x_21; } } } @@ -4058,7 +4054,7 @@ obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1(ob _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg___boxed), 5, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg), 3, 0); return x_1; } } @@ -4127,7 +4123,7 @@ x_7 = lean::mk_nat_obj(0u); x_8 = l_list_enum__from___main___rarg(x_7, x_4); lean::inc(x_5); lean::inc(x_3); -x_11 = l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(x_0, x_3, x_5, x_5, x_8); +x_11 = l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(x_3, x_5, x_8); lean::inc(x_2); lean::inc(x_0); x_14 = l_lean_parser_monad__parsec_longest__match___rarg(x_0, x_2, lean::box(0), x_1, x_11); @@ -4147,16 +4143,6 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_combinators_long return x_1; } } -obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -obj* x_5; -x_5 = l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_0); -lean::dec(x_2); -return x_5; -} -} obj* l_list_map___main___at_lean_parser_combinators_longest__choice___spec__1___boxed(obj* x_0) { _start: { diff --git a/src/boot/init/lean/parser/command.cpp b/src/boot/init/lean/parser/command.cpp index 2e05746904..1a1c929f4d 100644 --- a/src/boot/init/lean/parser/command.cpp +++ b/src/boot/init/lean/parser/command.cpp @@ -20,7 +20,7 @@ obj* l_lean_parser_command_section_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_variables_parser___closed__1; obj* l_lean_parser_command_variables_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_command_check_parser_lean_parser_has__tokens; -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_check_parser(obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_reserve__mixfix_parser_lean_parser_has__tokens; obj* l_list_map___main___at_lean_parser_command_omit_has__view_x_27___spec__2(obj*); @@ -115,7 +115,6 @@ obj* l_lean_parser_monad__parsec_error___at_lean_parser_command__parser_run___sp extern obj* l_lean_parser_command__parser__m_monad___closed__1; obj* l_lean_parser_command_open__spec_hiding_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_combinators_many1___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__3(obj*, obj*, obj*, obj*, obj*); -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___boxed(obj*); obj* l_list_map___main___at_lean_parser_command_omit_has__view_x_27___spec__1(obj*); obj* l_lean_parser_command_parser_lean_parser_has__view; obj* l_lean_parser_command_option__value_has__view_x_27___lambda__1___closed__2; @@ -310,7 +309,6 @@ obj* l_lean_parser_command_include_has__view_x_27; obj* l_lean_parser_command_section_parser_lean_parser_has__tokens; obj* l_lean_parser_command_open__spec_hiding_has__view_x_27; obj* l_lean_parser_command_attribute_parser_lean_parser_has__tokens; -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___rarg(obj*, obj*); obj* l_lean_parser_command_open__spec_parser___closed__1; obj* l_lean_parser_command_open__spec_renaming_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_combinators_many___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__2(obj*, obj*, obj*, obj*, obj*); @@ -377,7 +375,7 @@ extern obj* l_lean_parser_combinators_any__of___rarg___closed__1; extern obj* l_lean_parser_raw_view___rarg___lambda__2___closed__1; obj* l_lean_parser_command_section_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_open_has__view_x_27___lambda__2(obj*); -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(obj*); +obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_rbmap_find___main___at_lean_parser_command__parser_run___spec__6(obj*); obj* l_rbmap_find___main___at_lean_parser_command__parser_run___spec__6___boxed(obj*); obj* l_list_map___main___at_lean_parser_command_include_has__view_x_27___spec__1(obj*); @@ -11271,38 +11269,32 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_reader__t_orelse___at_lean_p return x_1; } } -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___rarg(obj* x_0, obj* x_1) { +obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { if (lean::obj_tag(x_1) == 0) { -return x_0; +obj* x_6; +x_6 = lean::apply_4(x_0, x_2, x_3, x_4, x_5); +return x_6; } else { -obj* x_2; obj* x_4; obj* x_7; -x_2 = lean::cnstr_get(x_1, 0); -lean::inc(x_2); -x_4 = lean::cnstr_get(x_1, 1); -lean::inc(x_4); +obj* x_7; obj* x_9; obj* x_12; +x_7 = lean::cnstr_get(x_1, 0); +lean::inc(x_7); +x_9 = lean::cnstr_get(x_1, 1); +lean::inc(x_9); lean::dec(x_1); -x_7 = lean::alloc_closure(reinterpret_cast(l_reader__t_orelse___at_lean_parser_command_universe_parser___spec__2___rarg), 6, 2); -lean::closure_set(x_7, 0, x_0); -lean::closure_set(x_7, 1, x_2); -x_0 = x_7; -x_1 = x_4; +x_12 = lean::alloc_closure(reinterpret_cast(l_reader__t_orelse___at_lean_parser_command_universe_parser___spec__2___rarg), 6, 2); +lean::closure_set(x_12, 0, x_0); +lean::closure_set(x_12, 1, x_7); +x_0 = x_12; +x_1 = x_9; goto _start; } } } -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___rarg), 2, 0); -return x_1; -} -} obj* l_lean_parser_combinators_any__of___at_lean_parser_command_universe_parser___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { @@ -11320,15 +11312,14 @@ return x_8; } else { -obj* x_12; obj* x_14; obj* x_17; obj* x_18; +obj* x_12; obj* x_14; obj* x_17; x_12 = lean::cnstr_get(x_0, 0); lean::inc(x_12); x_14 = lean::cnstr_get(x_0, 1); lean::inc(x_14); lean::dec(x_0); -x_17 = l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___rarg(x_12, x_14); -x_18 = lean::apply_4(x_17, x_1, x_2, x_3, x_4); -return x_18; +x_17 = l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(x_12, x_14, x_1, x_2, x_3, x_4); +return x_17; } } } @@ -11409,15 +11400,6 @@ lean::dec(x_0); return x_1; } } -obj* l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_list_foldl___main___at_lean_parser_command_universe_parser___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} obj* _init_l_lean_parser_command_check() { _start: { @@ -16258,7 +16240,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -16275,7 +16257,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -16292,7 +16274,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -16309,7 +16291,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } diff --git a/src/boot/init/lean/parser/declaration.cpp b/src/boot/init/lean/parser/declaration.cpp index 61ff72d404..0175a3faad 100644 --- a/src/boot/init/lean/parser/declaration.cpp +++ b/src/boot/init/lean/parser/declaration.cpp @@ -21,8 +21,8 @@ obj* l_lean_parser_monad__parsec_str__core___at_lean_parser_command_doc__comment obj* l_lean_parser_command_strict__infer__modifier_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_visibility_has__view; obj* l_lean_parser_command_infer__modifier_has__view_x_27___lambda__1___closed__2; -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_structure__kw_has__view_x_27; obj* l_lean_parser_parsec__t_bind__mk__res___rarg(obj*, obj*); obj* l_lean_parser_command_decl__val_parser(obj*, obj*, obj*, obj*); @@ -49,7 +49,7 @@ obj* l_lean_parser_command_structure__field__block_parser_lean_parser_has__token obj* l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_equation_has__view_x_27___lambda__1(obj*); obj* l_list_map___main___at_lean_parser_command_equation_has__view_x_27___spec__2(obj*); -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_constant_has__view; obj* l___private_init_lean_parser_token_4__ident_x_27(obj*, obj*, obj*); obj* l_lean_parser_command_inductive_has__view_x_27___lambda__1___closed__3; @@ -62,14 +62,14 @@ obj* l_lean_parser_command_struct__explicit__binder__content_has__view; obj* l_lean_parser_command_decl__modifiers_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_command_decl__modifiers_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_structure_parser(obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_ident__univ__params_has__view_x_27___lambda__1___closed__3; obj* l_lean_parser_command_declaration; obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view; namespace lean { obj* nat_add(obj*, obj*); } -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_decl__sig_has__view_x_27; obj* l_lean_parser_command_doc__comment_has__view_x_27___lambda__2___closed__1; obj* l_lean_parser_command_structure__field__block_has__view_x_27___lambda__1(obj*); @@ -91,14 +91,13 @@ obj* l_lean_parser_command_def__like_kind_has__view; obj* l_lean_parser_command_decl__modifiers_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_visibility; obj* l_lean_parser_command_structure_has__view_x_27___lambda__1___closed__6; -obj* l_lean_parser_command_doc__comment_parser___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_command_doc__comment_parser___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_strict__implicit__binder_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_command_struct__binder__content_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_infer__modifier_parser_lean_parser_has__tokens; obj* l_lean_parser_with__trailing___rarg___lambda__1(obj*, obj*); obj* l_lean_parser_command_structure__field__block; obj* l_lean_parser_combinators_sep__by1_tokens___rarg(obj*, obj*); -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_declaration_parser___closed__1; obj* l_lean_parser_command_decl__attributes_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_command_relaxed__infer__modifier_has__view_x_27___lambda__1___closed__2; @@ -113,20 +112,18 @@ obj* l_lean_parser_command_structure__kw_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_with__trailing___at_lean_parser_token___spec__3(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_struct__explicit__binder; obj* l_lean_parser_command_structure__ctor; -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_inductive_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_opt__decl__sig_parser___closed__1; obj* l_lean_parser_raw__ident_parser___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__1(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_decl__modifiers_has__view_x_27___lambda__1___closed__2; obj* l___private_init_lean_parser_combinators_2__sep__by__aux___main___at_lean_parser_command_decl__attributes_parser_lean_parser_has__tokens___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_old__univ__params_parser_lean_parser_has__view; obj* l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_structure__ctor_has__view_x_27___lambda__1(obj*); -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_structure__kw_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_parsec__t_try__mk__res___rarg(obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_struct__explicit__binder__content_has__view_x_27; obj* l_lean_parser_command_struct__explicit__binder__content_has__view_x_27___lambda__1___closed__1; obj* l_list_reverse___rarg(obj*); @@ -148,7 +145,7 @@ obj* l___private_init_lean_parser_combinators_3__sep__by_view__aux___main___at_l obj* l___private_init_lean_parser_combinators_1__many1__aux___main___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__4(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_structure__kw_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_parsec__t_labels__mk__res___rarg(obj*, obj*); -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_binder__default_parser(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_relaxed__infer__modifier_has__view_x_27___lambda__2(obj*); extern obj* l___private_init_lean_parser_combinators_1__many1__aux___main___rarg___closed__1; @@ -182,24 +179,22 @@ obj* l_lean_parser_command_decl__val_has__view_x_27___lambda__2___closed__1; obj* l_list_map___main___at_lean_parser_command_decl__attributes_has__view_x_27___spec__2(obj*); obj* l_lean_parser_command_strict__implicit__binder_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_declaration_parser_lean_parser_has__view; -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___boxed(obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_def__like_kind_has__view_x_27___lambda__1___closed__3; -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6(obj*); obj* l_lean_parser_command_instance_has__view_x_27; obj* l_lean_parser_monad__parsec_str__core___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_relaxed__infer__modifier_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_decl__attributes_has__view; obj* l_lean_parser_command_intro__rule_parser_lean_parser_has__view; obj* l_lean_parser_command_struct__explicit__binder__content_has__view_x_27___lambda__2(obj*); -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_def__like_kind_has__view_x_27___lambda__1(obj*); obj* l___private_init_lean_parser_combinators_1__many1__aux___main___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__4___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_def__like_kind_has__view_x_27___lambda__2___closed__3; namespace lean { obj* string_length(obj*); } -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5___lambda__1(obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_struct__implicit__binder_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_old__univ__params_parser(obj*, obj*, obj*, obj*); @@ -207,15 +202,13 @@ obj* l_lean_parser_command_visibility_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_command_decl__attributes_parser_lean_parser_has__view; uint8 l_string_is__empty(obj*); extern obj* l_lean_parser_command_notation__like_parser_lean_parser_has__tokens; -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_decl__modifiers_parser_lean_parser_has__tokens; obj* l_lean_parser_command_intro__rule_has__view; obj* l_lean_parser_command_structure_has__view_x_27; obj* l_lean_parser_command_constant__keyword_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_command_structure_has__view_x_27___lambda__2(obj*); -extern obj* l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; obj* l_lean_parser_command_strict__implicit__binder_has__view_x_27; -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_structure__kw_has__view_x_27___lambda__1___closed__4; obj* l_lean_parser_command_declaration_inner; namespace lean { @@ -228,11 +221,11 @@ obj* l_lean_parser_combinators_choice__aux___main___at_lean_parser_command_decl_ extern obj* l_lean_parser_command__parser__m_alternative___closed__1; obj* l_function_comp___rarg(obj*, obj*, obj*); obj* l_lean_parser_command_attr__instance_has__view_x_27___lambda__1___closed__3; -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(obj*, obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_combinators_3__sep__by_view__aux___main___at_lean_parser_command_decl__attributes_has__view_x_27___spec__1(obj*); obj* l_lean_parser_command_decl__val_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_command_constant_has__view_x_27___lambda__1(obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___boxed(obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_intro__rule_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_decl__sig_has__view_x_27___lambda__1___closed__2; @@ -250,7 +243,7 @@ obj* l_lean_parser_command_attr__instance_parser_lean_parser_has__view; obj* l_lean_parser_command_instance_has__view_x_27___lambda__1(obj*); obj* l___private_init_lean_parser_parsec_1__str__aux___main(obj*, obj*, obj*); obj* l_list_join___main___rarg(obj*); -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__2___closed__3; obj* l_lean_parser_command_declaration_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__tokens; @@ -259,6 +252,7 @@ obj* l_lean_parser_command_decl__attributes_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_combinators_sep__by1___at_lean_parser_command_decl__attributes_parser_lean_parser_has__tokens___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command__parser__m_lean_parser_monad__parsec___closed__1; obj* l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8(obj*); +extern obj* l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; obj* l_lean_parser_command_declaration_has__view_x_27___lambda__1___closed__3; obj* l_lean_parser_command_decl__attributes_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_structure__kw; @@ -273,17 +267,15 @@ obj* l_lean_parser_command_attr__instance_has__view_x_27; extern obj* l_lean_parser_term_binder__content_has__view_x_27___lambda__1___closed__2; obj* l_list_map___main___at_lean_parser_command_univ__params_has__view_x_27___spec__1(obj*); obj* l_lean_parser_tokens___rarg(obj*); -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(obj*, obj*, obj*, obj*, obj*); obj* l_option_get__or__else___main___rarg(obj*, obj*); obj* l_lean_parser_command_ident__univ__params_has__view_x_27___lambda__1___closed__4; -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___boxed(obj*); obj* l_lean_parser_command_inst__implicit__binder_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_visibility_has__view_x_27___lambda__1___closed__4; extern obj* l_lean_parser_no__kind; obj* l_lean_parser_syntax_as__node___main(obj*); obj* l_lean_parser_command_old__univ__params; obj* l_lean_parser_command_decl__modifiers_has__view_x_27; -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_intro__rule_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_opt__decl__sig_parser(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_attr__instance_has__view_x_27___lambda__1(obj*); @@ -308,9 +300,8 @@ obj* l_lean_parser_command_decl__attributes_parser(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_inductive_has__view_x_27___lambda__2___closed__1; obj* l_lean_parser_command_instance_has__view; obj* l_lean_parser_command_equation_has__view_x_27___lambda__1___closed__1; -obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_def__like_kind_has__view_x_27___lambda__1___closed__4; -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_command_notation_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_mk__raw__res(obj*, obj*); extern obj* l_char_has__repr___closed__1; @@ -334,7 +325,6 @@ obj* l_lean_parser_command_extends_has__view_x_27; obj* l_lean_parser_command_equation_parser_lean_parser_has__tokens; obj* l_lean_parser_command_struct__explicit__binder_has__view; obj* l_lean_parser_command_struct__explicit__binder__content_has__view_x_27___lambda__1___closed__2; -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_finish__comment__block___closed__2; obj* l_lean_parser_command_constant__keyword_has__view; obj* l_lean_parser_command_ident__univ__params_has__view; @@ -342,7 +332,7 @@ obj* l_lean_parser_command_inductive_has__view_x_27___lambda__1___closed__1; extern obj* l_lean_parser_ident_parser_view___rarg___lambda__1___closed__1; obj* l_lean_parser_command_instance_has__view_x_27___lambda__1___closed__3; obj* l_lean_parser_command_infer__modifier; -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_max__prec; obj* l_lean_parser_command_def__like; obj* l_lean_parser_command_ident__univ__params_parser_lean_parser_has__view; @@ -352,13 +342,12 @@ obj* l_lean_parser_command_ident__univ__params_parser_lean_parser_has__tokens; obj* l_lean_parser_syntax_mk__node(obj*, obj*); obj* l_lean_parser_command_struct__binder__content_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_command_opt__decl__sig; -obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_parser_command_equation_has__view_x_27___spec__1(obj*); obj* l_lean_parser_command_old__univ__params_parser_lean_parser_has__tokens; extern obj* l_lean_parser_detail__ident__part__escaped_has__view_x_27___lambda__2___closed__2; obj* l_lean_parser_command_decl__val_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_doc__comment_has__view_x_27; -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_constant__keyword_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_struct__implicit__binder_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_raw__ident_parser___at_lean_parser_command_attr__instance_parser_lean_parser_has__tokens___spec__1___boxed(obj*, obj*, obj*, obj*); @@ -367,13 +356,13 @@ obj* l_lean_parser_command_structure_has__view_x_27___lambda__1___closed__4; obj* l_lean_parser_token(obj*, obj*, obj*); obj* l_lean_parser_command_opt__decl__sig_has__view_x_27; obj* l_lean_parser_command_def__like_has__view; -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_strict__infer__modifier_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_inst__implicit__binder; obj* l_lean_parser_command_intro__rule_has__view_x_27___lambda__1___closed__3; obj* l_lean_parser_ident_parser___at_lean_parser_command_intro__rule_parser_lean_parser_has__tokens___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_command_infer__modifier_parser(obj*, obj*, obj*, obj*); -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(obj*, obj*, obj*, obj*); +obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_parser_lean_parser_has__tokens___closed__1; obj* l_lean_parser_command_relaxed__infer__modifier_has__view_x_27; obj* l_lean_parser_command_intro__rule; @@ -410,7 +399,6 @@ obj* l_lean_parser_command_decl__modifiers_parser___closed__1; obj* l_lean_parser_command_extends_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_opt__decl__sig_parser_lean_parser_has__view; obj* l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___boxed(obj*); obj* l_lean_parser_command_constant__keyword_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_command_decl__sig_has__view_x_27___lambda__1___closed__3; @@ -419,11 +407,10 @@ uint8 string_dec_eq(obj*, obj*); } obj* l_lean_parser_command_constant_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_attr__instance_has__view; -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_intro__rule_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_command_decl__sig_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_command_structure_has__view_x_27___lambda__2___closed__1; -obj* l_lean_parser_command_doc__comment_parser___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_command_doc__comment_parser___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_list_map___main___at_lean_parser_command_struct__binder__content_has__view_x_27___spec__1(obj*); obj* l_lean_parser_command_equation_has__view_x_27; obj* l_lean_parser_command_decl__val; @@ -432,13 +419,13 @@ obj* l_lean_parser_command_constant__keyword_has__view_x_27___lambda__1___closed obj* l_lean_parser_command_decl__sig_has__view_x_27___lambda__1(obj*); extern obj* l_lean_parser_level_leading_has__view_x_27___lambda__2___closed__3; obj* l_lean_parser_command_decl__attributes_parser_lean_parser_has__tokens; -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(obj*); -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11(obj*, obj*); obj* l_lean_parser_command_attr__instance; obj* l_lean_parser_command_extends_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_command_simple__decl__val_has__view_x_27___lambda__1(obj*); -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___boxed(obj*); +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_command_struct__explicit__binder_has__view_x_27___lambda__1(obj*); obj* l_list_map___main___at_lean_parser_command_attr__instance_has__view_x_27___spec__5(obj*); obj* l_string_mk__iterator(obj*); @@ -507,7 +494,7 @@ extern obj* l_lean_parser_command_notation_has__view_x_27___lambda__2___closed__ obj* l_lean_parser_command_attr__instance_parser_lean_parser_has__tokens; obj* l_lean_parser_command_relaxed__infer__modifier; obj* l_lean_parser_command_declaration_parser(obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_term_binder__default_has__view; extern obj* l_lean_parser_term_type__spec_has__view; @@ -1697,7 +1684,7 @@ return x_33; } } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_7; obj* x_8; @@ -1839,14 +1826,6 @@ return x_43; } } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg___boxed), 5, 0); -return x_1; -} -} obj* l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(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: { @@ -1966,763 +1945,763 @@ return x_41; } } } -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_7; obj* x_8; obj* x_10; uint8 x_11; -x_10 = lean::mk_nat_obj(0u); -x_11 = lean::nat_dec_eq(x_2, x_10); -if (x_11 == 0) +obj* x_6; obj* x_7; obj* x_9; uint8 x_10; +x_9 = lean::mk_nat_obj(0u); +x_10 = lean::nat_dec_eq(x_1, x_9); +if (x_10 == 0) { -obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_19; obj* x_20; -x_12 = lean::mk_nat_obj(1u); -x_13 = lean::nat_sub(x_2, x_12); -lean::inc(x_5); -lean::inc(x_1); -x_19 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(x_1, x_3, x_4, x_5, x_6); -x_20 = lean::cnstr_get(x_19, 0); -lean::inc(x_20); -if (lean::obj_tag(x_20) == 0) -{ -obj* x_22; uint8 x_24; -x_22 = lean::cnstr_get(x_20, 0); -lean::inc(x_22); -x_24 = lean::unbox(x_22); -if (x_24 == 0) -{ -obj* x_25; obj* x_28; obj* x_30; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_40; obj* x_42; obj* x_45; obj* x_46; obj* x_47; -x_25 = lean::cnstr_get(x_19, 1); -lean::inc(x_25); -lean::dec(x_19); -x_28 = lean::cnstr_get(x_20, 1); -lean::inc(x_28); -x_30 = lean::cnstr_get(x_20, 2); -lean::inc(x_30); -lean::dec(x_20); -x_33 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_33, 0, x_5); -x_34 = lean::box(0); -x_35 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_36 = l_mjoin___rarg___closed__1; -x_37 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_35, x_36, x_33, x_34, x_3, x_4, x_28, x_25); -lean::dec(x_28); -lean::dec(x_33); -x_40 = lean::cnstr_get(x_37, 0); -lean::inc(x_40); -x_42 = lean::cnstr_get(x_37, 1); -lean::inc(x_42); -lean::dec(x_37); -x_45 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_30, x_40); -x_46 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_47 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_46, x_45); -if (lean::obj_tag(x_47) == 0) -{ -obj* x_48; obj* x_50; obj* x_53; obj* x_54; obj* x_56; obj* x_59; -x_48 = lean::cnstr_get(x_47, 1); -lean::inc(x_48); -x_50 = lean::cnstr_get(x_47, 2); -lean::inc(x_50); -lean::dec(x_47); -x_53 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_48, x_42); -x_54 = lean::cnstr_get(x_53, 0); -lean::inc(x_54); -x_56 = lean::cnstr_get(x_53, 1); -lean::inc(x_56); -lean::dec(x_53); -x_59 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_50, x_54); -x_14 = x_59; -x_15 = x_56; -goto lbl_16; -} -else -{ -obj* x_60; uint8 x_62; obj* x_63; obj* x_64; obj* x_65; -x_60 = lean::cnstr_get(x_47, 0); -x_62 = lean::cnstr_get_scalar(x_47, sizeof(void*)*1); -if (lean::is_exclusive(x_47)) { - x_63 = x_47; -} else { - lean::inc(x_60); - lean::dec(x_47); - x_63 = lean::box(0); -} -if (lean::is_scalar(x_63)) { - x_64 = lean::alloc_cnstr(1, 1, 1); -} else { - x_64 = x_63; -} -lean::cnstr_set(x_64, 0, x_60); -lean::cnstr_set_scalar(x_64, sizeof(void*)*1, x_62); -x_65 = x_64; -x_14 = x_65; -x_15 = x_42; -goto lbl_16; -} -} -else -{ -obj* x_67; obj* x_70; obj* x_72; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; -lean::dec(x_5); -x_67 = lean::cnstr_get(x_19, 1); -lean::inc(x_67); -lean::dec(x_19); -x_70 = lean::cnstr_get(x_20, 1); -x_72 = lean::cnstr_get(x_20, 2); -if (lean::is_exclusive(x_20)) { - lean::cnstr_release(x_20, 0); - x_74 = x_20; -} else { - lean::inc(x_70); - lean::inc(x_72); - lean::dec(x_20); - x_74 = lean::box(0); -} -x_75 = lean::box(0); -x_76 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_74)) { - x_77 = lean::alloc_cnstr(0, 3, 0); -} else { - x_77 = x_74; -} -lean::cnstr_set(x_77, 0, x_75); -lean::cnstr_set(x_77, 1, x_70); -lean::cnstr_set(x_77, 2, x_76); -x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_72, x_77); -x_79 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_76, x_78); -if (lean::obj_tag(x_79) == 0) -{ -obj* x_80; obj* x_82; obj* x_85; obj* x_86; obj* x_88; obj* x_91; -x_80 = lean::cnstr_get(x_79, 1); -lean::inc(x_80); -x_82 = lean::cnstr_get(x_79, 2); -lean::inc(x_82); -lean::dec(x_79); -x_85 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_80, x_67); -x_86 = lean::cnstr_get(x_85, 0); -lean::inc(x_86); -x_88 = lean::cnstr_get(x_85, 1); -lean::inc(x_88); -lean::dec(x_85); -x_91 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_82, x_86); -x_14 = x_91; -x_15 = x_88; -goto lbl_16; -} -else -{ -obj* x_92; uint8 x_94; obj* x_95; obj* x_96; obj* x_97; -x_92 = lean::cnstr_get(x_79, 0); -x_94 = lean::cnstr_get_scalar(x_79, sizeof(void*)*1); -if (lean::is_exclusive(x_79)) { - x_95 = x_79; -} else { - lean::inc(x_92); - lean::dec(x_79); - x_95 = lean::box(0); -} -if (lean::is_scalar(x_95)) { - x_96 = lean::alloc_cnstr(1, 1, 1); -} else { - x_96 = x_95; -} -lean::cnstr_set(x_96, 0, x_92); -lean::cnstr_set_scalar(x_96, sizeof(void*)*1, x_94); -x_97 = x_96; -x_14 = x_97; -x_15 = x_67; -goto lbl_16; -} -} -} -else -{ -obj* x_99; obj* x_102; uint8 x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; -lean::dec(x_5); -x_99 = lean::cnstr_get(x_19, 1); -lean::inc(x_99); -lean::dec(x_19); -x_102 = lean::cnstr_get(x_20, 0); -x_104 = lean::cnstr_get_scalar(x_20, sizeof(void*)*1); -if (lean::is_exclusive(x_20)) { - x_105 = x_20; -} else { - lean::inc(x_102); - lean::dec(x_20); - x_105 = lean::box(0); -} -if (lean::is_scalar(x_105)) { - x_106 = lean::alloc_cnstr(1, 1, 1); -} else { - x_106 = x_105; -} -lean::cnstr_set(x_106, 0, x_102); -lean::cnstr_set_scalar(x_106, sizeof(void*)*1, x_104); -x_107 = x_106; -x_108 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_109 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_108, x_107); -if (lean::obj_tag(x_109) == 0) -{ -obj* x_110; obj* x_112; obj* x_115; obj* x_116; obj* x_118; obj* x_121; -x_110 = lean::cnstr_get(x_109, 1); -lean::inc(x_110); -x_112 = lean::cnstr_get(x_109, 2); -lean::inc(x_112); -lean::dec(x_109); -x_115 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_110, x_99); -x_116 = lean::cnstr_get(x_115, 0); -lean::inc(x_116); -x_118 = lean::cnstr_get(x_115, 1); -lean::inc(x_118); -lean::dec(x_115); -x_121 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_112, x_116); -x_14 = x_121; -x_15 = x_118; -goto lbl_16; -} -else -{ -obj* x_122; uint8 x_124; obj* x_125; obj* x_126; obj* x_127; -x_122 = lean::cnstr_get(x_109, 0); -x_124 = lean::cnstr_get_scalar(x_109, sizeof(void*)*1); -if (lean::is_exclusive(x_109)) { - x_125 = x_109; -} else { - lean::inc(x_122); - lean::dec(x_109); - x_125 = lean::box(0); -} -if (lean::is_scalar(x_125)) { - x_126 = lean::alloc_cnstr(1, 1, 1); -} else { - x_126 = x_125; -} -lean::cnstr_set(x_126, 0, x_122); -lean::cnstr_set_scalar(x_126, sizeof(void*)*1, x_124); -x_127 = x_126; -x_14 = x_127; -x_15 = x_99; -goto lbl_16; -} -} -lbl_16: -{ -if (lean::obj_tag(x_14) == 0) -{ -obj* x_128; obj* x_130; obj* x_132; obj* x_134; obj* x_136; -x_128 = lean::cnstr_get(x_14, 1); -x_130 = lean::cnstr_get(x_14, 2); -if (lean::is_exclusive(x_14)) { - lean::cnstr_release(x_14, 0); - lean::cnstr_set(x_14, 1, lean::box(0)); - lean::cnstr_set(x_14, 2, lean::box(0)); - x_132 = x_14; -} else { - lean::inc(x_128); - lean::inc(x_130); - lean::dec(x_14); - x_132 = lean::box(0); -} -lean::inc(x_128); -x_134 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_1, x_13, x_3, x_4, x_128, x_15); -lean::dec(x_13); -x_136 = lean::cnstr_get(x_134, 0); -lean::inc(x_136); -if (lean::obj_tag(x_136) == 0) -{ -obj* x_140; obj* x_142; obj* x_143; obj* x_144; -lean::dec(x_132); -lean::dec(x_128); -x_140 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_142 = x_134; -} else { - lean::inc(x_140); - lean::dec(x_134); - x_142 = lean::box(0); -} -x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_142)) { - x_144 = lean::alloc_cnstr(0, 2, 0); -} else { - x_144 = x_142; -} -lean::cnstr_set(x_144, 0, x_143); -lean::cnstr_set(x_144, 1, x_140); -return x_144; -} -else -{ -uint8 x_145; -x_145 = lean::cnstr_get_scalar(x_136, sizeof(void*)*1); -if (x_145 == 0) -{ -obj* x_146; obj* x_148; obj* x_149; obj* x_152; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; obj* x_161; -x_146 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_148 = x_134; -} else { - lean::inc(x_146); - lean::dec(x_134); - x_148 = lean::box(0); -} -x_149 = lean::cnstr_get(x_136, 0); -lean::inc(x_149); -lean::dec(x_136); -x_152 = lean::cnstr_get(x_149, 2); -lean::inc(x_152); -lean::dec(x_149); -x_155 = l_mjoin___rarg___closed__1; -x_156 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_156, 0, x_152); -lean::closure_set(x_156, 1, x_155); -x_157 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_157, 0, x_156); -x_158 = lean::box(0); -if (lean::is_scalar(x_132)) { - x_159 = lean::alloc_cnstr(0, 3, 0); -} else { - x_159 = x_132; -} -lean::cnstr_set(x_159, 0, x_158); -lean::cnstr_set(x_159, 1, x_128); -lean::cnstr_set(x_159, 2, x_157); -x_160 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_159); -if (lean::is_scalar(x_148)) { - x_161 = lean::alloc_cnstr(0, 2, 0); -} else { - x_161 = x_148; -} -lean::cnstr_set(x_161, 0, x_160); -lean::cnstr_set(x_161, 1, x_146); -return x_161; -} -else -{ -obj* x_164; obj* x_166; obj* x_167; obj* x_168; -lean::dec(x_132); -lean::dec(x_128); -x_164 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_166 = x_134; -} else { - lean::inc(x_164); - lean::dec(x_134); - x_166 = lean::box(0); -} -x_167 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_166)) { - x_168 = lean::alloc_cnstr(0, 2, 0); -} else { - x_168 = x_166; -} -lean::cnstr_set(x_168, 0, x_167); -lean::cnstr_set(x_168, 1, x_164); -return x_168; -} -} -} -else -{ -obj* x_171; uint8 x_173; obj* x_174; obj* x_175; obj* x_176; obj* x_177; -lean::dec(x_1); -lean::dec(x_13); -x_171 = lean::cnstr_get(x_14, 0); -x_173 = lean::cnstr_get_scalar(x_14, sizeof(void*)*1); -if (lean::is_exclusive(x_14)) { - x_174 = x_14; -} else { - lean::inc(x_171); - lean::dec(x_14); - x_174 = lean::box(0); -} -if (lean::is_scalar(x_174)) { - x_175 = lean::alloc_cnstr(1, 1, 1); -} else { - x_175 = x_174; -} -lean::cnstr_set(x_175, 0, x_171); -lean::cnstr_set_scalar(x_175, sizeof(void*)*1, x_173); -x_176 = x_175; -x_177 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_177, 0, x_176); -lean::cnstr_set(x_177, 1, x_15); -return x_177; -} -} -} -else -{ -obj* x_179; obj* x_180; -lean::inc(x_5); -x_179 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(x_1, x_3, x_4, x_5, x_6); -x_180 = lean::cnstr_get(x_179, 0); -lean::inc(x_180); -if (lean::obj_tag(x_180) == 0) -{ -obj* x_182; uint8 x_184; -x_182 = lean::cnstr_get(x_180, 0); -lean::inc(x_182); -x_184 = lean::unbox(x_182); -if (x_184 == 0) -{ -obj* x_185; obj* x_188; obj* x_190; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_200; obj* x_202; obj* x_205; obj* x_206; obj* x_207; -x_185 = lean::cnstr_get(x_179, 1); -lean::inc(x_185); -lean::dec(x_179); -x_188 = lean::cnstr_get(x_180, 1); -lean::inc(x_188); -x_190 = lean::cnstr_get(x_180, 2); -lean::inc(x_190); -lean::dec(x_180); -x_193 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_193, 0, x_5); -x_194 = lean::box(0); -x_195 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_196 = l_mjoin___rarg___closed__1; -x_197 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_195, x_196, x_193, x_194, x_3, x_4, x_188, x_185); -lean::dec(x_188); -lean::dec(x_193); -x_200 = lean::cnstr_get(x_197, 0); -lean::inc(x_200); -x_202 = lean::cnstr_get(x_197, 1); -lean::inc(x_202); -lean::dec(x_197); -x_205 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_190, x_200); -x_206 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_207 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_206, x_205); -if (lean::obj_tag(x_207) == 0) -{ -obj* x_208; obj* x_210; obj* x_213; obj* x_214; obj* x_216; obj* x_219; -x_208 = lean::cnstr_get(x_207, 1); -lean::inc(x_208); -x_210 = lean::cnstr_get(x_207, 2); -lean::inc(x_210); -lean::dec(x_207); -x_213 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_208, x_202); -x_214 = lean::cnstr_get(x_213, 0); -lean::inc(x_214); -x_216 = lean::cnstr_get(x_213, 1); -lean::inc(x_216); -lean::dec(x_213); -x_219 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_210, x_214); -x_7 = x_219; -x_8 = x_216; -goto lbl_9; -} -else -{ -obj* x_220; uint8 x_222; obj* x_223; obj* x_224; obj* x_225; -x_220 = lean::cnstr_get(x_207, 0); -x_222 = lean::cnstr_get_scalar(x_207, sizeof(void*)*1); -if (lean::is_exclusive(x_207)) { - x_223 = x_207; -} else { - lean::inc(x_220); - lean::dec(x_207); - x_223 = lean::box(0); -} -if (lean::is_scalar(x_223)) { - x_224 = lean::alloc_cnstr(1, 1, 1); -} else { - x_224 = x_223; -} -lean::cnstr_set(x_224, 0, x_220); -lean::cnstr_set_scalar(x_224, sizeof(void*)*1, x_222); -x_225 = x_224; -x_7 = x_225; -x_8 = x_202; -goto lbl_9; -} -} -else -{ -obj* x_227; obj* x_230; obj* x_232; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; obj* x_239; -lean::dec(x_5); -x_227 = lean::cnstr_get(x_179, 1); -lean::inc(x_227); -lean::dec(x_179); -x_230 = lean::cnstr_get(x_180, 1); -x_232 = lean::cnstr_get(x_180, 2); -if (lean::is_exclusive(x_180)) { - lean::cnstr_release(x_180, 0); - x_234 = x_180; -} else { - lean::inc(x_230); - lean::inc(x_232); - lean::dec(x_180); - x_234 = lean::box(0); -} -x_235 = lean::box(0); -x_236 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_234)) { - x_237 = lean::alloc_cnstr(0, 3, 0); -} else { - x_237 = x_234; -} -lean::cnstr_set(x_237, 0, x_235); -lean::cnstr_set(x_237, 1, x_230); -lean::cnstr_set(x_237, 2, x_236); -x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_232, x_237); -x_239 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_236, x_238); -if (lean::obj_tag(x_239) == 0) -{ -obj* x_240; obj* x_242; obj* x_245; obj* x_246; obj* x_248; obj* x_251; -x_240 = lean::cnstr_get(x_239, 1); -lean::inc(x_240); -x_242 = lean::cnstr_get(x_239, 2); -lean::inc(x_242); -lean::dec(x_239); -x_245 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_240, x_227); -x_246 = lean::cnstr_get(x_245, 0); -lean::inc(x_246); -x_248 = lean::cnstr_get(x_245, 1); -lean::inc(x_248); -lean::dec(x_245); -x_251 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_242, x_246); -x_7 = x_251; -x_8 = x_248; -goto lbl_9; -} -else -{ -obj* x_252; uint8 x_254; obj* x_255; obj* x_256; obj* x_257; -x_252 = lean::cnstr_get(x_239, 0); -x_254 = lean::cnstr_get_scalar(x_239, sizeof(void*)*1); -if (lean::is_exclusive(x_239)) { - x_255 = x_239; -} else { - lean::inc(x_252); - lean::dec(x_239); - x_255 = lean::box(0); -} -if (lean::is_scalar(x_255)) { - x_256 = lean::alloc_cnstr(1, 1, 1); -} else { - x_256 = x_255; -} -lean::cnstr_set(x_256, 0, x_252); -lean::cnstr_set_scalar(x_256, sizeof(void*)*1, x_254); -x_257 = x_256; -x_7 = x_257; -x_8 = x_227; -goto lbl_9; -} -} -} -else -{ -obj* x_259; obj* x_262; uint8 x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; obj* x_269; -lean::dec(x_5); -x_259 = lean::cnstr_get(x_179, 1); -lean::inc(x_259); -lean::dec(x_179); -x_262 = lean::cnstr_get(x_180, 0); -x_264 = lean::cnstr_get_scalar(x_180, sizeof(void*)*1); -if (lean::is_exclusive(x_180)) { - x_265 = x_180; -} else { - lean::inc(x_262); - lean::dec(x_180); - x_265 = lean::box(0); -} -if (lean::is_scalar(x_265)) { - x_266 = lean::alloc_cnstr(1, 1, 1); -} else { - x_266 = x_265; -} -lean::cnstr_set(x_266, 0, x_262); -lean::cnstr_set_scalar(x_266, sizeof(void*)*1, x_264); -x_267 = x_266; -x_268 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_269 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_268, x_267); -if (lean::obj_tag(x_269) == 0) -{ -obj* x_270; obj* x_272; obj* x_275; obj* x_276; obj* x_278; obj* x_281; -x_270 = lean::cnstr_get(x_269, 1); -lean::inc(x_270); -x_272 = lean::cnstr_get(x_269, 2); -lean::inc(x_272); -lean::dec(x_269); -x_275 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_270, x_259); -x_276 = lean::cnstr_get(x_275, 0); -lean::inc(x_276); -x_278 = lean::cnstr_get(x_275, 1); -lean::inc(x_278); -lean::dec(x_275); -x_281 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_272, x_276); -x_7 = x_281; -x_8 = x_278; -goto lbl_9; -} -else -{ -obj* x_282; uint8 x_284; obj* x_285; obj* x_286; obj* x_287; -x_282 = lean::cnstr_get(x_269, 0); -x_284 = lean::cnstr_get_scalar(x_269, sizeof(void*)*1); -if (lean::is_exclusive(x_269)) { - x_285 = x_269; -} else { - lean::inc(x_282); - lean::dec(x_269); - x_285 = lean::box(0); -} -if (lean::is_scalar(x_285)) { - x_286 = lean::alloc_cnstr(1, 1, 1); -} else { - x_286 = x_285; -} -lean::cnstr_set(x_286, 0, x_282); -lean::cnstr_set_scalar(x_286, sizeof(void*)*1, x_284); -x_287 = x_286; -x_7 = x_287; -x_8 = x_259; -goto lbl_9; -} -} -} -lbl_9: -{ -if (lean::obj_tag(x_7) == 0) -{ -obj* x_288; obj* x_290; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; -x_288 = lean::cnstr_get(x_7, 1); -x_290 = lean::cnstr_get(x_7, 2); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_292 = x_7; -} else { - lean::inc(x_288); - lean::inc(x_290); - lean::dec(x_7); - x_292 = lean::box(0); -} -x_293 = lean::box(0); -x_294 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_292)) { - x_295 = lean::alloc_cnstr(0, 3, 0); -} else { - x_295 = x_292; -} -lean::cnstr_set(x_295, 0, x_293); -lean::cnstr_set(x_295, 1, x_288); -lean::cnstr_set(x_295, 2, x_294); -x_296 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_290, x_295); -x_297 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_297, 0, x_296); -lean::cnstr_set(x_297, 1, x_8); -return x_297; -} -else -{ -obj* x_298; uint8 x_300; obj* x_301; obj* x_302; obj* x_303; obj* x_304; -x_298 = lean::cnstr_get(x_7, 0); -x_300 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_301 = x_7; -} else { - lean::inc(x_298); - lean::dec(x_7); - x_301 = lean::box(0); -} -if (lean::is_scalar(x_301)) { - x_302 = lean::alloc_cnstr(1, 1, 1); -} else { - x_302 = x_301; -} -lean::cnstr_set(x_302, 0, x_298); -lean::cnstr_set_scalar(x_302, sizeof(void*)*1, x_300); -x_303 = x_302; -x_304 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_304, 0, x_303); -lean::cnstr_set(x_304, 1, x_8); -return x_304; -} -} -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { -_start: -{ -obj* x_6; obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_15; obj* x_16; -x_6 = l_string_iterator_remaining___main(x_4); +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_18; obj* x_19; +x_11 = lean::mk_nat_obj(1u); +x_12 = lean::nat_sub(x_1, x_11); lean::inc(x_4); -x_8 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_1, x_6, x_2, x_3, x_4, x_5); -lean::dec(x_6); -x_10 = lean::cnstr_get(x_8, 0); -x_12 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { - lean::cnstr_set(x_8, 0, lean::box(0)); - lean::cnstr_set(x_8, 1, lean::box(0)); - x_14 = x_8; -} else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_8); - x_14 = lean::box(0); -} -x_15 = l_lean_parser_finish__comment__block___closed__2; -x_16 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_10); -if (lean::obj_tag(x_16) == 0) +lean::inc(x_0); +x_18 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0, x_2, x_3, x_4, x_5); +x_19 = lean::cnstr_get(x_18, 0); +lean::inc(x_19); +if (lean::obj_tag(x_19) == 0) { -obj* x_18; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_18 = lean::alloc_cnstr(0, 2, 0); -} else { - x_18 = x_14; -} -lean::cnstr_set(x_18, 0, x_16); -lean::cnstr_set(x_18, 1, x_12); -return x_18; +obj* x_21; uint8 x_23; +x_21 = lean::cnstr_get(x_19, 0); +lean::inc(x_21); +x_23 = lean::unbox(x_21); +if (x_23 == 0) +{ +obj* x_24; obj* x_27; obj* x_29; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_39; obj* x_41; obj* x_44; obj* x_45; obj* x_46; +x_24 = lean::cnstr_get(x_18, 1); +lean::inc(x_24); +lean::dec(x_18); +x_27 = lean::cnstr_get(x_19, 1); +lean::inc(x_27); +x_29 = lean::cnstr_get(x_19, 2); +lean::inc(x_29); +lean::dec(x_19); +x_32 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_32, 0, x_4); +x_33 = lean::box(0); +x_34 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_35 = l_mjoin___rarg___closed__1; +x_36 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_34, x_35, x_32, x_33, x_2, x_3, x_27, x_24); +lean::dec(x_27); +lean::dec(x_32); +x_39 = lean::cnstr_get(x_36, 0); +lean::inc(x_39); +x_41 = lean::cnstr_get(x_36, 1); +lean::inc(x_41); +lean::dec(x_36); +x_44 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_29, x_39); +x_45 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_46 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_45, x_44); +if (lean::obj_tag(x_46) == 0) +{ +obj* x_47; obj* x_49; obj* x_52; obj* x_53; obj* x_55; obj* x_58; +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +x_49 = lean::cnstr_get(x_46, 2); +lean::inc(x_49); +lean::dec(x_46); +x_52 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_47, x_41); +x_53 = lean::cnstr_get(x_52, 0); +lean::inc(x_53); +x_55 = lean::cnstr_get(x_52, 1); +lean::inc(x_55); +lean::dec(x_52); +x_58 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_49, x_53); +x_13 = x_58; +x_14 = x_55; +goto lbl_15; } else { -uint8 x_19; -x_19 = lean::cnstr_get_scalar(x_16, sizeof(void*)*1); -if (x_19 == 0) +obj* x_59; uint8 x_61; obj* x_62; obj* x_63; obj* x_64; +x_59 = lean::cnstr_get(x_46, 0); +x_61 = lean::cnstr_get_scalar(x_46, sizeof(void*)*1); +if (lean::is_exclusive(x_46)) { + x_62 = x_46; +} else { + lean::inc(x_59); + lean::dec(x_46); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(1, 1, 1); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_59); +lean::cnstr_set_scalar(x_63, sizeof(void*)*1, x_61); +x_64 = x_63; +x_13 = x_64; +x_14 = x_41; +goto lbl_15; +} +} +else { -obj* x_20; obj* x_23; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; -x_20 = lean::cnstr_get(x_16, 0); -lean::inc(x_20); -lean::dec(x_16); -x_23 = lean::cnstr_get(x_20, 2); -lean::inc(x_23); -lean::dec(x_20); -x_26 = l_mjoin___rarg___closed__1; -x_27 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_27, 0, x_23); -lean::closure_set(x_27, 1, x_26); -x_28 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_28, 0, x_27); -x_29 = lean::box(0); -x_30 = lean::alloc_cnstr(0, 3, 0); +obj* x_66; obj* x_69; obj* x_71; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +lean::dec(x_4); +x_66 = lean::cnstr_get(x_18, 1); +lean::inc(x_66); +lean::dec(x_18); +x_69 = lean::cnstr_get(x_19, 1); +x_71 = lean::cnstr_get(x_19, 2); +if (lean::is_exclusive(x_19)) { + lean::cnstr_release(x_19, 0); + x_73 = x_19; +} else { + lean::inc(x_69); + lean::inc(x_71); + lean::dec(x_19); + x_73 = lean::box(0); +} +x_74 = lean::box(0); +x_75 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_73)) { + x_76 = lean::alloc_cnstr(0, 3, 0); +} else { + x_76 = x_73; +} +lean::cnstr_set(x_76, 0, x_74); +lean::cnstr_set(x_76, 1, x_69); +lean::cnstr_set(x_76, 2, x_75); +x_77 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_71, x_76); +x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_75, x_77); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_81; obj* x_84; obj* x_85; obj* x_87; obj* x_90; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +x_81 = lean::cnstr_get(x_78, 2); +lean::inc(x_81); +lean::dec(x_78); +x_84 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_79, x_66); +x_85 = lean::cnstr_get(x_84, 0); +lean::inc(x_85); +x_87 = lean::cnstr_get(x_84, 1); +lean::inc(x_87); +lean::dec(x_84); +x_90 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_81, x_85); +x_13 = x_90; +x_14 = x_87; +goto lbl_15; +} +else +{ +obj* x_91; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; +x_91 = lean::cnstr_get(x_78, 0); +x_93 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); +if (lean::is_exclusive(x_78)) { + x_94 = x_78; +} else { + lean::inc(x_91); + lean::dec(x_78); + x_94 = lean::box(0); +} +if (lean::is_scalar(x_94)) { + x_95 = lean::alloc_cnstr(1, 1, 1); +} else { + x_95 = x_94; +} +lean::cnstr_set(x_95, 0, x_91); +lean::cnstr_set_scalar(x_95, sizeof(void*)*1, x_93); +x_96 = x_95; +x_13 = x_96; +x_14 = x_66; +goto lbl_15; +} +} +} +else +{ +obj* x_98; obj* x_101; uint8 x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; +lean::dec(x_4); +x_98 = lean::cnstr_get(x_18, 1); +lean::inc(x_98); +lean::dec(x_18); +x_101 = lean::cnstr_get(x_19, 0); +x_103 = lean::cnstr_get_scalar(x_19, sizeof(void*)*1); +if (lean::is_exclusive(x_19)) { + x_104 = x_19; +} else { + lean::inc(x_101); + lean::dec(x_19); + x_104 = lean::box(0); +} +if (lean::is_scalar(x_104)) { + x_105 = lean::alloc_cnstr(1, 1, 1); +} else { + x_105 = x_104; +} +lean::cnstr_set(x_105, 0, x_101); +lean::cnstr_set_scalar(x_105, sizeof(void*)*1, x_103); +x_106 = x_105; +x_107 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_108 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_107, x_106); +if (lean::obj_tag(x_108) == 0) +{ +obj* x_109; obj* x_111; obj* x_114; obj* x_115; obj* x_117; obj* x_120; +x_109 = lean::cnstr_get(x_108, 1); +lean::inc(x_109); +x_111 = lean::cnstr_get(x_108, 2); +lean::inc(x_111); +lean::dec(x_108); +x_114 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_109, x_98); +x_115 = lean::cnstr_get(x_114, 0); +lean::inc(x_115); +x_117 = lean::cnstr_get(x_114, 1); +lean::inc(x_117); +lean::dec(x_114); +x_120 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_111, x_115); +x_13 = x_120; +x_14 = x_117; +goto lbl_15; +} +else +{ +obj* x_121; uint8 x_123; obj* x_124; obj* x_125; obj* x_126; +x_121 = lean::cnstr_get(x_108, 0); +x_123 = lean::cnstr_get_scalar(x_108, sizeof(void*)*1); +if (lean::is_exclusive(x_108)) { + x_124 = x_108; +} else { + lean::inc(x_121); + lean::dec(x_108); + x_124 = lean::box(0); +} +if (lean::is_scalar(x_124)) { + x_125 = lean::alloc_cnstr(1, 1, 1); +} else { + x_125 = x_124; +} +lean::cnstr_set(x_125, 0, x_121); +lean::cnstr_set_scalar(x_125, sizeof(void*)*1, x_123); +x_126 = x_125; +x_13 = x_126; +x_14 = x_98; +goto lbl_15; +} +} +lbl_15: +{ +if (lean::obj_tag(x_13) == 0) +{ +obj* x_127; obj* x_129; obj* x_131; obj* x_133; obj* x_135; +x_127 = lean::cnstr_get(x_13, 1); +x_129 = lean::cnstr_get(x_13, 2); +if (lean::is_exclusive(x_13)) { + lean::cnstr_release(x_13, 0); + lean::cnstr_set(x_13, 1, lean::box(0)); + lean::cnstr_set(x_13, 2, lean::box(0)); + x_131 = x_13; +} else { + lean::inc(x_127); + lean::inc(x_129); + lean::dec(x_13); + x_131 = lean::box(0); +} +lean::inc(x_127); +x_133 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_12, x_2, x_3, x_127, x_14); +lean::dec(x_12); +x_135 = lean::cnstr_get(x_133, 0); +lean::inc(x_135); +if (lean::obj_tag(x_135) == 0) +{ +obj* x_139; obj* x_141; obj* x_142; obj* x_143; +lean::dec(x_131); +lean::dec(x_127); +x_139 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_141 = x_133; +} else { + lean::inc(x_139); + lean::dec(x_133); + x_141 = lean::box(0); +} +x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_141)) { + x_143 = lean::alloc_cnstr(0, 2, 0); +} else { + x_143 = x_141; +} +lean::cnstr_set(x_143, 0, x_142); +lean::cnstr_set(x_143, 1, x_139); +return x_143; +} +else +{ +uint8 x_144; +x_144 = lean::cnstr_get_scalar(x_135, sizeof(void*)*1); +if (x_144 == 0) +{ +obj* x_145; obj* x_147; obj* x_148; obj* x_151; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; +x_145 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_147 = x_133; +} else { + lean::inc(x_145); + lean::dec(x_133); + x_147 = lean::box(0); +} +x_148 = lean::cnstr_get(x_135, 0); +lean::inc(x_148); +lean::dec(x_135); +x_151 = lean::cnstr_get(x_148, 2); +lean::inc(x_151); +lean::dec(x_148); +x_154 = l_mjoin___rarg___closed__1; +x_155 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_155, 0, x_151); +lean::closure_set(x_155, 1, x_154); +x_156 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_156, 0, x_155); +x_157 = lean::box(0); +if (lean::is_scalar(x_131)) { + x_158 = lean::alloc_cnstr(0, 3, 0); +} else { + x_158 = x_131; +} +lean::cnstr_set(x_158, 0, x_157); +lean::cnstr_set(x_158, 1, x_127); +lean::cnstr_set(x_158, 2, x_156); +x_159 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_158); +if (lean::is_scalar(x_147)) { + x_160 = lean::alloc_cnstr(0, 2, 0); +} else { + x_160 = x_147; +} +lean::cnstr_set(x_160, 0, x_159); +lean::cnstr_set(x_160, 1, x_145); +return x_160; +} +else +{ +obj* x_163; obj* x_165; obj* x_166; obj* x_167; +lean::dec(x_131); +lean::dec(x_127); +x_163 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_165 = x_133; +} else { + lean::inc(x_163); + lean::dec(x_133); + x_165 = lean::box(0); +} +x_166 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_165)) { + x_167 = lean::alloc_cnstr(0, 2, 0); +} else { + x_167 = x_165; +} +lean::cnstr_set(x_167, 0, x_166); +lean::cnstr_set(x_167, 1, x_163); +return x_167; +} +} +} +else +{ +obj* x_170; uint8 x_172; obj* x_173; obj* x_174; obj* x_175; obj* x_176; +lean::dec(x_0); +lean::dec(x_12); +x_170 = lean::cnstr_get(x_13, 0); +x_172 = lean::cnstr_get_scalar(x_13, sizeof(void*)*1); +if (lean::is_exclusive(x_13)) { + x_173 = x_13; +} else { + lean::inc(x_170); + lean::dec(x_13); + x_173 = lean::box(0); +} +if (lean::is_scalar(x_173)) { + x_174 = lean::alloc_cnstr(1, 1, 1); +} else { + x_174 = x_173; +} +lean::cnstr_set(x_174, 0, x_170); +lean::cnstr_set_scalar(x_174, sizeof(void*)*1, x_172); +x_175 = x_174; +x_176 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_176, 0, x_175); +lean::cnstr_set(x_176, 1, x_14); +return x_176; +} +} +} +else +{ +obj* x_178; obj* x_179; +lean::inc(x_4); +x_178 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0, x_2, x_3, x_4, x_5); +x_179 = lean::cnstr_get(x_178, 0); +lean::inc(x_179); +if (lean::obj_tag(x_179) == 0) +{ +obj* x_181; uint8 x_183; +x_181 = lean::cnstr_get(x_179, 0); +lean::inc(x_181); +x_183 = lean::unbox(x_181); +if (x_183 == 0) +{ +obj* x_184; obj* x_187; obj* x_189; obj* x_192; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_199; obj* x_201; obj* x_204; obj* x_205; obj* x_206; +x_184 = lean::cnstr_get(x_178, 1); +lean::inc(x_184); +lean::dec(x_178); +x_187 = lean::cnstr_get(x_179, 1); +lean::inc(x_187); +x_189 = lean::cnstr_get(x_179, 2); +lean::inc(x_189); +lean::dec(x_179); +x_192 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_192, 0, x_4); +x_193 = lean::box(0); +x_194 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_195 = l_mjoin___rarg___closed__1; +x_196 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_194, x_195, x_192, x_193, x_2, x_3, x_187, x_184); +lean::dec(x_187); +lean::dec(x_192); +x_199 = lean::cnstr_get(x_196, 0); +lean::inc(x_199); +x_201 = lean::cnstr_get(x_196, 1); +lean::inc(x_201); +lean::dec(x_196); +x_204 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_189, x_199); +x_205 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_206 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_205, x_204); +if (lean::obj_tag(x_206) == 0) +{ +obj* x_207; obj* x_209; obj* x_212; obj* x_213; obj* x_215; obj* x_218; +x_207 = lean::cnstr_get(x_206, 1); +lean::inc(x_207); +x_209 = lean::cnstr_get(x_206, 2); +lean::inc(x_209); +lean::dec(x_206); +x_212 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_207, x_201); +x_213 = lean::cnstr_get(x_212, 0); +lean::inc(x_213); +x_215 = lean::cnstr_get(x_212, 1); +lean::inc(x_215); +lean::dec(x_212); +x_218 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_209, x_213); +x_6 = x_218; +x_7 = x_215; +goto lbl_8; +} +else +{ +obj* x_219; uint8 x_221; obj* x_222; obj* x_223; obj* x_224; +x_219 = lean::cnstr_get(x_206, 0); +x_221 = lean::cnstr_get_scalar(x_206, sizeof(void*)*1); +if (lean::is_exclusive(x_206)) { + x_222 = x_206; +} else { + lean::inc(x_219); + lean::dec(x_206); + x_222 = lean::box(0); +} +if (lean::is_scalar(x_222)) { + x_223 = lean::alloc_cnstr(1, 1, 1); +} else { + x_223 = x_222; +} +lean::cnstr_set(x_223, 0, x_219); +lean::cnstr_set_scalar(x_223, sizeof(void*)*1, x_221); +x_224 = x_223; +x_6 = x_224; +x_7 = x_201; +goto lbl_8; +} +} +else +{ +obj* x_226; obj* x_229; obj* x_231; obj* x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; +lean::dec(x_4); +x_226 = lean::cnstr_get(x_178, 1); +lean::inc(x_226); +lean::dec(x_178); +x_229 = lean::cnstr_get(x_179, 1); +x_231 = lean::cnstr_get(x_179, 2); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + x_233 = x_179; +} else { + lean::inc(x_229); + lean::inc(x_231); + lean::dec(x_179); + x_233 = lean::box(0); +} +x_234 = lean::box(0); +x_235 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_233)) { + x_236 = lean::alloc_cnstr(0, 3, 0); +} else { + x_236 = x_233; +} +lean::cnstr_set(x_236, 0, x_234); +lean::cnstr_set(x_236, 1, x_229); +lean::cnstr_set(x_236, 2, x_235); +x_237 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_231, x_236); +x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_235, x_237); +if (lean::obj_tag(x_238) == 0) +{ +obj* x_239; obj* x_241; obj* x_244; obj* x_245; obj* x_247; obj* x_250; +x_239 = lean::cnstr_get(x_238, 1); +lean::inc(x_239); +x_241 = lean::cnstr_get(x_238, 2); +lean::inc(x_241); +lean::dec(x_238); +x_244 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_239, x_226); +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); +x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_241, x_245); +x_6 = x_250; +x_7 = x_247; +goto lbl_8; +} +else +{ +obj* x_251; uint8 x_253; obj* x_254; obj* x_255; obj* x_256; +x_251 = lean::cnstr_get(x_238, 0); +x_253 = lean::cnstr_get_scalar(x_238, sizeof(void*)*1); +if (lean::is_exclusive(x_238)) { + x_254 = x_238; +} else { + lean::inc(x_251); + lean::dec(x_238); + x_254 = lean::box(0); +} +if (lean::is_scalar(x_254)) { + x_255 = lean::alloc_cnstr(1, 1, 1); +} else { + x_255 = x_254; +} +lean::cnstr_set(x_255, 0, x_251); +lean::cnstr_set_scalar(x_255, sizeof(void*)*1, x_253); +x_256 = x_255; +x_6 = x_256; +x_7 = x_226; +goto lbl_8; +} +} +} +else +{ +obj* x_258; obj* x_261; uint8 x_263; obj* x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; +lean::dec(x_4); +x_258 = lean::cnstr_get(x_178, 1); +lean::inc(x_258); +lean::dec(x_178); +x_261 = lean::cnstr_get(x_179, 0); +x_263 = lean::cnstr_get_scalar(x_179, sizeof(void*)*1); +if (lean::is_exclusive(x_179)) { + x_264 = x_179; +} else { + lean::inc(x_261); + lean::dec(x_179); + x_264 = lean::box(0); +} +if (lean::is_scalar(x_264)) { + x_265 = lean::alloc_cnstr(1, 1, 1); +} else { + x_265 = x_264; +} +lean::cnstr_set(x_265, 0, x_261); +lean::cnstr_set_scalar(x_265, sizeof(void*)*1, x_263); +x_266 = x_265; +x_267 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_268 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_267, x_266); +if (lean::obj_tag(x_268) == 0) +{ +obj* x_269; obj* x_271; obj* x_274; obj* x_275; obj* x_277; obj* x_280; +x_269 = lean::cnstr_get(x_268, 1); +lean::inc(x_269); +x_271 = lean::cnstr_get(x_268, 2); +lean::inc(x_271); +lean::dec(x_268); +x_274 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_269, x_258); +x_275 = lean::cnstr_get(x_274, 0); +lean::inc(x_275); +x_277 = lean::cnstr_get(x_274, 1); +lean::inc(x_277); +lean::dec(x_274); +x_280 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_271, x_275); +x_6 = x_280; +x_7 = x_277; +goto lbl_8; +} +else +{ +obj* x_281; uint8 x_283; obj* x_284; obj* x_285; obj* x_286; +x_281 = lean::cnstr_get(x_268, 0); +x_283 = lean::cnstr_get_scalar(x_268, sizeof(void*)*1); +if (lean::is_exclusive(x_268)) { + x_284 = x_268; +} else { + lean::inc(x_281); + lean::dec(x_268); + x_284 = lean::box(0); +} +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); +} else { + x_285 = x_284; +} +lean::cnstr_set(x_285, 0, x_281); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_283); +x_286 = x_285; +x_6 = x_286; +x_7 = x_258; +goto lbl_8; +} +} +} +lbl_8: +{ +if (lean::obj_tag(x_6) == 0) +{ +obj* x_287; obj* x_289; obj* x_291; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; +x_287 = lean::cnstr_get(x_6, 1); +x_289 = lean::cnstr_get(x_6, 2); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_291 = x_6; +} else { + lean::inc(x_287); + lean::inc(x_289); + lean::dec(x_6); + x_291 = lean::box(0); +} +x_292 = lean::box(0); +x_293 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_291)) { + x_294 = lean::alloc_cnstr(0, 3, 0); +} else { + x_294 = x_291; +} +lean::cnstr_set(x_294, 0, x_292); +lean::cnstr_set(x_294, 1, x_287); +lean::cnstr_set(x_294, 2, x_293); +x_295 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_289, x_294); +x_296 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_296, 0, x_295); +lean::cnstr_set(x_296, 1, x_7); +return x_296; +} +else +{ +obj* x_297; uint8 x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; +x_297 = lean::cnstr_get(x_6, 0); +x_299 = lean::cnstr_get_scalar(x_6, sizeof(void*)*1); +if (lean::is_exclusive(x_6)) { + x_300 = x_6; +} else { + lean::inc(x_297); + lean::dec(x_6); + x_300 = lean::box(0); +} +if (lean::is_scalar(x_300)) { + x_301 = lean::alloc_cnstr(1, 1, 1); +} else { + x_301 = x_300; +} +lean::cnstr_set(x_301, 0, x_297); +lean::cnstr_set_scalar(x_301, sizeof(void*)*1, x_299); +x_302 = x_301; +x_303 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_303, 0, x_302); +lean::cnstr_set(x_303, 1, x_7); +return x_303; +} +} +} +} +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_14; obj* x_15; +x_5 = l_string_iterator_remaining___main(x_3); +lean::inc(x_3); +x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_5, x_1, x_2, x_3, x_4); +lean::dec(x_5); +x_9 = lean::cnstr_get(x_7, 0); +x_11 = lean::cnstr_get(x_7, 1); +if (lean::is_exclusive(x_7)) { + lean::cnstr_set(x_7, 0, lean::box(0)); + lean::cnstr_set(x_7, 1, lean::box(0)); + x_13 = x_7; +} else { + lean::inc(x_9); + lean::inc(x_11); + lean::dec(x_7); + x_13 = lean::box(0); +} +x_14 = l_lean_parser_finish__comment__block___closed__2; +x_15 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_9); +if (lean::obj_tag(x_15) == 0) +{ +obj* x_17; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_17 = lean::alloc_cnstr(0, 2, 0); +} else { + x_17 = x_13; +} +lean::cnstr_set(x_17, 0, x_15); +lean::cnstr_set(x_17, 1, x_11); +return x_17; +} +else +{ +uint8 x_18; +x_18 = lean::cnstr_get_scalar(x_15, sizeof(void*)*1); +if (x_18 == 0) +{ +obj* x_19; obj* x_22; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_19 = lean::cnstr_get(x_15, 0); +lean::inc(x_19); +lean::dec(x_15); +x_22 = lean::cnstr_get(x_19, 2); +lean::inc(x_22); +lean::dec(x_19); +x_25 = l_mjoin___rarg___closed__1; +x_26 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_26, 0, x_22); +lean::closure_set(x_26, 1, x_25); +x_27 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_27, 0, x_26); +x_28 = lean::box(0); +x_29 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_29, 0, x_28); +lean::cnstr_set(x_29, 1, x_3); +lean::cnstr_set(x_29, 2, x_27); +if (lean::is_scalar(x_13)) { + x_30 = lean::alloc_cnstr(0, 2, 0); +} else { + x_30 = x_13; +} lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_4); -lean::cnstr_set(x_30, 2, x_28); -if (lean::is_scalar(x_14)) { - x_31 = lean::alloc_cnstr(0, 2, 0); -} else { - x_31 = x_14; -} -lean::cnstr_set(x_31, 0, x_30); -lean::cnstr_set(x_31, 1, x_12); -return x_31; +lean::cnstr_set(x_30, 1, x_11); +return x_30; } else { -obj* x_33; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_33 = lean::alloc_cnstr(0, 2, 0); +obj* x_32; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_32 = lean::alloc_cnstr(0, 2, 0); } else { - x_33 = x_14; + x_32 = x_13; } -lean::cnstr_set(x_33, 0, x_16); -lean::cnstr_set(x_33, 1, x_12); -return x_33; +lean::cnstr_set(x_32, 0, x_15); +lean::cnstr_set(x_32, 1, x_11); +return x_32; } } } @@ -2743,763 +2722,763 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_par return x_1; } } -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_7; obj* x_8; obj* x_10; uint8 x_11; -x_10 = lean::mk_nat_obj(0u); -x_11 = lean::nat_dec_eq(x_2, x_10); -if (x_11 == 0) +obj* x_6; obj* x_7; obj* x_9; uint8 x_10; +x_9 = lean::mk_nat_obj(0u); +x_10 = lean::nat_dec_eq(x_1, x_9); +if (x_10 == 0) { -obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_19; obj* x_20; -x_12 = lean::mk_nat_obj(1u); -x_13 = lean::nat_sub(x_2, x_12); -lean::inc(x_5); -lean::inc(x_1); -x_19 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(x_1, x_3, x_4, x_5, x_6); -x_20 = lean::cnstr_get(x_19, 0); -lean::inc(x_20); -if (lean::obj_tag(x_20) == 0) -{ -obj* x_22; uint8 x_24; -x_22 = lean::cnstr_get(x_20, 0); -lean::inc(x_22); -x_24 = lean::unbox(x_22); -if (x_24 == 0) -{ -obj* x_25; obj* x_28; obj* x_30; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_40; obj* x_42; obj* x_45; obj* x_46; obj* x_47; -x_25 = lean::cnstr_get(x_19, 1); -lean::inc(x_25); -lean::dec(x_19); -x_28 = lean::cnstr_get(x_20, 1); -lean::inc(x_28); -x_30 = lean::cnstr_get(x_20, 2); -lean::inc(x_30); -lean::dec(x_20); -x_33 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_33, 0, x_5); -x_34 = lean::box(0); -x_35 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_36 = l_mjoin___rarg___closed__1; -x_37 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_35, x_36, x_33, x_34, x_3, x_4, x_28, x_25); -lean::dec(x_28); -lean::dec(x_33); -x_40 = lean::cnstr_get(x_37, 0); -lean::inc(x_40); -x_42 = lean::cnstr_get(x_37, 1); -lean::inc(x_42); -lean::dec(x_37); -x_45 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_30, x_40); -x_46 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_47 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_46, x_45); -if (lean::obj_tag(x_47) == 0) -{ -obj* x_48; obj* x_50; obj* x_53; obj* x_54; obj* x_56; obj* x_59; -x_48 = lean::cnstr_get(x_47, 1); -lean::inc(x_48); -x_50 = lean::cnstr_get(x_47, 2); -lean::inc(x_50); -lean::dec(x_47); -x_53 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_48, x_42); -x_54 = lean::cnstr_get(x_53, 0); -lean::inc(x_54); -x_56 = lean::cnstr_get(x_53, 1); -lean::inc(x_56); -lean::dec(x_53); -x_59 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_50, x_54); -x_14 = x_59; -x_15 = x_56; -goto lbl_16; -} -else -{ -obj* x_60; uint8 x_62; obj* x_63; obj* x_64; obj* x_65; -x_60 = lean::cnstr_get(x_47, 0); -x_62 = lean::cnstr_get_scalar(x_47, sizeof(void*)*1); -if (lean::is_exclusive(x_47)) { - x_63 = x_47; -} else { - lean::inc(x_60); - lean::dec(x_47); - x_63 = lean::box(0); -} -if (lean::is_scalar(x_63)) { - x_64 = lean::alloc_cnstr(1, 1, 1); -} else { - x_64 = x_63; -} -lean::cnstr_set(x_64, 0, x_60); -lean::cnstr_set_scalar(x_64, sizeof(void*)*1, x_62); -x_65 = x_64; -x_14 = x_65; -x_15 = x_42; -goto lbl_16; -} -} -else -{ -obj* x_67; obj* x_70; obj* x_72; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; -lean::dec(x_5); -x_67 = lean::cnstr_get(x_19, 1); -lean::inc(x_67); -lean::dec(x_19); -x_70 = lean::cnstr_get(x_20, 1); -x_72 = lean::cnstr_get(x_20, 2); -if (lean::is_exclusive(x_20)) { - lean::cnstr_release(x_20, 0); - x_74 = x_20; -} else { - lean::inc(x_70); - lean::inc(x_72); - lean::dec(x_20); - x_74 = lean::box(0); -} -x_75 = lean::box(0); -x_76 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_74)) { - x_77 = lean::alloc_cnstr(0, 3, 0); -} else { - x_77 = x_74; -} -lean::cnstr_set(x_77, 0, x_75); -lean::cnstr_set(x_77, 1, x_70); -lean::cnstr_set(x_77, 2, x_76); -x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_72, x_77); -x_79 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_76, x_78); -if (lean::obj_tag(x_79) == 0) -{ -obj* x_80; obj* x_82; obj* x_85; obj* x_86; obj* x_88; obj* x_91; -x_80 = lean::cnstr_get(x_79, 1); -lean::inc(x_80); -x_82 = lean::cnstr_get(x_79, 2); -lean::inc(x_82); -lean::dec(x_79); -x_85 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_80, x_67); -x_86 = lean::cnstr_get(x_85, 0); -lean::inc(x_86); -x_88 = lean::cnstr_get(x_85, 1); -lean::inc(x_88); -lean::dec(x_85); -x_91 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_82, x_86); -x_14 = x_91; -x_15 = x_88; -goto lbl_16; -} -else -{ -obj* x_92; uint8 x_94; obj* x_95; obj* x_96; obj* x_97; -x_92 = lean::cnstr_get(x_79, 0); -x_94 = lean::cnstr_get_scalar(x_79, sizeof(void*)*1); -if (lean::is_exclusive(x_79)) { - x_95 = x_79; -} else { - lean::inc(x_92); - lean::dec(x_79); - x_95 = lean::box(0); -} -if (lean::is_scalar(x_95)) { - x_96 = lean::alloc_cnstr(1, 1, 1); -} else { - x_96 = x_95; -} -lean::cnstr_set(x_96, 0, x_92); -lean::cnstr_set_scalar(x_96, sizeof(void*)*1, x_94); -x_97 = x_96; -x_14 = x_97; -x_15 = x_67; -goto lbl_16; -} -} -} -else -{ -obj* x_99; obj* x_102; uint8 x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; -lean::dec(x_5); -x_99 = lean::cnstr_get(x_19, 1); -lean::inc(x_99); -lean::dec(x_19); -x_102 = lean::cnstr_get(x_20, 0); -x_104 = lean::cnstr_get_scalar(x_20, sizeof(void*)*1); -if (lean::is_exclusive(x_20)) { - x_105 = x_20; -} else { - lean::inc(x_102); - lean::dec(x_20); - x_105 = lean::box(0); -} -if (lean::is_scalar(x_105)) { - x_106 = lean::alloc_cnstr(1, 1, 1); -} else { - x_106 = x_105; -} -lean::cnstr_set(x_106, 0, x_102); -lean::cnstr_set_scalar(x_106, sizeof(void*)*1, x_104); -x_107 = x_106; -x_108 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_109 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_108, x_107); -if (lean::obj_tag(x_109) == 0) -{ -obj* x_110; obj* x_112; obj* x_115; obj* x_116; obj* x_118; obj* x_121; -x_110 = lean::cnstr_get(x_109, 1); -lean::inc(x_110); -x_112 = lean::cnstr_get(x_109, 2); -lean::inc(x_112); -lean::dec(x_109); -x_115 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_110, x_99); -x_116 = lean::cnstr_get(x_115, 0); -lean::inc(x_116); -x_118 = lean::cnstr_get(x_115, 1); -lean::inc(x_118); -lean::dec(x_115); -x_121 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_112, x_116); -x_14 = x_121; -x_15 = x_118; -goto lbl_16; -} -else -{ -obj* x_122; uint8 x_124; obj* x_125; obj* x_126; obj* x_127; -x_122 = lean::cnstr_get(x_109, 0); -x_124 = lean::cnstr_get_scalar(x_109, sizeof(void*)*1); -if (lean::is_exclusive(x_109)) { - x_125 = x_109; -} else { - lean::inc(x_122); - lean::dec(x_109); - x_125 = lean::box(0); -} -if (lean::is_scalar(x_125)) { - x_126 = lean::alloc_cnstr(1, 1, 1); -} else { - x_126 = x_125; -} -lean::cnstr_set(x_126, 0, x_122); -lean::cnstr_set_scalar(x_126, sizeof(void*)*1, x_124); -x_127 = x_126; -x_14 = x_127; -x_15 = x_99; -goto lbl_16; -} -} -lbl_16: -{ -if (lean::obj_tag(x_14) == 0) -{ -obj* x_128; obj* x_130; obj* x_132; obj* x_134; obj* x_136; -x_128 = lean::cnstr_get(x_14, 1); -x_130 = lean::cnstr_get(x_14, 2); -if (lean::is_exclusive(x_14)) { - lean::cnstr_release(x_14, 0); - lean::cnstr_set(x_14, 1, lean::box(0)); - lean::cnstr_set(x_14, 2, lean::box(0)); - x_132 = x_14; -} else { - lean::inc(x_128); - lean::inc(x_130); - lean::dec(x_14); - x_132 = lean::box(0); -} -lean::inc(x_128); -x_134 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_1, x_13, x_3, x_4, x_128, x_15); -lean::dec(x_13); -x_136 = lean::cnstr_get(x_134, 0); -lean::inc(x_136); -if (lean::obj_tag(x_136) == 0) -{ -obj* x_140; obj* x_142; obj* x_143; obj* x_144; -lean::dec(x_132); -lean::dec(x_128); -x_140 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_142 = x_134; -} else { - lean::inc(x_140); - lean::dec(x_134); - x_142 = lean::box(0); -} -x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_142)) { - x_144 = lean::alloc_cnstr(0, 2, 0); -} else { - x_144 = x_142; -} -lean::cnstr_set(x_144, 0, x_143); -lean::cnstr_set(x_144, 1, x_140); -return x_144; -} -else -{ -uint8 x_145; -x_145 = lean::cnstr_get_scalar(x_136, sizeof(void*)*1); -if (x_145 == 0) -{ -obj* x_146; obj* x_148; obj* x_149; obj* x_152; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; obj* x_161; -x_146 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_148 = x_134; -} else { - lean::inc(x_146); - lean::dec(x_134); - x_148 = lean::box(0); -} -x_149 = lean::cnstr_get(x_136, 0); -lean::inc(x_149); -lean::dec(x_136); -x_152 = lean::cnstr_get(x_149, 2); -lean::inc(x_152); -lean::dec(x_149); -x_155 = l_mjoin___rarg___closed__1; -x_156 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_156, 0, x_152); -lean::closure_set(x_156, 1, x_155); -x_157 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_157, 0, x_156); -x_158 = lean::box(0); -if (lean::is_scalar(x_132)) { - x_159 = lean::alloc_cnstr(0, 3, 0); -} else { - x_159 = x_132; -} -lean::cnstr_set(x_159, 0, x_158); -lean::cnstr_set(x_159, 1, x_128); -lean::cnstr_set(x_159, 2, x_157); -x_160 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_159); -if (lean::is_scalar(x_148)) { - x_161 = lean::alloc_cnstr(0, 2, 0); -} else { - x_161 = x_148; -} -lean::cnstr_set(x_161, 0, x_160); -lean::cnstr_set(x_161, 1, x_146); -return x_161; -} -else -{ -obj* x_164; obj* x_166; obj* x_167; obj* x_168; -lean::dec(x_132); -lean::dec(x_128); -x_164 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_166 = x_134; -} else { - lean::inc(x_164); - lean::dec(x_134); - x_166 = lean::box(0); -} -x_167 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_166)) { - x_168 = lean::alloc_cnstr(0, 2, 0); -} else { - x_168 = x_166; -} -lean::cnstr_set(x_168, 0, x_167); -lean::cnstr_set(x_168, 1, x_164); -return x_168; -} -} -} -else -{ -obj* x_171; uint8 x_173; obj* x_174; obj* x_175; obj* x_176; obj* x_177; -lean::dec(x_1); -lean::dec(x_13); -x_171 = lean::cnstr_get(x_14, 0); -x_173 = lean::cnstr_get_scalar(x_14, sizeof(void*)*1); -if (lean::is_exclusive(x_14)) { - x_174 = x_14; -} else { - lean::inc(x_171); - lean::dec(x_14); - x_174 = lean::box(0); -} -if (lean::is_scalar(x_174)) { - x_175 = lean::alloc_cnstr(1, 1, 1); -} else { - x_175 = x_174; -} -lean::cnstr_set(x_175, 0, x_171); -lean::cnstr_set_scalar(x_175, sizeof(void*)*1, x_173); -x_176 = x_175; -x_177 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_177, 0, x_176); -lean::cnstr_set(x_177, 1, x_15); -return x_177; -} -} -} -else -{ -obj* x_179; obj* x_180; -lean::inc(x_5); -x_179 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(x_1, x_3, x_4, x_5, x_6); -x_180 = lean::cnstr_get(x_179, 0); -lean::inc(x_180); -if (lean::obj_tag(x_180) == 0) -{ -obj* x_182; uint8 x_184; -x_182 = lean::cnstr_get(x_180, 0); -lean::inc(x_182); -x_184 = lean::unbox(x_182); -if (x_184 == 0) -{ -obj* x_185; obj* x_188; obj* x_190; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_200; obj* x_202; obj* x_205; obj* x_206; obj* x_207; -x_185 = lean::cnstr_get(x_179, 1); -lean::inc(x_185); -lean::dec(x_179); -x_188 = lean::cnstr_get(x_180, 1); -lean::inc(x_188); -x_190 = lean::cnstr_get(x_180, 2); -lean::inc(x_190); -lean::dec(x_180); -x_193 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_193, 0, x_5); -x_194 = lean::box(0); -x_195 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_196 = l_mjoin___rarg___closed__1; -x_197 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_195, x_196, x_193, x_194, x_3, x_4, x_188, x_185); -lean::dec(x_188); -lean::dec(x_193); -x_200 = lean::cnstr_get(x_197, 0); -lean::inc(x_200); -x_202 = lean::cnstr_get(x_197, 1); -lean::inc(x_202); -lean::dec(x_197); -x_205 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_190, x_200); -x_206 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_207 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_206, x_205); -if (lean::obj_tag(x_207) == 0) -{ -obj* x_208; obj* x_210; obj* x_213; obj* x_214; obj* x_216; obj* x_219; -x_208 = lean::cnstr_get(x_207, 1); -lean::inc(x_208); -x_210 = lean::cnstr_get(x_207, 2); -lean::inc(x_210); -lean::dec(x_207); -x_213 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_208, x_202); -x_214 = lean::cnstr_get(x_213, 0); -lean::inc(x_214); -x_216 = lean::cnstr_get(x_213, 1); -lean::inc(x_216); -lean::dec(x_213); -x_219 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_210, x_214); -x_7 = x_219; -x_8 = x_216; -goto lbl_9; -} -else -{ -obj* x_220; uint8 x_222; obj* x_223; obj* x_224; obj* x_225; -x_220 = lean::cnstr_get(x_207, 0); -x_222 = lean::cnstr_get_scalar(x_207, sizeof(void*)*1); -if (lean::is_exclusive(x_207)) { - x_223 = x_207; -} else { - lean::inc(x_220); - lean::dec(x_207); - x_223 = lean::box(0); -} -if (lean::is_scalar(x_223)) { - x_224 = lean::alloc_cnstr(1, 1, 1); -} else { - x_224 = x_223; -} -lean::cnstr_set(x_224, 0, x_220); -lean::cnstr_set_scalar(x_224, sizeof(void*)*1, x_222); -x_225 = x_224; -x_7 = x_225; -x_8 = x_202; -goto lbl_9; -} -} -else -{ -obj* x_227; obj* x_230; obj* x_232; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; obj* x_239; -lean::dec(x_5); -x_227 = lean::cnstr_get(x_179, 1); -lean::inc(x_227); -lean::dec(x_179); -x_230 = lean::cnstr_get(x_180, 1); -x_232 = lean::cnstr_get(x_180, 2); -if (lean::is_exclusive(x_180)) { - lean::cnstr_release(x_180, 0); - x_234 = x_180; -} else { - lean::inc(x_230); - lean::inc(x_232); - lean::dec(x_180); - x_234 = lean::box(0); -} -x_235 = lean::box(0); -x_236 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_234)) { - x_237 = lean::alloc_cnstr(0, 3, 0); -} else { - x_237 = x_234; -} -lean::cnstr_set(x_237, 0, x_235); -lean::cnstr_set(x_237, 1, x_230); -lean::cnstr_set(x_237, 2, x_236); -x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_232, x_237); -x_239 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_236, x_238); -if (lean::obj_tag(x_239) == 0) -{ -obj* x_240; obj* x_242; obj* x_245; obj* x_246; obj* x_248; obj* x_251; -x_240 = lean::cnstr_get(x_239, 1); -lean::inc(x_240); -x_242 = lean::cnstr_get(x_239, 2); -lean::inc(x_242); -lean::dec(x_239); -x_245 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_240, x_227); -x_246 = lean::cnstr_get(x_245, 0); -lean::inc(x_246); -x_248 = lean::cnstr_get(x_245, 1); -lean::inc(x_248); -lean::dec(x_245); -x_251 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_242, x_246); -x_7 = x_251; -x_8 = x_248; -goto lbl_9; -} -else -{ -obj* x_252; uint8 x_254; obj* x_255; obj* x_256; obj* x_257; -x_252 = lean::cnstr_get(x_239, 0); -x_254 = lean::cnstr_get_scalar(x_239, sizeof(void*)*1); -if (lean::is_exclusive(x_239)) { - x_255 = x_239; -} else { - lean::inc(x_252); - lean::dec(x_239); - x_255 = lean::box(0); -} -if (lean::is_scalar(x_255)) { - x_256 = lean::alloc_cnstr(1, 1, 1); -} else { - x_256 = x_255; -} -lean::cnstr_set(x_256, 0, x_252); -lean::cnstr_set_scalar(x_256, sizeof(void*)*1, x_254); -x_257 = x_256; -x_7 = x_257; -x_8 = x_227; -goto lbl_9; -} -} -} -else -{ -obj* x_259; obj* x_262; uint8 x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; obj* x_269; -lean::dec(x_5); -x_259 = lean::cnstr_get(x_179, 1); -lean::inc(x_259); -lean::dec(x_179); -x_262 = lean::cnstr_get(x_180, 0); -x_264 = lean::cnstr_get_scalar(x_180, sizeof(void*)*1); -if (lean::is_exclusive(x_180)) { - x_265 = x_180; -} else { - lean::inc(x_262); - lean::dec(x_180); - x_265 = lean::box(0); -} -if (lean::is_scalar(x_265)) { - x_266 = lean::alloc_cnstr(1, 1, 1); -} else { - x_266 = x_265; -} -lean::cnstr_set(x_266, 0, x_262); -lean::cnstr_set_scalar(x_266, sizeof(void*)*1, x_264); -x_267 = x_266; -x_268 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_269 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_268, x_267); -if (lean::obj_tag(x_269) == 0) -{ -obj* x_270; obj* x_272; obj* x_275; obj* x_276; obj* x_278; obj* x_281; -x_270 = lean::cnstr_get(x_269, 1); -lean::inc(x_270); -x_272 = lean::cnstr_get(x_269, 2); -lean::inc(x_272); -lean::dec(x_269); -x_275 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_270, x_259); -x_276 = lean::cnstr_get(x_275, 0); -lean::inc(x_276); -x_278 = lean::cnstr_get(x_275, 1); -lean::inc(x_278); -lean::dec(x_275); -x_281 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_272, x_276); -x_7 = x_281; -x_8 = x_278; -goto lbl_9; -} -else -{ -obj* x_282; uint8 x_284; obj* x_285; obj* x_286; obj* x_287; -x_282 = lean::cnstr_get(x_269, 0); -x_284 = lean::cnstr_get_scalar(x_269, sizeof(void*)*1); -if (lean::is_exclusive(x_269)) { - x_285 = x_269; -} else { - lean::inc(x_282); - lean::dec(x_269); - x_285 = lean::box(0); -} -if (lean::is_scalar(x_285)) { - x_286 = lean::alloc_cnstr(1, 1, 1); -} else { - x_286 = x_285; -} -lean::cnstr_set(x_286, 0, x_282); -lean::cnstr_set_scalar(x_286, sizeof(void*)*1, x_284); -x_287 = x_286; -x_7 = x_287; -x_8 = x_259; -goto lbl_9; -} -} -} -lbl_9: -{ -if (lean::obj_tag(x_7) == 0) -{ -obj* x_288; obj* x_290; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; -x_288 = lean::cnstr_get(x_7, 1); -x_290 = lean::cnstr_get(x_7, 2); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_292 = x_7; -} else { - lean::inc(x_288); - lean::inc(x_290); - lean::dec(x_7); - x_292 = lean::box(0); -} -x_293 = lean::box(0); -x_294 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_292)) { - x_295 = lean::alloc_cnstr(0, 3, 0); -} else { - x_295 = x_292; -} -lean::cnstr_set(x_295, 0, x_293); -lean::cnstr_set(x_295, 1, x_288); -lean::cnstr_set(x_295, 2, x_294); -x_296 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_290, x_295); -x_297 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_297, 0, x_296); -lean::cnstr_set(x_297, 1, x_8); -return x_297; -} -else -{ -obj* x_298; uint8 x_300; obj* x_301; obj* x_302; obj* x_303; obj* x_304; -x_298 = lean::cnstr_get(x_7, 0); -x_300 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_301 = x_7; -} else { - lean::inc(x_298); - lean::dec(x_7); - x_301 = lean::box(0); -} -if (lean::is_scalar(x_301)) { - x_302 = lean::alloc_cnstr(1, 1, 1); -} else { - x_302 = x_301; -} -lean::cnstr_set(x_302, 0, x_298); -lean::cnstr_set_scalar(x_302, sizeof(void*)*1, x_300); -x_303 = x_302; -x_304 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_304, 0, x_303); -lean::cnstr_set(x_304, 1, x_8); -return x_304; -} -} -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { -_start: -{ -obj* x_6; obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_15; obj* x_16; -x_6 = l_string_iterator_remaining___main(x_4); +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_18; obj* x_19; +x_11 = lean::mk_nat_obj(1u); +x_12 = lean::nat_sub(x_1, x_11); lean::inc(x_4); -x_8 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_1, x_6, x_2, x_3, x_4, x_5); -lean::dec(x_6); -x_10 = lean::cnstr_get(x_8, 0); -x_12 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { - lean::cnstr_set(x_8, 0, lean::box(0)); - lean::cnstr_set(x_8, 1, lean::box(0)); - x_14 = x_8; -} else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_8); - x_14 = lean::box(0); -} -x_15 = l_lean_parser_finish__comment__block___closed__2; -x_16 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_10); -if (lean::obj_tag(x_16) == 0) +lean::inc(x_0); +x_18 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0, x_2, x_3, x_4, x_5); +x_19 = lean::cnstr_get(x_18, 0); +lean::inc(x_19); +if (lean::obj_tag(x_19) == 0) { -obj* x_18; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_18 = lean::alloc_cnstr(0, 2, 0); -} else { - x_18 = x_14; -} -lean::cnstr_set(x_18, 0, x_16); -lean::cnstr_set(x_18, 1, x_12); -return x_18; +obj* x_21; uint8 x_23; +x_21 = lean::cnstr_get(x_19, 0); +lean::inc(x_21); +x_23 = lean::unbox(x_21); +if (x_23 == 0) +{ +obj* x_24; obj* x_27; obj* x_29; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_39; obj* x_41; obj* x_44; obj* x_45; obj* x_46; +x_24 = lean::cnstr_get(x_18, 1); +lean::inc(x_24); +lean::dec(x_18); +x_27 = lean::cnstr_get(x_19, 1); +lean::inc(x_27); +x_29 = lean::cnstr_get(x_19, 2); +lean::inc(x_29); +lean::dec(x_19); +x_32 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_32, 0, x_4); +x_33 = lean::box(0); +x_34 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_35 = l_mjoin___rarg___closed__1; +x_36 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_34, x_35, x_32, x_33, x_2, x_3, x_27, x_24); +lean::dec(x_27); +lean::dec(x_32); +x_39 = lean::cnstr_get(x_36, 0); +lean::inc(x_39); +x_41 = lean::cnstr_get(x_36, 1); +lean::inc(x_41); +lean::dec(x_36); +x_44 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_29, x_39); +x_45 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_46 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_45, x_44); +if (lean::obj_tag(x_46) == 0) +{ +obj* x_47; obj* x_49; obj* x_52; obj* x_53; obj* x_55; obj* x_58; +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +x_49 = lean::cnstr_get(x_46, 2); +lean::inc(x_49); +lean::dec(x_46); +x_52 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_47, x_41); +x_53 = lean::cnstr_get(x_52, 0); +lean::inc(x_53); +x_55 = lean::cnstr_get(x_52, 1); +lean::inc(x_55); +lean::dec(x_52); +x_58 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_49, x_53); +x_13 = x_58; +x_14 = x_55; +goto lbl_15; } else { -uint8 x_19; -x_19 = lean::cnstr_get_scalar(x_16, sizeof(void*)*1); -if (x_19 == 0) +obj* x_59; uint8 x_61; obj* x_62; obj* x_63; obj* x_64; +x_59 = lean::cnstr_get(x_46, 0); +x_61 = lean::cnstr_get_scalar(x_46, sizeof(void*)*1); +if (lean::is_exclusive(x_46)) { + x_62 = x_46; +} else { + lean::inc(x_59); + lean::dec(x_46); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(1, 1, 1); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_59); +lean::cnstr_set_scalar(x_63, sizeof(void*)*1, x_61); +x_64 = x_63; +x_13 = x_64; +x_14 = x_41; +goto lbl_15; +} +} +else { -obj* x_20; obj* x_23; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; -x_20 = lean::cnstr_get(x_16, 0); -lean::inc(x_20); -lean::dec(x_16); -x_23 = lean::cnstr_get(x_20, 2); -lean::inc(x_23); -lean::dec(x_20); -x_26 = l_mjoin___rarg___closed__1; -x_27 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_27, 0, x_23); -lean::closure_set(x_27, 1, x_26); -x_28 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_28, 0, x_27); -x_29 = lean::box(0); -x_30 = lean::alloc_cnstr(0, 3, 0); +obj* x_66; obj* x_69; obj* x_71; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +lean::dec(x_4); +x_66 = lean::cnstr_get(x_18, 1); +lean::inc(x_66); +lean::dec(x_18); +x_69 = lean::cnstr_get(x_19, 1); +x_71 = lean::cnstr_get(x_19, 2); +if (lean::is_exclusive(x_19)) { + lean::cnstr_release(x_19, 0); + x_73 = x_19; +} else { + lean::inc(x_69); + lean::inc(x_71); + lean::dec(x_19); + x_73 = lean::box(0); +} +x_74 = lean::box(0); +x_75 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_73)) { + x_76 = lean::alloc_cnstr(0, 3, 0); +} else { + x_76 = x_73; +} +lean::cnstr_set(x_76, 0, x_74); +lean::cnstr_set(x_76, 1, x_69); +lean::cnstr_set(x_76, 2, x_75); +x_77 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_71, x_76); +x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_75, x_77); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_81; obj* x_84; obj* x_85; obj* x_87; obj* x_90; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +x_81 = lean::cnstr_get(x_78, 2); +lean::inc(x_81); +lean::dec(x_78); +x_84 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_79, x_66); +x_85 = lean::cnstr_get(x_84, 0); +lean::inc(x_85); +x_87 = lean::cnstr_get(x_84, 1); +lean::inc(x_87); +lean::dec(x_84); +x_90 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_81, x_85); +x_13 = x_90; +x_14 = x_87; +goto lbl_15; +} +else +{ +obj* x_91; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; +x_91 = lean::cnstr_get(x_78, 0); +x_93 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); +if (lean::is_exclusive(x_78)) { + x_94 = x_78; +} else { + lean::inc(x_91); + lean::dec(x_78); + x_94 = lean::box(0); +} +if (lean::is_scalar(x_94)) { + x_95 = lean::alloc_cnstr(1, 1, 1); +} else { + x_95 = x_94; +} +lean::cnstr_set(x_95, 0, x_91); +lean::cnstr_set_scalar(x_95, sizeof(void*)*1, x_93); +x_96 = x_95; +x_13 = x_96; +x_14 = x_66; +goto lbl_15; +} +} +} +else +{ +obj* x_98; obj* x_101; uint8 x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; +lean::dec(x_4); +x_98 = lean::cnstr_get(x_18, 1); +lean::inc(x_98); +lean::dec(x_18); +x_101 = lean::cnstr_get(x_19, 0); +x_103 = lean::cnstr_get_scalar(x_19, sizeof(void*)*1); +if (lean::is_exclusive(x_19)) { + x_104 = x_19; +} else { + lean::inc(x_101); + lean::dec(x_19); + x_104 = lean::box(0); +} +if (lean::is_scalar(x_104)) { + x_105 = lean::alloc_cnstr(1, 1, 1); +} else { + x_105 = x_104; +} +lean::cnstr_set(x_105, 0, x_101); +lean::cnstr_set_scalar(x_105, sizeof(void*)*1, x_103); +x_106 = x_105; +x_107 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_108 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_107, x_106); +if (lean::obj_tag(x_108) == 0) +{ +obj* x_109; obj* x_111; obj* x_114; obj* x_115; obj* x_117; obj* x_120; +x_109 = lean::cnstr_get(x_108, 1); +lean::inc(x_109); +x_111 = lean::cnstr_get(x_108, 2); +lean::inc(x_111); +lean::dec(x_108); +x_114 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_109, x_98); +x_115 = lean::cnstr_get(x_114, 0); +lean::inc(x_115); +x_117 = lean::cnstr_get(x_114, 1); +lean::inc(x_117); +lean::dec(x_114); +x_120 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_111, x_115); +x_13 = x_120; +x_14 = x_117; +goto lbl_15; +} +else +{ +obj* x_121; uint8 x_123; obj* x_124; obj* x_125; obj* x_126; +x_121 = lean::cnstr_get(x_108, 0); +x_123 = lean::cnstr_get_scalar(x_108, sizeof(void*)*1); +if (lean::is_exclusive(x_108)) { + x_124 = x_108; +} else { + lean::inc(x_121); + lean::dec(x_108); + x_124 = lean::box(0); +} +if (lean::is_scalar(x_124)) { + x_125 = lean::alloc_cnstr(1, 1, 1); +} else { + x_125 = x_124; +} +lean::cnstr_set(x_125, 0, x_121); +lean::cnstr_set_scalar(x_125, sizeof(void*)*1, x_123); +x_126 = x_125; +x_13 = x_126; +x_14 = x_98; +goto lbl_15; +} +} +lbl_15: +{ +if (lean::obj_tag(x_13) == 0) +{ +obj* x_127; obj* x_129; obj* x_131; obj* x_133; obj* x_135; +x_127 = lean::cnstr_get(x_13, 1); +x_129 = lean::cnstr_get(x_13, 2); +if (lean::is_exclusive(x_13)) { + lean::cnstr_release(x_13, 0); + lean::cnstr_set(x_13, 1, lean::box(0)); + lean::cnstr_set(x_13, 2, lean::box(0)); + x_131 = x_13; +} else { + lean::inc(x_127); + lean::inc(x_129); + lean::dec(x_13); + x_131 = lean::box(0); +} +lean::inc(x_127); +x_133 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_12, x_2, x_3, x_127, x_14); +lean::dec(x_12); +x_135 = lean::cnstr_get(x_133, 0); +lean::inc(x_135); +if (lean::obj_tag(x_135) == 0) +{ +obj* x_139; obj* x_141; obj* x_142; obj* x_143; +lean::dec(x_131); +lean::dec(x_127); +x_139 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_141 = x_133; +} else { + lean::inc(x_139); + lean::dec(x_133); + x_141 = lean::box(0); +} +x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_141)) { + x_143 = lean::alloc_cnstr(0, 2, 0); +} else { + x_143 = x_141; +} +lean::cnstr_set(x_143, 0, x_142); +lean::cnstr_set(x_143, 1, x_139); +return x_143; +} +else +{ +uint8 x_144; +x_144 = lean::cnstr_get_scalar(x_135, sizeof(void*)*1); +if (x_144 == 0) +{ +obj* x_145; obj* x_147; obj* x_148; obj* x_151; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; +x_145 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_147 = x_133; +} else { + lean::inc(x_145); + lean::dec(x_133); + x_147 = lean::box(0); +} +x_148 = lean::cnstr_get(x_135, 0); +lean::inc(x_148); +lean::dec(x_135); +x_151 = lean::cnstr_get(x_148, 2); +lean::inc(x_151); +lean::dec(x_148); +x_154 = l_mjoin___rarg___closed__1; +x_155 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_155, 0, x_151); +lean::closure_set(x_155, 1, x_154); +x_156 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_156, 0, x_155); +x_157 = lean::box(0); +if (lean::is_scalar(x_131)) { + x_158 = lean::alloc_cnstr(0, 3, 0); +} else { + x_158 = x_131; +} +lean::cnstr_set(x_158, 0, x_157); +lean::cnstr_set(x_158, 1, x_127); +lean::cnstr_set(x_158, 2, x_156); +x_159 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_158); +if (lean::is_scalar(x_147)) { + x_160 = lean::alloc_cnstr(0, 2, 0); +} else { + x_160 = x_147; +} +lean::cnstr_set(x_160, 0, x_159); +lean::cnstr_set(x_160, 1, x_145); +return x_160; +} +else +{ +obj* x_163; obj* x_165; obj* x_166; obj* x_167; +lean::dec(x_131); +lean::dec(x_127); +x_163 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_165 = x_133; +} else { + lean::inc(x_163); + lean::dec(x_133); + x_165 = lean::box(0); +} +x_166 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_165)) { + x_167 = lean::alloc_cnstr(0, 2, 0); +} else { + x_167 = x_165; +} +lean::cnstr_set(x_167, 0, x_166); +lean::cnstr_set(x_167, 1, x_163); +return x_167; +} +} +} +else +{ +obj* x_170; uint8 x_172; obj* x_173; obj* x_174; obj* x_175; obj* x_176; +lean::dec(x_0); +lean::dec(x_12); +x_170 = lean::cnstr_get(x_13, 0); +x_172 = lean::cnstr_get_scalar(x_13, sizeof(void*)*1); +if (lean::is_exclusive(x_13)) { + x_173 = x_13; +} else { + lean::inc(x_170); + lean::dec(x_13); + x_173 = lean::box(0); +} +if (lean::is_scalar(x_173)) { + x_174 = lean::alloc_cnstr(1, 1, 1); +} else { + x_174 = x_173; +} +lean::cnstr_set(x_174, 0, x_170); +lean::cnstr_set_scalar(x_174, sizeof(void*)*1, x_172); +x_175 = x_174; +x_176 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_176, 0, x_175); +lean::cnstr_set(x_176, 1, x_14); +return x_176; +} +} +} +else +{ +obj* x_178; obj* x_179; +lean::inc(x_4); +x_178 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0, x_2, x_3, x_4, x_5); +x_179 = lean::cnstr_get(x_178, 0); +lean::inc(x_179); +if (lean::obj_tag(x_179) == 0) +{ +obj* x_181; uint8 x_183; +x_181 = lean::cnstr_get(x_179, 0); +lean::inc(x_181); +x_183 = lean::unbox(x_181); +if (x_183 == 0) +{ +obj* x_184; obj* x_187; obj* x_189; obj* x_192; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_199; obj* x_201; obj* x_204; obj* x_205; obj* x_206; +x_184 = lean::cnstr_get(x_178, 1); +lean::inc(x_184); +lean::dec(x_178); +x_187 = lean::cnstr_get(x_179, 1); +lean::inc(x_187); +x_189 = lean::cnstr_get(x_179, 2); +lean::inc(x_189); +lean::dec(x_179); +x_192 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_192, 0, x_4); +x_193 = lean::box(0); +x_194 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_195 = l_mjoin___rarg___closed__1; +x_196 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_194, x_195, x_192, x_193, x_2, x_3, x_187, x_184); +lean::dec(x_187); +lean::dec(x_192); +x_199 = lean::cnstr_get(x_196, 0); +lean::inc(x_199); +x_201 = lean::cnstr_get(x_196, 1); +lean::inc(x_201); +lean::dec(x_196); +x_204 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_189, x_199); +x_205 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_206 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_205, x_204); +if (lean::obj_tag(x_206) == 0) +{ +obj* x_207; obj* x_209; obj* x_212; obj* x_213; obj* x_215; obj* x_218; +x_207 = lean::cnstr_get(x_206, 1); +lean::inc(x_207); +x_209 = lean::cnstr_get(x_206, 2); +lean::inc(x_209); +lean::dec(x_206); +x_212 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_207, x_201); +x_213 = lean::cnstr_get(x_212, 0); +lean::inc(x_213); +x_215 = lean::cnstr_get(x_212, 1); +lean::inc(x_215); +lean::dec(x_212); +x_218 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_209, x_213); +x_6 = x_218; +x_7 = x_215; +goto lbl_8; +} +else +{ +obj* x_219; uint8 x_221; obj* x_222; obj* x_223; obj* x_224; +x_219 = lean::cnstr_get(x_206, 0); +x_221 = lean::cnstr_get_scalar(x_206, sizeof(void*)*1); +if (lean::is_exclusive(x_206)) { + x_222 = x_206; +} else { + lean::inc(x_219); + lean::dec(x_206); + x_222 = lean::box(0); +} +if (lean::is_scalar(x_222)) { + x_223 = lean::alloc_cnstr(1, 1, 1); +} else { + x_223 = x_222; +} +lean::cnstr_set(x_223, 0, x_219); +lean::cnstr_set_scalar(x_223, sizeof(void*)*1, x_221); +x_224 = x_223; +x_6 = x_224; +x_7 = x_201; +goto lbl_8; +} +} +else +{ +obj* x_226; obj* x_229; obj* x_231; obj* x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; +lean::dec(x_4); +x_226 = lean::cnstr_get(x_178, 1); +lean::inc(x_226); +lean::dec(x_178); +x_229 = lean::cnstr_get(x_179, 1); +x_231 = lean::cnstr_get(x_179, 2); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + x_233 = x_179; +} else { + lean::inc(x_229); + lean::inc(x_231); + lean::dec(x_179); + x_233 = lean::box(0); +} +x_234 = lean::box(0); +x_235 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_233)) { + x_236 = lean::alloc_cnstr(0, 3, 0); +} else { + x_236 = x_233; +} +lean::cnstr_set(x_236, 0, x_234); +lean::cnstr_set(x_236, 1, x_229); +lean::cnstr_set(x_236, 2, x_235); +x_237 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_231, x_236); +x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_235, x_237); +if (lean::obj_tag(x_238) == 0) +{ +obj* x_239; obj* x_241; obj* x_244; obj* x_245; obj* x_247; obj* x_250; +x_239 = lean::cnstr_get(x_238, 1); +lean::inc(x_239); +x_241 = lean::cnstr_get(x_238, 2); +lean::inc(x_241); +lean::dec(x_238); +x_244 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_239, x_226); +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); +x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_241, x_245); +x_6 = x_250; +x_7 = x_247; +goto lbl_8; +} +else +{ +obj* x_251; uint8 x_253; obj* x_254; obj* x_255; obj* x_256; +x_251 = lean::cnstr_get(x_238, 0); +x_253 = lean::cnstr_get_scalar(x_238, sizeof(void*)*1); +if (lean::is_exclusive(x_238)) { + x_254 = x_238; +} else { + lean::inc(x_251); + lean::dec(x_238); + x_254 = lean::box(0); +} +if (lean::is_scalar(x_254)) { + x_255 = lean::alloc_cnstr(1, 1, 1); +} else { + x_255 = x_254; +} +lean::cnstr_set(x_255, 0, x_251); +lean::cnstr_set_scalar(x_255, sizeof(void*)*1, x_253); +x_256 = x_255; +x_6 = x_256; +x_7 = x_226; +goto lbl_8; +} +} +} +else +{ +obj* x_258; obj* x_261; uint8 x_263; obj* x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; +lean::dec(x_4); +x_258 = lean::cnstr_get(x_178, 1); +lean::inc(x_258); +lean::dec(x_178); +x_261 = lean::cnstr_get(x_179, 0); +x_263 = lean::cnstr_get_scalar(x_179, sizeof(void*)*1); +if (lean::is_exclusive(x_179)) { + x_264 = x_179; +} else { + lean::inc(x_261); + lean::dec(x_179); + x_264 = lean::box(0); +} +if (lean::is_scalar(x_264)) { + x_265 = lean::alloc_cnstr(1, 1, 1); +} else { + x_265 = x_264; +} +lean::cnstr_set(x_265, 0, x_261); +lean::cnstr_set_scalar(x_265, sizeof(void*)*1, x_263); +x_266 = x_265; +x_267 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_268 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_267, x_266); +if (lean::obj_tag(x_268) == 0) +{ +obj* x_269; obj* x_271; obj* x_274; obj* x_275; obj* x_277; obj* x_280; +x_269 = lean::cnstr_get(x_268, 1); +lean::inc(x_269); +x_271 = lean::cnstr_get(x_268, 2); +lean::inc(x_271); +lean::dec(x_268); +x_274 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_269, x_258); +x_275 = lean::cnstr_get(x_274, 0); +lean::inc(x_275); +x_277 = lean::cnstr_get(x_274, 1); +lean::inc(x_277); +lean::dec(x_274); +x_280 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_271, x_275); +x_6 = x_280; +x_7 = x_277; +goto lbl_8; +} +else +{ +obj* x_281; uint8 x_283; obj* x_284; obj* x_285; obj* x_286; +x_281 = lean::cnstr_get(x_268, 0); +x_283 = lean::cnstr_get_scalar(x_268, sizeof(void*)*1); +if (lean::is_exclusive(x_268)) { + x_284 = x_268; +} else { + lean::inc(x_281); + lean::dec(x_268); + x_284 = lean::box(0); +} +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); +} else { + x_285 = x_284; +} +lean::cnstr_set(x_285, 0, x_281); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_283); +x_286 = x_285; +x_6 = x_286; +x_7 = x_258; +goto lbl_8; +} +} +} +lbl_8: +{ +if (lean::obj_tag(x_6) == 0) +{ +obj* x_287; obj* x_289; obj* x_291; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; +x_287 = lean::cnstr_get(x_6, 1); +x_289 = lean::cnstr_get(x_6, 2); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_291 = x_6; +} else { + lean::inc(x_287); + lean::inc(x_289); + lean::dec(x_6); + x_291 = lean::box(0); +} +x_292 = lean::box(0); +x_293 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_291)) { + x_294 = lean::alloc_cnstr(0, 3, 0); +} else { + x_294 = x_291; +} +lean::cnstr_set(x_294, 0, x_292); +lean::cnstr_set(x_294, 1, x_287); +lean::cnstr_set(x_294, 2, x_293); +x_295 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_289, x_294); +x_296 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_296, 0, x_295); +lean::cnstr_set(x_296, 1, x_7); +return x_296; +} +else +{ +obj* x_297; uint8 x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; +x_297 = lean::cnstr_get(x_6, 0); +x_299 = lean::cnstr_get_scalar(x_6, sizeof(void*)*1); +if (lean::is_exclusive(x_6)) { + x_300 = x_6; +} else { + lean::inc(x_297); + lean::dec(x_6); + x_300 = lean::box(0); +} +if (lean::is_scalar(x_300)) { + x_301 = lean::alloc_cnstr(1, 1, 1); +} else { + x_301 = x_300; +} +lean::cnstr_set(x_301, 0, x_297); +lean::cnstr_set_scalar(x_301, sizeof(void*)*1, x_299); +x_302 = x_301; +x_303 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_303, 0, x_302); +lean::cnstr_set(x_303, 1, x_7); +return x_303; +} +} +} +} +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_14; obj* x_15; +x_5 = l_string_iterator_remaining___main(x_3); +lean::inc(x_3); +x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_5, x_1, x_2, x_3, x_4); +lean::dec(x_5); +x_9 = lean::cnstr_get(x_7, 0); +x_11 = lean::cnstr_get(x_7, 1); +if (lean::is_exclusive(x_7)) { + lean::cnstr_set(x_7, 0, lean::box(0)); + lean::cnstr_set(x_7, 1, lean::box(0)); + x_13 = x_7; +} else { + lean::inc(x_9); + lean::inc(x_11); + lean::dec(x_7); + x_13 = lean::box(0); +} +x_14 = l_lean_parser_finish__comment__block___closed__2; +x_15 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_9); +if (lean::obj_tag(x_15) == 0) +{ +obj* x_17; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_17 = lean::alloc_cnstr(0, 2, 0); +} else { + x_17 = x_13; +} +lean::cnstr_set(x_17, 0, x_15); +lean::cnstr_set(x_17, 1, x_11); +return x_17; +} +else +{ +uint8 x_18; +x_18 = lean::cnstr_get_scalar(x_15, sizeof(void*)*1); +if (x_18 == 0) +{ +obj* x_19; obj* x_22; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_19 = lean::cnstr_get(x_15, 0); +lean::inc(x_19); +lean::dec(x_15); +x_22 = lean::cnstr_get(x_19, 2); +lean::inc(x_22); +lean::dec(x_19); +x_25 = l_mjoin___rarg___closed__1; +x_26 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_26, 0, x_22); +lean::closure_set(x_26, 1, x_25); +x_27 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_27, 0, x_26); +x_28 = lean::box(0); +x_29 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_29, 0, x_28); +lean::cnstr_set(x_29, 1, x_3); +lean::cnstr_set(x_29, 2, x_27); +if (lean::is_scalar(x_13)) { + x_30 = lean::alloc_cnstr(0, 2, 0); +} else { + x_30 = x_13; +} lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_4); -lean::cnstr_set(x_30, 2, x_28); -if (lean::is_scalar(x_14)) { - x_31 = lean::alloc_cnstr(0, 2, 0); -} else { - x_31 = x_14; -} -lean::cnstr_set(x_31, 0, x_30); -lean::cnstr_set(x_31, 1, x_12); -return x_31; +lean::cnstr_set(x_30, 1, x_11); +return x_30; } else { -obj* x_33; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_33 = lean::alloc_cnstr(0, 2, 0); +obj* x_32; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_32 = lean::alloc_cnstr(0, 2, 0); } else { - x_33 = x_14; + x_32 = x_13; } -lean::cnstr_set(x_33, 0, x_16); -lean::cnstr_set(x_33, 1, x_12); -return x_33; +lean::cnstr_set(x_32, 0, x_15); +lean::cnstr_set(x_32, 1, x_11); +return x_32; } } } @@ -3642,25 +3621,16 @@ lean::dec(x_3); return x_6; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___rarg(x_0, x_1, x_2, x_3, x_4); +x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0, x_1, x_2, x_3, x_4); lean::dec(x_1); lean::dec(x_2); return x_5; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} obj* l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___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: { @@ -3692,29 +3662,27 @@ lean::dec(x_1); return x_4; } } -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; -x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -return x_7; -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; -x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(x_0, x_1, x_2, x_3, x_4, x_5); -lean::dec(x_0); +x_6 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__7(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_1); lean::dec(x_2); lean::dec(x_3); return x_6; } } +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__6(x_0, x_1, x_2, x_3, x_4); +lean::dec(x_1); +lean::dec(x_2); +return x_5; +} +} obj* l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { @@ -3733,29 +3701,27 @@ lean::dec(x_0); return x_1; } } -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; -x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -return x_7; -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; -x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(x_0, x_1, x_2, x_3, x_4, x_5); -lean::dec(x_0); +x_6 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__10(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_1); lean::dec(x_2); lean::dec(x_3); return x_6; } } +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__9(x_0, x_1, x_2, x_3, x_4); +lean::dec(x_1); +lean::dec(x_2); +return x_5; +} +} obj* l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___boxed(obj* x_0, obj* x_1) { _start: { @@ -3766,7 +3732,7 @@ lean::dec(x_1); return x_2; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_7; obj* x_8; @@ -3908,871 +3874,863 @@ return x_43; } } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(obj* x_0) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg___boxed), 5, 0); -return x_1; +obj* x_6; obj* x_7; obj* x_9; uint8 x_10; +x_9 = lean::mk_nat_obj(0u); +x_10 = lean::nat_dec_eq(x_1, x_9); +if (x_10 == 0) +{ +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_18; obj* x_19; +x_11 = lean::mk_nat_obj(1u); +x_12 = lean::nat_sub(x_1, x_11); +lean::inc(x_4); +lean::inc(x_0); +x_18 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(x_0, x_2, x_3, x_4, x_5); +x_19 = lean::cnstr_get(x_18, 0); +lean::inc(x_19); +if (lean::obj_tag(x_19) == 0) +{ +obj* x_21; uint8 x_23; +x_21 = lean::cnstr_get(x_19, 0); +lean::inc(x_21); +x_23 = lean::unbox(x_21); +if (x_23 == 0) +{ +obj* x_24; obj* x_27; obj* x_29; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_39; obj* x_41; obj* x_44; obj* x_45; obj* x_46; +x_24 = lean::cnstr_get(x_18, 1); +lean::inc(x_24); +lean::dec(x_18); +x_27 = lean::cnstr_get(x_19, 1); +lean::inc(x_27); +x_29 = lean::cnstr_get(x_19, 2); +lean::inc(x_29); +lean::dec(x_19); +x_32 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_32, 0, x_4); +x_33 = lean::box(0); +x_34 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_35 = l_mjoin___rarg___closed__1; +x_36 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_34, x_35, x_32, x_33, x_2, x_3, x_27, x_24); +lean::dec(x_27); +lean::dec(x_32); +x_39 = lean::cnstr_get(x_36, 0); +lean::inc(x_39); +x_41 = lean::cnstr_get(x_36, 1); +lean::inc(x_41); +lean::dec(x_36); +x_44 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_29, x_39); +x_45 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_46 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_45, x_44); +if (lean::obj_tag(x_46) == 0) +{ +obj* x_47; obj* x_49; obj* x_52; obj* x_53; obj* x_55; obj* x_58; +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +x_49 = lean::cnstr_get(x_46, 2); +lean::inc(x_49); +lean::dec(x_46); +x_52 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_47, x_41); +x_53 = lean::cnstr_get(x_52, 0); +lean::inc(x_53); +x_55 = lean::cnstr_get(x_52, 1); +lean::inc(x_55); +lean::dec(x_52); +x_58 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_49, x_53); +x_13 = x_58; +x_14 = x_55; +goto lbl_15; +} +else +{ +obj* x_59; uint8 x_61; obj* x_62; obj* x_63; obj* x_64; +x_59 = lean::cnstr_get(x_46, 0); +x_61 = lean::cnstr_get_scalar(x_46, sizeof(void*)*1); +if (lean::is_exclusive(x_46)) { + x_62 = x_46; +} else { + lean::inc(x_59); + lean::dec(x_46); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(1, 1, 1); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_59); +lean::cnstr_set_scalar(x_63, sizeof(void*)*1, x_61); +x_64 = x_63; +x_13 = x_64; +x_14 = x_41; +goto lbl_15; } } -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +else +{ +obj* x_66; obj* x_69; obj* x_71; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +lean::dec(x_4); +x_66 = lean::cnstr_get(x_18, 1); +lean::inc(x_66); +lean::dec(x_18); +x_69 = lean::cnstr_get(x_19, 1); +x_71 = lean::cnstr_get(x_19, 2); +if (lean::is_exclusive(x_19)) { + lean::cnstr_release(x_19, 0); + x_73 = x_19; +} else { + lean::inc(x_69); + lean::inc(x_71); + lean::dec(x_19); + x_73 = lean::box(0); +} +x_74 = lean::box(0); +x_75 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_73)) { + x_76 = lean::alloc_cnstr(0, 3, 0); +} else { + x_76 = x_73; +} +lean::cnstr_set(x_76, 0, x_74); +lean::cnstr_set(x_76, 1, x_69); +lean::cnstr_set(x_76, 2, x_75); +x_77 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_71, x_76); +x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_75, x_77); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_81; obj* x_84; obj* x_85; obj* x_87; obj* x_90; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +x_81 = lean::cnstr_get(x_78, 2); +lean::inc(x_81); +lean::dec(x_78); +x_84 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_79, x_66); +x_85 = lean::cnstr_get(x_84, 0); +lean::inc(x_85); +x_87 = lean::cnstr_get(x_84, 1); +lean::inc(x_87); +lean::dec(x_84); +x_90 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_81, x_85); +x_13 = x_90; +x_14 = x_87; +goto lbl_15; +} +else +{ +obj* x_91; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; +x_91 = lean::cnstr_get(x_78, 0); +x_93 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); +if (lean::is_exclusive(x_78)) { + x_94 = x_78; +} else { + lean::inc(x_91); + lean::dec(x_78); + x_94 = lean::box(0); +} +if (lean::is_scalar(x_94)) { + x_95 = lean::alloc_cnstr(1, 1, 1); +} else { + x_95 = x_94; +} +lean::cnstr_set(x_95, 0, x_91); +lean::cnstr_set_scalar(x_95, sizeof(void*)*1, x_93); +x_96 = x_95; +x_13 = x_96; +x_14 = x_66; +goto lbl_15; +} +} +} +else +{ +obj* x_98; obj* x_101; uint8 x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; +lean::dec(x_4); +x_98 = lean::cnstr_get(x_18, 1); +lean::inc(x_98); +lean::dec(x_18); +x_101 = lean::cnstr_get(x_19, 0); +x_103 = lean::cnstr_get_scalar(x_19, sizeof(void*)*1); +if (lean::is_exclusive(x_19)) { + x_104 = x_19; +} else { + lean::inc(x_101); + lean::dec(x_19); + x_104 = lean::box(0); +} +if (lean::is_scalar(x_104)) { + x_105 = lean::alloc_cnstr(1, 1, 1); +} else { + x_105 = x_104; +} +lean::cnstr_set(x_105, 0, x_101); +lean::cnstr_set_scalar(x_105, sizeof(void*)*1, x_103); +x_106 = x_105; +x_107 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_108 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_107, x_106); +if (lean::obj_tag(x_108) == 0) +{ +obj* x_109; obj* x_111; obj* x_114; obj* x_115; obj* x_117; obj* x_120; +x_109 = lean::cnstr_get(x_108, 1); +lean::inc(x_109); +x_111 = lean::cnstr_get(x_108, 2); +lean::inc(x_111); +lean::dec(x_108); +x_114 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_109, x_98); +x_115 = lean::cnstr_get(x_114, 0); +lean::inc(x_115); +x_117 = lean::cnstr_get(x_114, 1); +lean::inc(x_117); +lean::dec(x_114); +x_120 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_111, x_115); +x_13 = x_120; +x_14 = x_117; +goto lbl_15; +} +else +{ +obj* x_121; uint8 x_123; obj* x_124; obj* x_125; obj* x_126; +x_121 = lean::cnstr_get(x_108, 0); +x_123 = lean::cnstr_get_scalar(x_108, sizeof(void*)*1); +if (lean::is_exclusive(x_108)) { + x_124 = x_108; +} else { + lean::inc(x_121); + lean::dec(x_108); + x_124 = lean::box(0); +} +if (lean::is_scalar(x_124)) { + x_125 = lean::alloc_cnstr(1, 1, 1); +} else { + x_125 = x_124; +} +lean::cnstr_set(x_125, 0, x_121); +lean::cnstr_set_scalar(x_125, sizeof(void*)*1, x_123); +x_126 = x_125; +x_13 = x_126; +x_14 = x_98; +goto lbl_15; +} +} +lbl_15: +{ +if (lean::obj_tag(x_13) == 0) +{ +obj* x_127; obj* x_129; obj* x_131; obj* x_133; obj* x_135; +x_127 = lean::cnstr_get(x_13, 1); +x_129 = lean::cnstr_get(x_13, 2); +if (lean::is_exclusive(x_13)) { + lean::cnstr_release(x_13, 0); + lean::cnstr_set(x_13, 1, lean::box(0)); + lean::cnstr_set(x_13, 2, lean::box(0)); + x_131 = x_13; +} else { + lean::inc(x_127); + lean::inc(x_129); + lean::dec(x_13); + x_131 = lean::box(0); +} +lean::inc(x_127); +x_133 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_12, x_2, x_3, x_127, x_14); +lean::dec(x_12); +x_135 = lean::cnstr_get(x_133, 0); +lean::inc(x_135); +if (lean::obj_tag(x_135) == 0) +{ +obj* x_139; obj* x_141; obj* x_142; obj* x_143; +lean::dec(x_131); +lean::dec(x_127); +x_139 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_141 = x_133; +} else { + lean::inc(x_139); + lean::dec(x_133); + x_141 = lean::box(0); +} +x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_141)) { + x_143 = lean::alloc_cnstr(0, 2, 0); +} else { + x_143 = x_141; +} +lean::cnstr_set(x_143, 0, x_142); +lean::cnstr_set(x_143, 1, x_139); +return x_143; +} +else +{ +uint8 x_144; +x_144 = lean::cnstr_get_scalar(x_135, sizeof(void*)*1); +if (x_144 == 0) +{ +obj* x_145; obj* x_147; obj* x_148; obj* x_151; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; +x_145 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_147 = x_133; +} else { + lean::inc(x_145); + lean::dec(x_133); + x_147 = lean::box(0); +} +x_148 = lean::cnstr_get(x_135, 0); +lean::inc(x_148); +lean::dec(x_135); +x_151 = lean::cnstr_get(x_148, 2); +lean::inc(x_151); +lean::dec(x_148); +x_154 = l_mjoin___rarg___closed__1; +x_155 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_155, 0, x_151); +lean::closure_set(x_155, 1, x_154); +x_156 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_156, 0, x_155); +x_157 = lean::box(0); +if (lean::is_scalar(x_131)) { + x_158 = lean::alloc_cnstr(0, 3, 0); +} else { + x_158 = x_131; +} +lean::cnstr_set(x_158, 0, x_157); +lean::cnstr_set(x_158, 1, x_127); +lean::cnstr_set(x_158, 2, x_156); +x_159 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_158); +if (lean::is_scalar(x_147)) { + x_160 = lean::alloc_cnstr(0, 2, 0); +} else { + x_160 = x_147; +} +lean::cnstr_set(x_160, 0, x_159); +lean::cnstr_set(x_160, 1, x_145); +return x_160; +} +else +{ +obj* x_163; obj* x_165; obj* x_166; obj* x_167; +lean::dec(x_131); +lean::dec(x_127); +x_163 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_165 = x_133; +} else { + lean::inc(x_163); + lean::dec(x_133); + x_165 = lean::box(0); +} +x_166 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_165)) { + x_167 = lean::alloc_cnstr(0, 2, 0); +} else { + x_167 = x_165; +} +lean::cnstr_set(x_167, 0, x_166); +lean::cnstr_set(x_167, 1, x_163); +return x_167; +} +} +} +else +{ +obj* x_170; uint8 x_172; obj* x_173; obj* x_174; obj* x_175; obj* x_176; +lean::dec(x_0); +lean::dec(x_12); +x_170 = lean::cnstr_get(x_13, 0); +x_172 = lean::cnstr_get_scalar(x_13, sizeof(void*)*1); +if (lean::is_exclusive(x_13)) { + x_173 = x_13; +} else { + lean::inc(x_170); + lean::dec(x_13); + x_173 = lean::box(0); +} +if (lean::is_scalar(x_173)) { + x_174 = lean::alloc_cnstr(1, 1, 1); +} else { + x_174 = x_173; +} +lean::cnstr_set(x_174, 0, x_170); +lean::cnstr_set_scalar(x_174, sizeof(void*)*1, x_172); +x_175 = x_174; +x_176 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_176, 0, x_175); +lean::cnstr_set(x_176, 1, x_14); +return x_176; +} +} +} +else +{ +obj* x_178; obj* x_179; +lean::inc(x_4); +x_178 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(x_0, x_2, x_3, x_4, x_5); +x_179 = lean::cnstr_get(x_178, 0); +lean::inc(x_179); +if (lean::obj_tag(x_179) == 0) +{ +obj* x_181; uint8 x_183; +x_181 = lean::cnstr_get(x_179, 0); +lean::inc(x_181); +x_183 = lean::unbox(x_181); +if (x_183 == 0) +{ +obj* x_184; obj* x_187; obj* x_189; obj* x_192; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_199; obj* x_201; obj* x_204; obj* x_205; obj* x_206; +x_184 = lean::cnstr_get(x_178, 1); +lean::inc(x_184); +lean::dec(x_178); +x_187 = lean::cnstr_get(x_179, 1); +lean::inc(x_187); +x_189 = lean::cnstr_get(x_179, 2); +lean::inc(x_189); +lean::dec(x_179); +x_192 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_192, 0, x_4); +x_193 = lean::box(0); +x_194 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_195 = l_mjoin___rarg___closed__1; +x_196 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_194, x_195, x_192, x_193, x_2, x_3, x_187, x_184); +lean::dec(x_187); +lean::dec(x_192); +x_199 = lean::cnstr_get(x_196, 0); +lean::inc(x_199); +x_201 = lean::cnstr_get(x_196, 1); +lean::inc(x_201); +lean::dec(x_196); +x_204 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_189, x_199); +x_205 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_206 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_205, x_204); +if (lean::obj_tag(x_206) == 0) +{ +obj* x_207; obj* x_209; obj* x_212; obj* x_213; obj* x_215; obj* x_218; +x_207 = lean::cnstr_get(x_206, 1); +lean::inc(x_207); +x_209 = lean::cnstr_get(x_206, 2); +lean::inc(x_209); +lean::dec(x_206); +x_212 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_207, x_201); +x_213 = lean::cnstr_get(x_212, 0); +lean::inc(x_213); +x_215 = lean::cnstr_get(x_212, 1); +lean::inc(x_215); +lean::dec(x_212); +x_218 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_209, x_213); +x_6 = x_218; +x_7 = x_215; +goto lbl_8; +} +else +{ +obj* x_219; uint8 x_221; obj* x_222; obj* x_223; obj* x_224; +x_219 = lean::cnstr_get(x_206, 0); +x_221 = lean::cnstr_get_scalar(x_206, sizeof(void*)*1); +if (lean::is_exclusive(x_206)) { + x_222 = x_206; +} else { + lean::inc(x_219); + lean::dec(x_206); + x_222 = lean::box(0); +} +if (lean::is_scalar(x_222)) { + x_223 = lean::alloc_cnstr(1, 1, 1); +} else { + x_223 = x_222; +} +lean::cnstr_set(x_223, 0, x_219); +lean::cnstr_set_scalar(x_223, sizeof(void*)*1, x_221); +x_224 = x_223; +x_6 = x_224; +x_7 = x_201; +goto lbl_8; +} +} +else +{ +obj* x_226; obj* x_229; obj* x_231; obj* x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; +lean::dec(x_4); +x_226 = lean::cnstr_get(x_178, 1); +lean::inc(x_226); +lean::dec(x_178); +x_229 = lean::cnstr_get(x_179, 1); +x_231 = lean::cnstr_get(x_179, 2); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + x_233 = x_179; +} else { + lean::inc(x_229); + lean::inc(x_231); + lean::dec(x_179); + x_233 = lean::box(0); +} +x_234 = lean::box(0); +x_235 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_233)) { + x_236 = lean::alloc_cnstr(0, 3, 0); +} else { + x_236 = x_233; +} +lean::cnstr_set(x_236, 0, x_234); +lean::cnstr_set(x_236, 1, x_229); +lean::cnstr_set(x_236, 2, x_235); +x_237 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_231, x_236); +x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_235, x_237); +if (lean::obj_tag(x_238) == 0) +{ +obj* x_239; obj* x_241; obj* x_244; obj* x_245; obj* x_247; obj* x_250; +x_239 = lean::cnstr_get(x_238, 1); +lean::inc(x_239); +x_241 = lean::cnstr_get(x_238, 2); +lean::inc(x_241); +lean::dec(x_238); +x_244 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_239, x_226); +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); +x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_241, x_245); +x_6 = x_250; +x_7 = x_247; +goto lbl_8; +} +else +{ +obj* x_251; uint8 x_253; obj* x_254; obj* x_255; obj* x_256; +x_251 = lean::cnstr_get(x_238, 0); +x_253 = lean::cnstr_get_scalar(x_238, sizeof(void*)*1); +if (lean::is_exclusive(x_238)) { + x_254 = x_238; +} else { + lean::inc(x_251); + lean::dec(x_238); + x_254 = lean::box(0); +} +if (lean::is_scalar(x_254)) { + x_255 = lean::alloc_cnstr(1, 1, 1); +} else { + x_255 = x_254; +} +lean::cnstr_set(x_255, 0, x_251); +lean::cnstr_set_scalar(x_255, sizeof(void*)*1, x_253); +x_256 = x_255; +x_6 = x_256; +x_7 = x_226; +goto lbl_8; +} +} +} +else +{ +obj* x_258; obj* x_261; uint8 x_263; obj* x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; +lean::dec(x_4); +x_258 = lean::cnstr_get(x_178, 1); +lean::inc(x_258); +lean::dec(x_178); +x_261 = lean::cnstr_get(x_179, 0); +x_263 = lean::cnstr_get_scalar(x_179, sizeof(void*)*1); +if (lean::is_exclusive(x_179)) { + x_264 = x_179; +} else { + lean::inc(x_261); + lean::dec(x_179); + x_264 = lean::box(0); +} +if (lean::is_scalar(x_264)) { + x_265 = lean::alloc_cnstr(1, 1, 1); +} else { + x_265 = x_264; +} +lean::cnstr_set(x_265, 0, x_261); +lean::cnstr_set_scalar(x_265, sizeof(void*)*1, x_263); +x_266 = x_265; +x_267 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_268 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_267, x_266); +if (lean::obj_tag(x_268) == 0) +{ +obj* x_269; obj* x_271; obj* x_274; obj* x_275; obj* x_277; obj* x_280; +x_269 = lean::cnstr_get(x_268, 1); +lean::inc(x_269); +x_271 = lean::cnstr_get(x_268, 2); +lean::inc(x_271); +lean::dec(x_268); +x_274 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_269, x_258); +x_275 = lean::cnstr_get(x_274, 0); +lean::inc(x_275); +x_277 = lean::cnstr_get(x_274, 1); +lean::inc(x_277); +lean::dec(x_274); +x_280 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_271, x_275); +x_6 = x_280; +x_7 = x_277; +goto lbl_8; +} +else +{ +obj* x_281; uint8 x_283; obj* x_284; obj* x_285; obj* x_286; +x_281 = lean::cnstr_get(x_268, 0); +x_283 = lean::cnstr_get_scalar(x_268, sizeof(void*)*1); +if (lean::is_exclusive(x_268)) { + x_284 = x_268; +} else { + lean::inc(x_281); + lean::dec(x_268); + x_284 = lean::box(0); +} +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); +} else { + x_285 = x_284; +} +lean::cnstr_set(x_285, 0, x_281); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_283); +x_286 = x_285; +x_6 = x_286; +x_7 = x_258; +goto lbl_8; +} +} +} +lbl_8: +{ +if (lean::obj_tag(x_6) == 0) +{ +obj* x_287; obj* x_289; obj* x_291; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; +x_287 = lean::cnstr_get(x_6, 1); +x_289 = lean::cnstr_get(x_6, 2); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_291 = x_6; +} else { + lean::inc(x_287); + lean::inc(x_289); + lean::dec(x_6); + x_291 = lean::box(0); +} +x_292 = lean::box(0); +x_293 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_291)) { + x_294 = lean::alloc_cnstr(0, 3, 0); +} else { + x_294 = x_291; +} +lean::cnstr_set(x_294, 0, x_292); +lean::cnstr_set(x_294, 1, x_287); +lean::cnstr_set(x_294, 2, x_293); +x_295 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_289, x_294); +x_296 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_296, 0, x_295); +lean::cnstr_set(x_296, 1, x_7); +return x_296; +} +else +{ +obj* x_297; uint8 x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; +x_297 = lean::cnstr_get(x_6, 0); +x_299 = lean::cnstr_get_scalar(x_6, sizeof(void*)*1); +if (lean::is_exclusive(x_6)) { + x_300 = x_6; +} else { + lean::inc(x_297); + lean::dec(x_6); + x_300 = lean::box(0); +} +if (lean::is_scalar(x_300)) { + x_301 = lean::alloc_cnstr(1, 1, 1); +} else { + x_301 = x_300; +} +lean::cnstr_set(x_301, 0, x_297); +lean::cnstr_set_scalar(x_301, sizeof(void*)*1, x_299); +x_302 = x_301; +x_303 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_303, 0, x_302); +lean::cnstr_set(x_303, 1, x_7); +return x_303; +} +} +} +} +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { -obj* x_7; obj* x_8; obj* x_10; uint8 x_11; -x_10 = lean::mk_nat_obj(0u); -x_11 = lean::nat_dec_eq(x_2, x_10); -if (x_11 == 0) +obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_14; obj* x_15; +x_5 = l_string_iterator_remaining___main(x_3); +lean::inc(x_3); +x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_5, x_1, x_2, x_3, x_4); +lean::dec(x_5); +x_9 = lean::cnstr_get(x_7, 0); +x_11 = lean::cnstr_get(x_7, 1); +if (lean::is_exclusive(x_7)) { + lean::cnstr_set(x_7, 0, lean::box(0)); + lean::cnstr_set(x_7, 1, lean::box(0)); + x_13 = x_7; +} else { + lean::inc(x_9); + lean::inc(x_11); + lean::dec(x_7); + x_13 = lean::box(0); +} +x_14 = l_lean_parser_finish__comment__block___closed__2; +x_15 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_9); +if (lean::obj_tag(x_15) == 0) { -obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_19; obj* x_20; -x_12 = lean::mk_nat_obj(1u); -x_13 = lean::nat_sub(x_2, x_12); -lean::inc(x_5); -lean::inc(x_1); -x_19 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg(x_1, x_3, x_4, x_5, x_6); -x_20 = lean::cnstr_get(x_19, 0); -lean::inc(x_20); -if (lean::obj_tag(x_20) == 0) +obj* x_17; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_17 = lean::alloc_cnstr(0, 2, 0); +} else { + x_17 = x_13; +} +lean::cnstr_set(x_17, 0, x_15); +lean::cnstr_set(x_17, 1, x_11); +return x_17; +} +else { -obj* x_22; uint8 x_24; -x_22 = lean::cnstr_get(x_20, 0); +uint8 x_18; +x_18 = lean::cnstr_get_scalar(x_15, sizeof(void*)*1); +if (x_18 == 0) +{ +obj* x_19; obj* x_22; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_19 = lean::cnstr_get(x_15, 0); +lean::inc(x_19); +lean::dec(x_15); +x_22 = lean::cnstr_get(x_19, 2); lean::inc(x_22); -x_24 = lean::unbox(x_22); -if (x_24 == 0) -{ -obj* x_25; obj* x_28; obj* x_30; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_40; obj* x_42; obj* x_45; obj* x_46; obj* x_47; -x_25 = lean::cnstr_get(x_19, 1); -lean::inc(x_25); lean::dec(x_19); -x_28 = lean::cnstr_get(x_20, 1); -lean::inc(x_28); -x_30 = lean::cnstr_get(x_20, 2); -lean::inc(x_30); -lean::dec(x_20); -x_33 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_33, 0, x_5); -x_34 = lean::box(0); -x_35 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_36 = l_mjoin___rarg___closed__1; -x_37 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_35, x_36, x_33, x_34, x_3, x_4, x_28, x_25); -lean::dec(x_28); -lean::dec(x_33); -x_40 = lean::cnstr_get(x_37, 0); -lean::inc(x_40); -x_42 = lean::cnstr_get(x_37, 1); -lean::inc(x_42); -lean::dec(x_37); -x_45 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_30, x_40); -x_46 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_47 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_46, x_45); -if (lean::obj_tag(x_47) == 0) -{ -obj* x_48; obj* x_50; obj* x_53; obj* x_54; obj* x_56; obj* x_59; -x_48 = lean::cnstr_get(x_47, 1); -lean::inc(x_48); -x_50 = lean::cnstr_get(x_47, 2); -lean::inc(x_50); -lean::dec(x_47); -x_53 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_48, x_42); -x_54 = lean::cnstr_get(x_53, 0); -lean::inc(x_54); -x_56 = lean::cnstr_get(x_53, 1); -lean::inc(x_56); -lean::dec(x_53); -x_59 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_50, x_54); -x_14 = x_59; -x_15 = x_56; -goto lbl_16; +x_25 = l_mjoin___rarg___closed__1; +x_26 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_26, 0, x_22); +lean::closure_set(x_26, 1, x_25); +x_27 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_27, 0, x_26); +x_28 = lean::box(0); +x_29 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_29, 0, x_28); +lean::cnstr_set(x_29, 1, x_3); +lean::cnstr_set(x_29, 2, x_27); +if (lean::is_scalar(x_13)) { + x_30 = lean::alloc_cnstr(0, 2, 0); +} else { + x_30 = x_13; +} +lean::cnstr_set(x_30, 0, x_29); +lean::cnstr_set(x_30, 1, x_11); +return x_30; } else { -obj* x_60; uint8 x_62; obj* x_63; obj* x_64; obj* x_65; -x_60 = lean::cnstr_get(x_47, 0); -x_62 = lean::cnstr_get_scalar(x_47, sizeof(void*)*1); -if (lean::is_exclusive(x_47)) { - x_63 = x_47; +obj* x_32; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_32 = lean::alloc_cnstr(0, 2, 0); } else { - lean::inc(x_60); - lean::dec(x_47); - x_63 = lean::box(0); + x_32 = x_13; } -if (lean::is_scalar(x_63)) { - x_64 = lean::alloc_cnstr(1, 1, 1); -} else { - x_64 = x_63; -} -lean::cnstr_set(x_64, 0, x_60); -lean::cnstr_set_scalar(x_64, sizeof(void*)*1, x_62); -x_65 = x_64; -x_14 = x_65; -x_15 = x_42; -goto lbl_16; +lean::cnstr_set(x_32, 0, x_15); +lean::cnstr_set(x_32, 1, x_11); +return x_32; } } -else -{ -obj* x_67; obj* x_70; obj* x_72; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; -lean::dec(x_5); -x_67 = lean::cnstr_get(x_19, 1); -lean::inc(x_67); -lean::dec(x_19); -x_70 = lean::cnstr_get(x_20, 1); -x_72 = lean::cnstr_get(x_20, 2); -if (lean::is_exclusive(x_20)) { - lean::cnstr_release(x_20, 0); - x_74 = x_20; -} else { - lean::inc(x_70); - lean::inc(x_72); - lean::dec(x_20); - x_74 = lean::box(0); -} -x_75 = lean::box(0); -x_76 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_74)) { - x_77 = lean::alloc_cnstr(0, 3, 0); -} else { - x_77 = x_74; -} -lean::cnstr_set(x_77, 0, x_75); -lean::cnstr_set(x_77, 1, x_70); -lean::cnstr_set(x_77, 2, x_76); -x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_72, x_77); -x_79 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_76, x_78); -if (lean::obj_tag(x_79) == 0) -{ -obj* x_80; obj* x_82; obj* x_85; obj* x_86; obj* x_88; obj* x_91; -x_80 = lean::cnstr_get(x_79, 1); -lean::inc(x_80); -x_82 = lean::cnstr_get(x_79, 2); -lean::inc(x_82); -lean::dec(x_79); -x_85 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_80, x_67); -x_86 = lean::cnstr_get(x_85, 0); -lean::inc(x_86); -x_88 = lean::cnstr_get(x_85, 1); -lean::inc(x_88); -lean::dec(x_85); -x_91 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_82, x_86); -x_14 = x_91; -x_15 = x_88; -goto lbl_16; -} -else -{ -obj* x_92; uint8 x_94; obj* x_95; obj* x_96; obj* x_97; -x_92 = lean::cnstr_get(x_79, 0); -x_94 = lean::cnstr_get_scalar(x_79, sizeof(void*)*1); -if (lean::is_exclusive(x_79)) { - x_95 = x_79; -} else { - lean::inc(x_92); - lean::dec(x_79); - x_95 = lean::box(0); -} -if (lean::is_scalar(x_95)) { - x_96 = lean::alloc_cnstr(1, 1, 1); -} else { - x_96 = x_95; -} -lean::cnstr_set(x_96, 0, x_92); -lean::cnstr_set_scalar(x_96, sizeof(void*)*1, x_94); -x_97 = x_96; -x_14 = x_97; -x_15 = x_67; -goto lbl_16; -} -} -} -else -{ -obj* x_99; obj* x_102; uint8 x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; -lean::dec(x_5); -x_99 = lean::cnstr_get(x_19, 1); -lean::inc(x_99); -lean::dec(x_19); -x_102 = lean::cnstr_get(x_20, 0); -x_104 = lean::cnstr_get_scalar(x_20, sizeof(void*)*1); -if (lean::is_exclusive(x_20)) { - x_105 = x_20; -} else { - lean::inc(x_102); - lean::dec(x_20); - x_105 = lean::box(0); -} -if (lean::is_scalar(x_105)) { - x_106 = lean::alloc_cnstr(1, 1, 1); -} else { - x_106 = x_105; -} -lean::cnstr_set(x_106, 0, x_102); -lean::cnstr_set_scalar(x_106, sizeof(void*)*1, x_104); -x_107 = x_106; -x_108 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_109 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_108, x_107); -if (lean::obj_tag(x_109) == 0) -{ -obj* x_110; obj* x_112; obj* x_115; obj* x_116; obj* x_118; obj* x_121; -x_110 = lean::cnstr_get(x_109, 1); -lean::inc(x_110); -x_112 = lean::cnstr_get(x_109, 2); -lean::inc(x_112); -lean::dec(x_109); -x_115 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_110, x_99); -x_116 = lean::cnstr_get(x_115, 0); -lean::inc(x_116); -x_118 = lean::cnstr_get(x_115, 1); -lean::inc(x_118); -lean::dec(x_115); -x_121 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_112, x_116); -x_14 = x_121; -x_15 = x_118; -goto lbl_16; -} -else -{ -obj* x_122; uint8 x_124; obj* x_125; obj* x_126; obj* x_127; -x_122 = lean::cnstr_get(x_109, 0); -x_124 = lean::cnstr_get_scalar(x_109, sizeof(void*)*1); -if (lean::is_exclusive(x_109)) { - x_125 = x_109; -} else { - lean::inc(x_122); - lean::dec(x_109); - x_125 = lean::box(0); -} -if (lean::is_scalar(x_125)) { - x_126 = lean::alloc_cnstr(1, 1, 1); -} else { - x_126 = x_125; -} -lean::cnstr_set(x_126, 0, x_122); -lean::cnstr_set_scalar(x_126, sizeof(void*)*1, x_124); -x_127 = x_126; -x_14 = x_127; -x_15 = x_99; -goto lbl_16; -} -} -lbl_16: -{ -if (lean::obj_tag(x_14) == 0) -{ -obj* x_128; obj* x_130; obj* x_132; obj* x_134; obj* x_136; -x_128 = lean::cnstr_get(x_14, 1); -x_130 = lean::cnstr_get(x_14, 2); -if (lean::is_exclusive(x_14)) { - lean::cnstr_release(x_14, 0); - lean::cnstr_set(x_14, 1, lean::box(0)); - lean::cnstr_set(x_14, 2, lean::box(0)); - x_132 = x_14; -} else { - lean::inc(x_128); - lean::inc(x_130); - lean::dec(x_14); - x_132 = lean::box(0); -} -lean::inc(x_128); -x_134 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_1, x_13, x_3, x_4, x_128, x_15); -lean::dec(x_13); -x_136 = lean::cnstr_get(x_134, 0); -lean::inc(x_136); -if (lean::obj_tag(x_136) == 0) -{ -obj* x_140; obj* x_142; obj* x_143; obj* x_144; -lean::dec(x_132); -lean::dec(x_128); -x_140 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_142 = x_134; -} else { - lean::inc(x_140); - lean::dec(x_134); - x_142 = lean::box(0); -} -x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_142)) { - x_144 = lean::alloc_cnstr(0, 2, 0); -} else { - x_144 = x_142; -} -lean::cnstr_set(x_144, 0, x_143); -lean::cnstr_set(x_144, 1, x_140); -return x_144; -} -else -{ -uint8 x_145; -x_145 = lean::cnstr_get_scalar(x_136, sizeof(void*)*1); -if (x_145 == 0) -{ -obj* x_146; obj* x_148; obj* x_149; obj* x_152; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; obj* x_161; -x_146 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_148 = x_134; -} else { - lean::inc(x_146); - lean::dec(x_134); - x_148 = lean::box(0); -} -x_149 = lean::cnstr_get(x_136, 0); -lean::inc(x_149); -lean::dec(x_136); -x_152 = lean::cnstr_get(x_149, 2); -lean::inc(x_152); -lean::dec(x_149); -x_155 = l_mjoin___rarg___closed__1; -x_156 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_156, 0, x_152); -lean::closure_set(x_156, 1, x_155); -x_157 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_157, 0, x_156); -x_158 = lean::box(0); -if (lean::is_scalar(x_132)) { - x_159 = lean::alloc_cnstr(0, 3, 0); -} else { - x_159 = x_132; -} -lean::cnstr_set(x_159, 0, x_158); -lean::cnstr_set(x_159, 1, x_128); -lean::cnstr_set(x_159, 2, x_157); -x_160 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_159); -if (lean::is_scalar(x_148)) { - x_161 = lean::alloc_cnstr(0, 2, 0); -} else { - x_161 = x_148; -} -lean::cnstr_set(x_161, 0, x_160); -lean::cnstr_set(x_161, 1, x_146); -return x_161; -} -else -{ -obj* x_164; obj* x_166; obj* x_167; obj* x_168; -lean::dec(x_132); -lean::dec(x_128); -x_164 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_166 = x_134; -} else { - lean::inc(x_164); - lean::dec(x_134); - x_166 = lean::box(0); -} -x_167 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_166)) { - x_168 = lean::alloc_cnstr(0, 2, 0); -} else { - x_168 = x_166; -} -lean::cnstr_set(x_168, 0, x_167); -lean::cnstr_set(x_168, 1, x_164); -return x_168; -} -} -} -else -{ -obj* x_171; uint8 x_173; obj* x_174; obj* x_175; obj* x_176; obj* x_177; -lean::dec(x_1); -lean::dec(x_13); -x_171 = lean::cnstr_get(x_14, 0); -x_173 = lean::cnstr_get_scalar(x_14, sizeof(void*)*1); -if (lean::is_exclusive(x_14)) { - x_174 = x_14; -} else { - lean::inc(x_171); - lean::dec(x_14); - x_174 = lean::box(0); -} -if (lean::is_scalar(x_174)) { - x_175 = lean::alloc_cnstr(1, 1, 1); -} else { - x_175 = x_174; -} -lean::cnstr_set(x_175, 0, x_171); -lean::cnstr_set_scalar(x_175, sizeof(void*)*1, x_173); -x_176 = x_175; -x_177 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_177, 0, x_176); -lean::cnstr_set(x_177, 1, x_15); -return x_177; -} -} -} -else -{ -obj* x_179; obj* x_180; -lean::inc(x_5); -x_179 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg(x_1, x_3, x_4, x_5, x_6); -x_180 = lean::cnstr_get(x_179, 0); -lean::inc(x_180); -if (lean::obj_tag(x_180) == 0) -{ -obj* x_182; uint8 x_184; -x_182 = lean::cnstr_get(x_180, 0); -lean::inc(x_182); -x_184 = lean::unbox(x_182); -if (x_184 == 0) -{ -obj* x_185; obj* x_188; obj* x_190; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_200; obj* x_202; obj* x_205; obj* x_206; obj* x_207; -x_185 = lean::cnstr_get(x_179, 1); -lean::inc(x_185); -lean::dec(x_179); -x_188 = lean::cnstr_get(x_180, 1); -lean::inc(x_188); -x_190 = lean::cnstr_get(x_180, 2); -lean::inc(x_190); -lean::dec(x_180); -x_193 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_193, 0, x_5); -x_194 = lean::box(0); -x_195 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_196 = l_mjoin___rarg___closed__1; -x_197 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_195, x_196, x_193, x_194, x_3, x_4, x_188, x_185); -lean::dec(x_188); -lean::dec(x_193); -x_200 = lean::cnstr_get(x_197, 0); -lean::inc(x_200); -x_202 = lean::cnstr_get(x_197, 1); -lean::inc(x_202); -lean::dec(x_197); -x_205 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_190, x_200); -x_206 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_207 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_206, x_205); -if (lean::obj_tag(x_207) == 0) -{ -obj* x_208; obj* x_210; obj* x_213; obj* x_214; obj* x_216; obj* x_219; -x_208 = lean::cnstr_get(x_207, 1); -lean::inc(x_208); -x_210 = lean::cnstr_get(x_207, 2); -lean::inc(x_210); -lean::dec(x_207); -x_213 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_208, x_202); -x_214 = lean::cnstr_get(x_213, 0); -lean::inc(x_214); -x_216 = lean::cnstr_get(x_213, 1); -lean::inc(x_216); -lean::dec(x_213); -x_219 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_210, x_214); -x_7 = x_219; -x_8 = x_216; -goto lbl_9; -} -else -{ -obj* x_220; uint8 x_222; obj* x_223; obj* x_224; obj* x_225; -x_220 = lean::cnstr_get(x_207, 0); -x_222 = lean::cnstr_get_scalar(x_207, sizeof(void*)*1); -if (lean::is_exclusive(x_207)) { - x_223 = x_207; -} else { - lean::inc(x_220); - lean::dec(x_207); - x_223 = lean::box(0); -} -if (lean::is_scalar(x_223)) { - x_224 = lean::alloc_cnstr(1, 1, 1); -} else { - x_224 = x_223; -} -lean::cnstr_set(x_224, 0, x_220); -lean::cnstr_set_scalar(x_224, sizeof(void*)*1, x_222); -x_225 = x_224; -x_7 = x_225; -x_8 = x_202; -goto lbl_9; -} -} -else -{ -obj* x_227; obj* x_230; obj* x_232; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; obj* x_239; -lean::dec(x_5); -x_227 = lean::cnstr_get(x_179, 1); -lean::inc(x_227); -lean::dec(x_179); -x_230 = lean::cnstr_get(x_180, 1); -x_232 = lean::cnstr_get(x_180, 2); -if (lean::is_exclusive(x_180)) { - lean::cnstr_release(x_180, 0); - x_234 = x_180; -} else { - lean::inc(x_230); - lean::inc(x_232); - lean::dec(x_180); - x_234 = lean::box(0); -} -x_235 = lean::box(0); -x_236 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_234)) { - x_237 = lean::alloc_cnstr(0, 3, 0); -} else { - x_237 = x_234; -} -lean::cnstr_set(x_237, 0, x_235); -lean::cnstr_set(x_237, 1, x_230); -lean::cnstr_set(x_237, 2, x_236); -x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_232, x_237); -x_239 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_236, x_238); -if (lean::obj_tag(x_239) == 0) -{ -obj* x_240; obj* x_242; obj* x_245; obj* x_246; obj* x_248; obj* x_251; -x_240 = lean::cnstr_get(x_239, 1); -lean::inc(x_240); -x_242 = lean::cnstr_get(x_239, 2); -lean::inc(x_242); -lean::dec(x_239); -x_245 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_240, x_227); -x_246 = lean::cnstr_get(x_245, 0); -lean::inc(x_246); -x_248 = lean::cnstr_get(x_245, 1); -lean::inc(x_248); -lean::dec(x_245); -x_251 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_242, x_246); -x_7 = x_251; -x_8 = x_248; -goto lbl_9; -} -else -{ -obj* x_252; uint8 x_254; obj* x_255; obj* x_256; obj* x_257; -x_252 = lean::cnstr_get(x_239, 0); -x_254 = lean::cnstr_get_scalar(x_239, sizeof(void*)*1); -if (lean::is_exclusive(x_239)) { - x_255 = x_239; -} else { - lean::inc(x_252); - lean::dec(x_239); - x_255 = lean::box(0); -} -if (lean::is_scalar(x_255)) { - x_256 = lean::alloc_cnstr(1, 1, 1); -} else { - x_256 = x_255; -} -lean::cnstr_set(x_256, 0, x_252); -lean::cnstr_set_scalar(x_256, sizeof(void*)*1, x_254); -x_257 = x_256; -x_7 = x_257; -x_8 = x_227; -goto lbl_9; -} -} -} -else -{ -obj* x_259; obj* x_262; uint8 x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; obj* x_269; -lean::dec(x_5); -x_259 = lean::cnstr_get(x_179, 1); -lean::inc(x_259); -lean::dec(x_179); -x_262 = lean::cnstr_get(x_180, 0); -x_264 = lean::cnstr_get_scalar(x_180, sizeof(void*)*1); -if (lean::is_exclusive(x_180)) { - x_265 = x_180; -} else { - lean::inc(x_262); - lean::dec(x_180); - x_265 = lean::box(0); -} -if (lean::is_scalar(x_265)) { - x_266 = lean::alloc_cnstr(1, 1, 1); -} else { - x_266 = x_265; -} -lean::cnstr_set(x_266, 0, x_262); -lean::cnstr_set_scalar(x_266, sizeof(void*)*1, x_264); -x_267 = x_266; -x_268 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_269 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_268, x_267); -if (lean::obj_tag(x_269) == 0) -{ -obj* x_270; obj* x_272; obj* x_275; obj* x_276; obj* x_278; obj* x_281; -x_270 = lean::cnstr_get(x_269, 1); -lean::inc(x_270); -x_272 = lean::cnstr_get(x_269, 2); -lean::inc(x_272); -lean::dec(x_269); -x_275 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_270, x_259); -x_276 = lean::cnstr_get(x_275, 0); -lean::inc(x_276); -x_278 = lean::cnstr_get(x_275, 1); -lean::inc(x_278); -lean::dec(x_275); -x_281 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_272, x_276); -x_7 = x_281; -x_8 = x_278; -goto lbl_9; -} -else -{ -obj* x_282; uint8 x_284; obj* x_285; obj* x_286; obj* x_287; -x_282 = lean::cnstr_get(x_269, 0); -x_284 = lean::cnstr_get_scalar(x_269, sizeof(void*)*1); -if (lean::is_exclusive(x_269)) { - x_285 = x_269; -} else { - lean::inc(x_282); - lean::dec(x_269); - x_285 = lean::box(0); -} -if (lean::is_scalar(x_285)) { - x_286 = lean::alloc_cnstr(1, 1, 1); -} else { - x_286 = x_285; -} -lean::cnstr_set(x_286, 0, x_282); -lean::cnstr_set_scalar(x_286, sizeof(void*)*1, x_284); -x_287 = x_286; -x_7 = x_287; -x_8 = x_259; -goto lbl_9; -} -} -} -lbl_9: +} +} +obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +_start: { +obj* x_6; obj* x_7; +x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(x_0, x_2, x_3, x_4, x_5); +x_7 = lean::cnstr_get(x_6, 0); +lean::inc(x_7); if (lean::obj_tag(x_7) == 0) { -obj* x_288; obj* x_290; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; -x_288 = lean::cnstr_get(x_7, 1); -x_290 = lean::cnstr_get(x_7, 2); +obj* x_9; obj* x_11; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_9 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_11 = x_6; +} else { + lean::inc(x_9); + lean::dec(x_6); + x_11 = lean::box(0); +} +x_12 = lean::cnstr_get(x_7, 1); +x_14 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - x_292 = x_7; + x_16 = x_7; } else { - lean::inc(x_288); - lean::inc(x_290); - lean::dec(x_7); - x_292 = lean::box(0); -} -x_293 = lean::box(0); -x_294 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_292)) { - x_295 = lean::alloc_cnstr(0, 3, 0); -} else { - x_295 = x_292; -} -lean::cnstr_set(x_295, 0, x_293); -lean::cnstr_set(x_295, 1, x_288); -lean::cnstr_set(x_295, 2, x_294); -x_296 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_290, x_295); -x_297 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_297, 0, x_296); -lean::cnstr_set(x_297, 1, x_8); -return x_297; -} -else -{ -obj* x_298; uint8 x_300; obj* x_301; obj* x_302; obj* x_303; obj* x_304; -x_298 = lean::cnstr_get(x_7, 0); -x_300 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_301 = x_7; -} else { - lean::inc(x_298); - lean::dec(x_7); - x_301 = lean::box(0); -} -if (lean::is_scalar(x_301)) { - x_302 = lean::alloc_cnstr(1, 1, 1); -} else { - x_302 = x_301; -} -lean::cnstr_set(x_302, 0, x_298); -lean::cnstr_set_scalar(x_302, sizeof(void*)*1, x_300); -x_303 = x_302; -x_304 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_304, 0, x_303); -lean::cnstr_set(x_304, 1, x_8); -return x_304; -} -} -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { -_start: -{ -obj* x_6; obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_15; obj* x_16; -x_6 = l_string_iterator_remaining___main(x_4); -lean::inc(x_4); -x_8 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_1, x_6, x_2, x_3, x_4, x_5); -lean::dec(x_6); -x_10 = lean::cnstr_get(x_8, 0); -x_12 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { - lean::cnstr_set(x_8, 0, lean::box(0)); - lean::cnstr_set(x_8, 1, lean::box(0)); - x_14 = x_8; -} else { - lean::inc(x_10); lean::inc(x_12); - lean::dec(x_8); - x_14 = lean::box(0); + lean::inc(x_14); + lean::dec(x_7); + x_16 = lean::box(0); } -x_15 = l_lean_parser_finish__comment__block___closed__2; -x_16 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_10); -if (lean::obj_tag(x_16) == 0) -{ -obj* x_18; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_18 = lean::alloc_cnstr(0, 2, 0); +lean::inc(x_12); +x_18 = l_lean_parser_mk__raw__res(x_1, x_12); +x_19 = l_lean_parser_finish__comment__block___closed__2; +if (lean::is_scalar(x_16)) { + x_20 = lean::alloc_cnstr(0, 3, 0); } else { - x_18 = x_14; + x_20 = x_16; } -lean::cnstr_set(x_18, 0, x_16); -lean::cnstr_set(x_18, 1, x_12); -return x_18; +lean::cnstr_set(x_20, 0, x_18); +lean::cnstr_set(x_20, 1, x_12); +lean::cnstr_set(x_20, 2, x_19); +x_21 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_20); +if (lean::is_scalar(x_11)) { + x_22 = lean::alloc_cnstr(0, 2, 0); +} else { + x_22 = x_11; +} +lean::cnstr_set(x_22, 0, x_21); +lean::cnstr_set(x_22, 1, x_9); +return x_22; } else { -uint8 x_19; -x_19 = lean::cnstr_get_scalar(x_16, sizeof(void*)*1); -if (x_19 == 0) -{ -obj* x_20; obj* x_23; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; -x_20 = lean::cnstr_get(x_16, 0); -lean::inc(x_20); -lean::dec(x_16); -x_23 = lean::cnstr_get(x_20, 2); -lean::inc(x_23); -lean::dec(x_20); -x_26 = l_mjoin___rarg___closed__1; -x_27 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_27, 0, x_23); -lean::closure_set(x_27, 1, x_26); -x_28 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_28, 0, x_27); -x_29 = lean::box(0); -x_30 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_4); -lean::cnstr_set(x_30, 2, x_28); -if (lean::is_scalar(x_14)) { - x_31 = lean::alloc_cnstr(0, 2, 0); +obj* x_24; obj* x_26; obj* x_27; uint8 x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; +lean::dec(x_1); +x_24 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_26 = x_6; } else { - x_31 = x_14; + lean::inc(x_24); + lean::dec(x_6); + x_26 = lean::box(0); } -lean::cnstr_set(x_31, 0, x_30); -lean::cnstr_set(x_31, 1, x_12); -return x_31; +x_27 = lean::cnstr_get(x_7, 0); +x_29 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); +if (lean::is_exclusive(x_7)) { + x_30 = x_7; +} else { + lean::inc(x_27); + lean::dec(x_7); + x_30 = lean::box(0); } -else -{ -obj* x_33; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { +if (lean::is_scalar(x_30)) { + x_31 = lean::alloc_cnstr(1, 1, 1); +} else { + x_31 = x_30; +} +lean::cnstr_set(x_31, 0, x_27); +lean::cnstr_set_scalar(x_31, sizeof(void*)*1, x_29); +x_32 = x_31; +if (lean::is_scalar(x_26)) { x_33 = lean::alloc_cnstr(0, 2, 0); } else { - x_33 = x_14; + x_33 = x_26; } -lean::cnstr_set(x_33, 0, x_16); -lean::cnstr_set(x_33, 1, x_12); +lean::cnstr_set(x_33, 0, x_32); +lean::cnstr_set(x_33, 1, x_24); return x_33; } } } -} -obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; obj* x_8; -x_7 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(x_0, x_1, x_3, x_4, x_5, x_6); -x_8 = lean::cnstr_get(x_7, 0); -lean::inc(x_8); -if (lean::obj_tag(x_8) == 0) -{ -obj* x_10; obj* x_12; obj* x_13; obj* x_15; obj* x_17; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; -x_10 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_12 = x_7; -} else { - lean::inc(x_10); - lean::dec(x_7); - x_12 = lean::box(0); -} -x_13 = lean::cnstr_get(x_8, 1); -x_15 = lean::cnstr_get(x_8, 2); -if (lean::is_exclusive(x_8)) { - lean::cnstr_release(x_8, 0); - x_17 = x_8; -} else { - lean::inc(x_13); - lean::inc(x_15); - lean::dec(x_8); - x_17 = lean::box(0); -} -lean::inc(x_13); -x_19 = l_lean_parser_mk__raw__res(x_2, x_13); -x_20 = l_lean_parser_finish__comment__block___closed__2; -if (lean::is_scalar(x_17)) { - x_21 = lean::alloc_cnstr(0, 3, 0); -} else { - x_21 = x_17; -} -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_13); -lean::cnstr_set(x_21, 2, x_20); -x_22 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_21); -if (lean::is_scalar(x_12)) { - x_23 = lean::alloc_cnstr(0, 2, 0); -} else { - x_23 = x_12; -} -lean::cnstr_set(x_23, 0, x_22); -lean::cnstr_set(x_23, 1, x_10); -return x_23; -} -else -{ -obj* x_25; obj* x_27; obj* x_28; uint8 x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; -lean::dec(x_2); -x_25 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_27 = x_7; -} else { - lean::inc(x_25); - lean::dec(x_7); - x_27 = lean::box(0); -} -x_28 = lean::cnstr_get(x_8, 0); -x_30 = lean::cnstr_get_scalar(x_8, sizeof(void*)*1); -if (lean::is_exclusive(x_8)) { - x_31 = x_8; -} else { - lean::inc(x_28); - lean::dec(x_8); - x_31 = lean::box(0); -} -if (lean::is_scalar(x_31)) { - x_32 = lean::alloc_cnstr(1, 1, 1); -} else { - x_32 = x_31; -} -lean::cnstr_set(x_32, 0, x_28); -lean::cnstr_set_scalar(x_32, sizeof(void*)*1, x_30); -x_33 = x_32; -if (lean::is_scalar(x_27)) { - x_34 = lean::alloc_cnstr(0, 2, 0); -} else { - x_34 = x_27; -} -lean::cnstr_set(x_34, 0, x_33); -lean::cnstr_set(x_34, 1, x_25); -return x_34; -} -} -} obj* _init_l_lean_parser_command_doc__comment_parser_lean_parser_has__view() { _start: { -obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_9; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; +obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; x_0 = lean::mk_string("/--"); x_1 = l_string_trim(x_0); lean::dec(x_0); @@ -4787,104 +4745,90 @@ lean::closure_set(x_6, 2, x_4); x_7 = lean::mk_string("-/"); lean::inc(x_7); x_9 = l_string_quote(x_7); -lean::inc(x_9); -x_11 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); -lean::closure_set(x_11, 0, x_9); -x_12 = lean::alloc_closure(reinterpret_cast(l_lean_parser_with__trailing___rarg___lambda__1), 2, 0); -x_13 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__1___rarg___boxed), 4, 1); +x_10 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); +lean::closure_set(x_10, 0, x_9); +x_11 = lean::alloc_closure(reinterpret_cast(l_lean_parser_with__trailing___rarg___lambda__1), 2, 0); +x_12 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__1___rarg___boxed), 4, 1); +lean::closure_set(x_12, 0, x_11); +x_13 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed), 5, 1); lean::closure_set(x_13, 0, x_12); -x_14 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed), 5, 1); -lean::closure_set(x_14, 0, x_13); -x_15 = lean::alloc_closure(reinterpret_cast(l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed), 7, 2); -lean::closure_set(x_15, 0, x_9); -lean::closure_set(x_15, 1, x_11); -x_16 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg), 6, 2); -lean::closure_set(x_16, 0, x_14); -lean::closure_set(x_16, 1, x_15); -x_17 = l_string_trim(x_7); +x_14 = lean::alloc_closure(reinterpret_cast(l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed), 6, 1); +lean::closure_set(x_14, 0, x_10); +x_15 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg), 6, 2); +lean::closure_set(x_15, 0, x_13); +lean::closure_set(x_15, 1, x_14); +x_16 = l_string_trim(x_7); lean::dec(x_7); -lean::inc(x_17); -x_20 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); -lean::closure_set(x_20, 0, x_17); -x_21 = lean::alloc_closure(reinterpret_cast(l_lean_parser_symbol__core___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__1___boxed), 7, 3); -lean::closure_set(x_21, 0, x_17); -lean::closure_set(x_21, 1, x_5); -lean::closure_set(x_21, 2, x_20); -x_22 = lean::box(0); +lean::inc(x_16); +x_19 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); +lean::closure_set(x_19, 0, x_16); +x_20 = lean::alloc_closure(reinterpret_cast(l_lean_parser_symbol__core___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__1___boxed), 7, 3); +lean::closure_set(x_20, 0, x_16); +lean::closure_set(x_20, 1, x_5); +lean::closure_set(x_20, 2, x_19); +x_21 = lean::box(0); +x_22 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_22, 0, x_20); +lean::cnstr_set(x_22, 1, x_21); x_23 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_23, 0, x_21); +lean::cnstr_set(x_23, 0, x_15); lean::cnstr_set(x_23, 1, x_22); x_24 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_24, 0, x_16); +lean::cnstr_set(x_24, 0, x_6); lean::cnstr_set(x_24, 1, x_23); -x_25 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_25, 0, x_6); -lean::cnstr_set(x_25, 1, x_24); -x_26 = l_lean_parser_command__parser__m_monad___closed__1; -x_27 = l_lean_parser_command__parser__m_monad__except___closed__1; -x_28 = l_lean_parser_command__parser__m_lean_parser_monad__parsec___closed__1; -x_29 = l_lean_parser_command__parser__m_alternative___closed__1; -x_30 = l_lean_parser_command_doc__comment; -x_31 = l_lean_parser_command_doc__comment_has__view; -x_32 = l_lean_parser_combinators_node_view___rarg(x_26, x_27, x_28, x_29, x_30, x_25, x_31); -lean::dec(x_25); -return x_32; +x_25 = l_lean_parser_command__parser__m_monad___closed__1; +x_26 = l_lean_parser_command__parser__m_monad__except___closed__1; +x_27 = l_lean_parser_command__parser__m_lean_parser_monad__parsec___closed__1; +x_28 = l_lean_parser_command__parser__m_alternative___closed__1; +x_29 = l_lean_parser_command_doc__comment; +x_30 = l_lean_parser_command_doc__comment_has__view; +x_31 = l_lean_parser_combinators_node_view___rarg(x_25, x_26, x_27, x_28, x_29, x_24, x_30); +lean::dec(x_24); +return x_31; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___rarg(x_0, x_1, x_2, x_3, x_4); +x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(x_0, x_1, x_2, x_3, x_4); lean::dec(x_1); lean::dec(x_2); return x_5; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__1(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; -x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -return x_7; -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; -x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(x_0, x_1, x_2, x_3, x_4, x_5); -lean::dec(x_0); +x_6 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__3(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_1); lean::dec(x_2); lean::dec(x_3); return x_6; } } -obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { -obj* x_7; -x_7 = l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); +obj* x_5; +x_5 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser_lean_parser_has__view___spec__2(x_0, x_1, x_2, x_3, x_4); +lean::dec(x_1); +lean::dec(x_2); +return x_5; +} +} +obj* l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +_start: +{ +obj* x_6; +x_6 = l_lean_parser_command_doc__comment_parser_lean_parser_has__view___lambda__1(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -return x_7; +return x_6; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_7; obj* x_8; @@ -5026,1032 +4970,1270 @@ return x_43; } } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(obj* x_0) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg___boxed), 5, 0); -return x_1; -} -} -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: +obj* x_6; obj* x_7; obj* x_9; uint8 x_10; +x_9 = lean::mk_nat_obj(0u); +x_10 = lean::nat_dec_eq(x_1, x_9); +if (x_10 == 0) { -obj* x_7; obj* x_8; obj* x_10; uint8 x_11; -x_10 = lean::mk_nat_obj(0u); -x_11 = lean::nat_dec_eq(x_2, x_10); -if (x_11 == 0) -{ -obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_19; obj* x_20; -x_12 = lean::mk_nat_obj(1u); -x_13 = lean::nat_sub(x_2, x_12); -lean::inc(x_5); -lean::inc(x_1); -x_19 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg(x_1, x_3, x_4, x_5, x_6); -x_20 = lean::cnstr_get(x_19, 0); -lean::inc(x_20); -if (lean::obj_tag(x_20) == 0) -{ -obj* x_22; uint8 x_24; -x_22 = lean::cnstr_get(x_20, 0); -lean::inc(x_22); -x_24 = lean::unbox(x_22); -if (x_24 == 0) -{ -obj* x_25; obj* x_28; obj* x_30; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_40; obj* x_42; obj* x_45; obj* x_46; obj* x_47; -x_25 = lean::cnstr_get(x_19, 1); -lean::inc(x_25); -lean::dec(x_19); -x_28 = lean::cnstr_get(x_20, 1); -lean::inc(x_28); -x_30 = lean::cnstr_get(x_20, 2); -lean::inc(x_30); -lean::dec(x_20); -x_33 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_33, 0, x_5); -x_34 = lean::box(0); -x_35 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_36 = l_mjoin___rarg___closed__1; -x_37 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_35, x_36, x_33, x_34, x_3, x_4, x_28, x_25); -lean::dec(x_28); -lean::dec(x_33); -x_40 = lean::cnstr_get(x_37, 0); -lean::inc(x_40); -x_42 = lean::cnstr_get(x_37, 1); -lean::inc(x_42); -lean::dec(x_37); -x_45 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_30, x_40); -x_46 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_47 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_46, x_45); -if (lean::obj_tag(x_47) == 0) -{ -obj* x_48; obj* x_50; obj* x_53; obj* x_54; obj* x_56; obj* x_59; -x_48 = lean::cnstr_get(x_47, 1); -lean::inc(x_48); -x_50 = lean::cnstr_get(x_47, 2); -lean::inc(x_50); -lean::dec(x_47); -x_53 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_48, x_42); -x_54 = lean::cnstr_get(x_53, 0); -lean::inc(x_54); -x_56 = lean::cnstr_get(x_53, 1); -lean::inc(x_56); -lean::dec(x_53); -x_59 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_50, x_54); -x_14 = x_59; -x_15 = x_56; -goto lbl_16; -} -else -{ -obj* x_60; uint8 x_62; obj* x_63; obj* x_64; obj* x_65; -x_60 = lean::cnstr_get(x_47, 0); -x_62 = lean::cnstr_get_scalar(x_47, sizeof(void*)*1); -if (lean::is_exclusive(x_47)) { - x_63 = x_47; -} else { - lean::inc(x_60); - lean::dec(x_47); - x_63 = lean::box(0); -} -if (lean::is_scalar(x_63)) { - x_64 = lean::alloc_cnstr(1, 1, 1); -} else { - x_64 = x_63; -} -lean::cnstr_set(x_64, 0, x_60); -lean::cnstr_set_scalar(x_64, sizeof(void*)*1, x_62); -x_65 = x_64; -x_14 = x_65; -x_15 = x_42; -goto lbl_16; -} -} -else -{ -obj* x_67; obj* x_70; obj* x_72; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; -lean::dec(x_5); -x_67 = lean::cnstr_get(x_19, 1); -lean::inc(x_67); -lean::dec(x_19); -x_70 = lean::cnstr_get(x_20, 1); -x_72 = lean::cnstr_get(x_20, 2); -if (lean::is_exclusive(x_20)) { - lean::cnstr_release(x_20, 0); - x_74 = x_20; -} else { - lean::inc(x_70); - lean::inc(x_72); - lean::dec(x_20); - x_74 = lean::box(0); -} -x_75 = lean::box(0); -x_76 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_74)) { - x_77 = lean::alloc_cnstr(0, 3, 0); -} else { - x_77 = x_74; -} -lean::cnstr_set(x_77, 0, x_75); -lean::cnstr_set(x_77, 1, x_70); -lean::cnstr_set(x_77, 2, x_76); -x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_72, x_77); -x_79 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_76, x_78); -if (lean::obj_tag(x_79) == 0) -{ -obj* x_80; obj* x_82; obj* x_85; obj* x_86; obj* x_88; obj* x_91; -x_80 = lean::cnstr_get(x_79, 1); -lean::inc(x_80); -x_82 = lean::cnstr_get(x_79, 2); -lean::inc(x_82); -lean::dec(x_79); -x_85 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_80, x_67); -x_86 = lean::cnstr_get(x_85, 0); -lean::inc(x_86); -x_88 = lean::cnstr_get(x_85, 1); -lean::inc(x_88); -lean::dec(x_85); -x_91 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_82, x_86); -x_14 = x_91; -x_15 = x_88; -goto lbl_16; -} -else -{ -obj* x_92; uint8 x_94; obj* x_95; obj* x_96; obj* x_97; -x_92 = lean::cnstr_get(x_79, 0); -x_94 = lean::cnstr_get_scalar(x_79, sizeof(void*)*1); -if (lean::is_exclusive(x_79)) { - x_95 = x_79; -} else { - lean::inc(x_92); - lean::dec(x_79); - x_95 = lean::box(0); -} -if (lean::is_scalar(x_95)) { - x_96 = lean::alloc_cnstr(1, 1, 1); -} else { - x_96 = x_95; -} -lean::cnstr_set(x_96, 0, x_92); -lean::cnstr_set_scalar(x_96, sizeof(void*)*1, x_94); -x_97 = x_96; -x_14 = x_97; -x_15 = x_67; -goto lbl_16; -} -} -} -else -{ -obj* x_99; obj* x_102; uint8 x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; -lean::dec(x_5); -x_99 = lean::cnstr_get(x_19, 1); -lean::inc(x_99); -lean::dec(x_19); -x_102 = lean::cnstr_get(x_20, 0); -x_104 = lean::cnstr_get_scalar(x_20, sizeof(void*)*1); -if (lean::is_exclusive(x_20)) { - x_105 = x_20; -} else { - lean::inc(x_102); - lean::dec(x_20); - x_105 = lean::box(0); -} -if (lean::is_scalar(x_105)) { - x_106 = lean::alloc_cnstr(1, 1, 1); -} else { - x_106 = x_105; -} -lean::cnstr_set(x_106, 0, x_102); -lean::cnstr_set_scalar(x_106, sizeof(void*)*1, x_104); -x_107 = x_106; -x_108 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_109 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_108, x_107); -if (lean::obj_tag(x_109) == 0) -{ -obj* x_110; obj* x_112; obj* x_115; obj* x_116; obj* x_118; obj* x_121; -x_110 = lean::cnstr_get(x_109, 1); -lean::inc(x_110); -x_112 = lean::cnstr_get(x_109, 2); -lean::inc(x_112); -lean::dec(x_109); -x_115 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_110, x_99); -x_116 = lean::cnstr_get(x_115, 0); -lean::inc(x_116); -x_118 = lean::cnstr_get(x_115, 1); -lean::inc(x_118); -lean::dec(x_115); -x_121 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_112, x_116); -x_14 = x_121; -x_15 = x_118; -goto lbl_16; -} -else -{ -obj* x_122; uint8 x_124; obj* x_125; obj* x_126; obj* x_127; -x_122 = lean::cnstr_get(x_109, 0); -x_124 = lean::cnstr_get_scalar(x_109, sizeof(void*)*1); -if (lean::is_exclusive(x_109)) { - x_125 = x_109; -} else { - lean::inc(x_122); - lean::dec(x_109); - x_125 = lean::box(0); -} -if (lean::is_scalar(x_125)) { - x_126 = lean::alloc_cnstr(1, 1, 1); -} else { - x_126 = x_125; -} -lean::cnstr_set(x_126, 0, x_122); -lean::cnstr_set_scalar(x_126, sizeof(void*)*1, x_124); -x_127 = x_126; -x_14 = x_127; -x_15 = x_99; -goto lbl_16; -} -} -lbl_16: -{ -if (lean::obj_tag(x_14) == 0) -{ -obj* x_128; obj* x_130; obj* x_132; obj* x_134; obj* x_136; -x_128 = lean::cnstr_get(x_14, 1); -x_130 = lean::cnstr_get(x_14, 2); -if (lean::is_exclusive(x_14)) { - lean::cnstr_release(x_14, 0); - lean::cnstr_set(x_14, 1, lean::box(0)); - lean::cnstr_set(x_14, 2, lean::box(0)); - x_132 = x_14; -} else { - lean::inc(x_128); - lean::inc(x_130); - lean::dec(x_14); - x_132 = lean::box(0); -} -lean::inc(x_128); -x_134 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_1, x_13, x_3, x_4, x_128, x_15); -lean::dec(x_13); -x_136 = lean::cnstr_get(x_134, 0); -lean::inc(x_136); -if (lean::obj_tag(x_136) == 0) -{ -obj* x_140; obj* x_142; obj* x_143; obj* x_144; -lean::dec(x_132); -lean::dec(x_128); -x_140 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_142 = x_134; -} else { - lean::inc(x_140); - lean::dec(x_134); - x_142 = lean::box(0); -} -x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_142)) { - x_144 = lean::alloc_cnstr(0, 2, 0); -} else { - x_144 = x_142; -} -lean::cnstr_set(x_144, 0, x_143); -lean::cnstr_set(x_144, 1, x_140); -return x_144; -} -else -{ -uint8 x_145; -x_145 = lean::cnstr_get_scalar(x_136, sizeof(void*)*1); -if (x_145 == 0) -{ -obj* x_146; obj* x_148; obj* x_149; obj* x_152; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; obj* x_161; -x_146 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_148 = x_134; -} else { - lean::inc(x_146); - lean::dec(x_134); - x_148 = lean::box(0); -} -x_149 = lean::cnstr_get(x_136, 0); -lean::inc(x_149); -lean::dec(x_136); -x_152 = lean::cnstr_get(x_149, 2); -lean::inc(x_152); -lean::dec(x_149); -x_155 = l_mjoin___rarg___closed__1; -x_156 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_156, 0, x_152); -lean::closure_set(x_156, 1, x_155); -x_157 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_157, 0, x_156); -x_158 = lean::box(0); -if (lean::is_scalar(x_132)) { - x_159 = lean::alloc_cnstr(0, 3, 0); -} else { - x_159 = x_132; -} -lean::cnstr_set(x_159, 0, x_158); -lean::cnstr_set(x_159, 1, x_128); -lean::cnstr_set(x_159, 2, x_157); -x_160 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_159); -if (lean::is_scalar(x_148)) { - x_161 = lean::alloc_cnstr(0, 2, 0); -} else { - x_161 = x_148; -} -lean::cnstr_set(x_161, 0, x_160); -lean::cnstr_set(x_161, 1, x_146); -return x_161; -} -else -{ -obj* x_164; obj* x_166; obj* x_167; obj* x_168; -lean::dec(x_132); -lean::dec(x_128); -x_164 = lean::cnstr_get(x_134, 1); -if (lean::is_exclusive(x_134)) { - lean::cnstr_release(x_134, 0); - x_166 = x_134; -} else { - lean::inc(x_164); - lean::dec(x_134); - x_166 = lean::box(0); -} -x_167 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_130, x_136); -if (lean::is_scalar(x_166)) { - x_168 = lean::alloc_cnstr(0, 2, 0); -} else { - x_168 = x_166; -} -lean::cnstr_set(x_168, 0, x_167); -lean::cnstr_set(x_168, 1, x_164); -return x_168; -} -} -} -else -{ -obj* x_171; uint8 x_173; obj* x_174; obj* x_175; obj* x_176; obj* x_177; -lean::dec(x_1); -lean::dec(x_13); -x_171 = lean::cnstr_get(x_14, 0); -x_173 = lean::cnstr_get_scalar(x_14, sizeof(void*)*1); -if (lean::is_exclusive(x_14)) { - x_174 = x_14; -} else { - lean::inc(x_171); - lean::dec(x_14); - x_174 = lean::box(0); -} -if (lean::is_scalar(x_174)) { - x_175 = lean::alloc_cnstr(1, 1, 1); -} else { - x_175 = x_174; -} -lean::cnstr_set(x_175, 0, x_171); -lean::cnstr_set_scalar(x_175, sizeof(void*)*1, x_173); -x_176 = x_175; -x_177 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_177, 0, x_176); -lean::cnstr_set(x_177, 1, x_15); -return x_177; -} -} -} -else -{ -obj* x_179; obj* x_180; -lean::inc(x_5); -x_179 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg(x_1, x_3, x_4, x_5, x_6); -x_180 = lean::cnstr_get(x_179, 0); -lean::inc(x_180); -if (lean::obj_tag(x_180) == 0) -{ -obj* x_182; uint8 x_184; -x_182 = lean::cnstr_get(x_180, 0); -lean::inc(x_182); -x_184 = lean::unbox(x_182); -if (x_184 == 0) -{ -obj* x_185; obj* x_188; obj* x_190; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_200; obj* x_202; obj* x_205; obj* x_206; obj* x_207; -x_185 = lean::cnstr_get(x_179, 1); -lean::inc(x_185); -lean::dec(x_179); -x_188 = lean::cnstr_get(x_180, 1); -lean::inc(x_188); -x_190 = lean::cnstr_get(x_180, 2); -lean::inc(x_190); -lean::dec(x_180); -x_193 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_193, 0, x_5); -x_194 = lean::box(0); -x_195 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_196 = l_mjoin___rarg___closed__1; -x_197 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_195, x_196, x_193, x_194, x_3, x_4, x_188, x_185); -lean::dec(x_188); -lean::dec(x_193); -x_200 = lean::cnstr_get(x_197, 0); -lean::inc(x_200); -x_202 = lean::cnstr_get(x_197, 1); -lean::inc(x_202); -lean::dec(x_197); -x_205 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_190, x_200); -x_206 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_207 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_206, x_205); -if (lean::obj_tag(x_207) == 0) -{ -obj* x_208; obj* x_210; obj* x_213; obj* x_214; obj* x_216; obj* x_219; -x_208 = lean::cnstr_get(x_207, 1); -lean::inc(x_208); -x_210 = lean::cnstr_get(x_207, 2); -lean::inc(x_210); -lean::dec(x_207); -x_213 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_208, x_202); -x_214 = lean::cnstr_get(x_213, 0); -lean::inc(x_214); -x_216 = lean::cnstr_get(x_213, 1); -lean::inc(x_216); -lean::dec(x_213); -x_219 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_210, x_214); -x_7 = x_219; -x_8 = x_216; -goto lbl_9; -} -else -{ -obj* x_220; uint8 x_222; obj* x_223; obj* x_224; obj* x_225; -x_220 = lean::cnstr_get(x_207, 0); -x_222 = lean::cnstr_get_scalar(x_207, sizeof(void*)*1); -if (lean::is_exclusive(x_207)) { - x_223 = x_207; -} else { - lean::inc(x_220); - lean::dec(x_207); - x_223 = lean::box(0); -} -if (lean::is_scalar(x_223)) { - x_224 = lean::alloc_cnstr(1, 1, 1); -} else { - x_224 = x_223; -} -lean::cnstr_set(x_224, 0, x_220); -lean::cnstr_set_scalar(x_224, sizeof(void*)*1, x_222); -x_225 = x_224; -x_7 = x_225; -x_8 = x_202; -goto lbl_9; -} -} -else -{ -obj* x_227; obj* x_230; obj* x_232; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; obj* x_239; -lean::dec(x_5); -x_227 = lean::cnstr_get(x_179, 1); -lean::inc(x_227); -lean::dec(x_179); -x_230 = lean::cnstr_get(x_180, 1); -x_232 = lean::cnstr_get(x_180, 2); -if (lean::is_exclusive(x_180)) { - lean::cnstr_release(x_180, 0); - x_234 = x_180; -} else { - lean::inc(x_230); - lean::inc(x_232); - lean::dec(x_180); - x_234 = lean::box(0); -} -x_235 = lean::box(0); -x_236 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_234)) { - x_237 = lean::alloc_cnstr(0, 3, 0); -} else { - x_237 = x_234; -} -lean::cnstr_set(x_237, 0, x_235); -lean::cnstr_set(x_237, 1, x_230); -lean::cnstr_set(x_237, 2, x_236); -x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_232, x_237); -x_239 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_236, x_238); -if (lean::obj_tag(x_239) == 0) -{ -obj* x_240; obj* x_242; obj* x_245; obj* x_246; obj* x_248; obj* x_251; -x_240 = lean::cnstr_get(x_239, 1); -lean::inc(x_240); -x_242 = lean::cnstr_get(x_239, 2); -lean::inc(x_242); -lean::dec(x_239); -x_245 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_240, x_227); -x_246 = lean::cnstr_get(x_245, 0); -lean::inc(x_246); -x_248 = lean::cnstr_get(x_245, 1); -lean::inc(x_248); -lean::dec(x_245); -x_251 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_242, x_246); -x_7 = x_251; -x_8 = x_248; -goto lbl_9; -} -else -{ -obj* x_252; uint8 x_254; obj* x_255; obj* x_256; obj* x_257; -x_252 = lean::cnstr_get(x_239, 0); -x_254 = lean::cnstr_get_scalar(x_239, sizeof(void*)*1); -if (lean::is_exclusive(x_239)) { - x_255 = x_239; -} else { - lean::inc(x_252); - lean::dec(x_239); - x_255 = lean::box(0); -} -if (lean::is_scalar(x_255)) { - x_256 = lean::alloc_cnstr(1, 1, 1); -} else { - x_256 = x_255; -} -lean::cnstr_set(x_256, 0, x_252); -lean::cnstr_set_scalar(x_256, sizeof(void*)*1, x_254); -x_257 = x_256; -x_7 = x_257; -x_8 = x_227; -goto lbl_9; -} -} -} -else -{ -obj* x_259; obj* x_262; uint8 x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; obj* x_269; -lean::dec(x_5); -x_259 = lean::cnstr_get(x_179, 1); -lean::inc(x_259); -lean::dec(x_179); -x_262 = lean::cnstr_get(x_180, 0); -x_264 = lean::cnstr_get_scalar(x_180, sizeof(void*)*1); -if (lean::is_exclusive(x_180)) { - x_265 = x_180; -} else { - lean::inc(x_262); - lean::dec(x_180); - x_265 = lean::box(0); -} -if (lean::is_scalar(x_265)) { - x_266 = lean::alloc_cnstr(1, 1, 1); -} else { - x_266 = x_265; -} -lean::cnstr_set(x_266, 0, x_262); -lean::cnstr_set_scalar(x_266, sizeof(void*)*1, x_264); -x_267 = x_266; -x_268 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_269 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_268, x_267); -if (lean::obj_tag(x_269) == 0) -{ -obj* x_270; obj* x_272; obj* x_275; obj* x_276; obj* x_278; obj* x_281; -x_270 = lean::cnstr_get(x_269, 1); -lean::inc(x_270); -x_272 = lean::cnstr_get(x_269, 2); -lean::inc(x_272); -lean::dec(x_269); -x_275 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_3, x_4, x_270, x_259); -x_276 = lean::cnstr_get(x_275, 0); -lean::inc(x_276); -x_278 = lean::cnstr_get(x_275, 1); -lean::inc(x_278); -lean::dec(x_275); -x_281 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_272, x_276); -x_7 = x_281; -x_8 = x_278; -goto lbl_9; -} -else -{ -obj* x_282; uint8 x_284; obj* x_285; obj* x_286; obj* x_287; -x_282 = lean::cnstr_get(x_269, 0); -x_284 = lean::cnstr_get_scalar(x_269, sizeof(void*)*1); -if (lean::is_exclusive(x_269)) { - x_285 = x_269; -} else { - lean::inc(x_282); - lean::dec(x_269); - x_285 = lean::box(0); -} -if (lean::is_scalar(x_285)) { - x_286 = lean::alloc_cnstr(1, 1, 1); -} else { - x_286 = x_285; -} -lean::cnstr_set(x_286, 0, x_282); -lean::cnstr_set_scalar(x_286, sizeof(void*)*1, x_284); -x_287 = x_286; -x_7 = x_287; -x_8 = x_259; -goto lbl_9; -} -} -} -lbl_9: -{ -if (lean::obj_tag(x_7) == 0) -{ -obj* x_288; obj* x_290; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; -x_288 = lean::cnstr_get(x_7, 1); -x_290 = lean::cnstr_get(x_7, 2); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_292 = x_7; -} else { - lean::inc(x_288); - lean::inc(x_290); - lean::dec(x_7); - x_292 = lean::box(0); -} -x_293 = lean::box(0); -x_294 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_292)) { - x_295 = lean::alloc_cnstr(0, 3, 0); -} else { - x_295 = x_292; -} -lean::cnstr_set(x_295, 0, x_293); -lean::cnstr_set(x_295, 1, x_288); -lean::cnstr_set(x_295, 2, x_294); -x_296 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_290, x_295); -x_297 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_297, 0, x_296); -lean::cnstr_set(x_297, 1, x_8); -return x_297; -} -else -{ -obj* x_298; uint8 x_300; obj* x_301; obj* x_302; obj* x_303; obj* x_304; -x_298 = lean::cnstr_get(x_7, 0); -x_300 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_301 = x_7; -} else { - lean::inc(x_298); - lean::dec(x_7); - x_301 = lean::box(0); -} -if (lean::is_scalar(x_301)) { - x_302 = lean::alloc_cnstr(1, 1, 1); -} else { - x_302 = x_301; -} -lean::cnstr_set(x_302, 0, x_298); -lean::cnstr_set_scalar(x_302, sizeof(void*)*1, x_300); -x_303 = x_302; -x_304 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_304, 0, x_303); -lean::cnstr_set(x_304, 1, x_8); -return x_304; -} -} -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { -_start: -{ -obj* x_6; obj* x_8; obj* x_10; obj* x_12; obj* x_14; obj* x_15; obj* x_16; -x_6 = l_string_iterator_remaining___main(x_4); +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_18; obj* x_19; +x_11 = lean::mk_nat_obj(1u); +x_12 = lean::nat_sub(x_1, x_11); lean::inc(x_4); -x_8 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_1, x_6, x_2, x_3, x_4, x_5); -lean::dec(x_6); -x_10 = lean::cnstr_get(x_8, 0); -x_12 = lean::cnstr_get(x_8, 1); -if (lean::is_exclusive(x_8)) { - lean::cnstr_set(x_8, 0, lean::box(0)); - lean::cnstr_set(x_8, 1, lean::box(0)); - x_14 = x_8; -} else { - lean::inc(x_10); - lean::inc(x_12); - lean::dec(x_8); - x_14 = lean::box(0); -} -x_15 = l_lean_parser_finish__comment__block___closed__2; -x_16 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_10); -if (lean::obj_tag(x_16) == 0) -{ -obj* x_18; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_18 = lean::alloc_cnstr(0, 2, 0); -} else { - x_18 = x_14; -} -lean::cnstr_set(x_18, 0, x_16); -lean::cnstr_set(x_18, 1, x_12); -return x_18; -} -else -{ -uint8 x_19; -x_19 = lean::cnstr_get_scalar(x_16, sizeof(void*)*1); -if (x_19 == 0) -{ -obj* x_20; obj* x_23; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; -x_20 = lean::cnstr_get(x_16, 0); -lean::inc(x_20); -lean::dec(x_16); -x_23 = lean::cnstr_get(x_20, 2); -lean::inc(x_23); -lean::dec(x_20); -x_26 = l_mjoin___rarg___closed__1; -x_27 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_27, 0, x_23); -lean::closure_set(x_27, 1, x_26); -x_28 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_28, 0, x_27); -x_29 = lean::box(0); -x_30 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_4); -lean::cnstr_set(x_30, 2, x_28); -if (lean::is_scalar(x_14)) { - x_31 = lean::alloc_cnstr(0, 2, 0); -} else { - x_31 = x_14; -} -lean::cnstr_set(x_31, 0, x_30); -lean::cnstr_set(x_31, 1, x_12); -return x_31; -} -else -{ -obj* x_33; -lean::dec(x_4); -if (lean::is_scalar(x_14)) { - x_33 = lean::alloc_cnstr(0, 2, 0); -} else { - x_33 = x_14; -} -lean::cnstr_set(x_33, 0, x_16); -lean::cnstr_set(x_33, 1, x_12); -return x_33; -} -} -} -} -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___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_7; -x_5 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_6 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_6, 0, x_0); -lean::cnstr_set(x_6, 1, x_3); -lean::cnstr_set(x_6, 2, x_5); -x_7 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_7, 0, x_6); -lean::cnstr_set(x_7, 1, x_4); -return x_7; -} -} -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg___boxed), 5, 0); -return x_1; -} -} -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5___lambda__1(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; -x_3 = l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(x_0, lean::box(0), x_2, x_1); -return x_3; -} -} -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -if (lean::obj_tag(x_3) == 0) -{ -obj* x_5; -lean::dec(x_0); -x_5 = lean::alloc_closure(reinterpret_cast(l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg___boxed), 5, 1); -lean::closure_set(x_5, 0, x_2); -return x_5; -} -else -{ -obj* x_6; obj* x_8; obj* x_12; obj* x_13; obj* x_14; -x_6 = lean::cnstr_get(x_3, 0); -lean::inc(x_6); -x_8 = lean::cnstr_get(x_3, 1); -lean::inc(x_8); -lean::dec(x_3); lean::inc(x_0); -x_12 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__1), 7, 3); -lean::closure_set(x_12, 0, x_2); -lean::closure_set(x_12, 1, x_6); -lean::closure_set(x_12, 2, x_0); -x_13 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5___lambda__1), 3, 2); -lean::closure_set(x_13, 0, x_0); -lean::closure_set(x_13, 1, x_8); -x_14 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg), 6, 2); -lean::closure_set(x_14, 0, x_12); -lean::closure_set(x_14, 1, x_13); -return x_14; +x_18 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(x_0, x_2, x_3, x_4, x_5); +x_19 = lean::cnstr_get(x_18, 0); +lean::inc(x_19); +if (lean::obj_tag(x_19) == 0) +{ +obj* x_21; uint8 x_23; +x_21 = lean::cnstr_get(x_19, 0); +lean::inc(x_21); +x_23 = lean::unbox(x_21); +if (x_23 == 0) +{ +obj* x_24; obj* x_27; obj* x_29; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_39; obj* x_41; obj* x_44; obj* x_45; obj* x_46; +x_24 = lean::cnstr_get(x_18, 1); +lean::inc(x_24); +lean::dec(x_18); +x_27 = lean::cnstr_get(x_19, 1); +lean::inc(x_27); +x_29 = lean::cnstr_get(x_19, 2); +lean::inc(x_29); +lean::dec(x_19); +x_32 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_32, 0, x_4); +x_33 = lean::box(0); +x_34 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_35 = l_mjoin___rarg___closed__1; +x_36 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_34, x_35, x_32, x_33, x_2, x_3, x_27, x_24); +lean::dec(x_27); +lean::dec(x_32); +x_39 = lean::cnstr_get(x_36, 0); +lean::inc(x_39); +x_41 = lean::cnstr_get(x_36, 1); +lean::inc(x_41); +lean::dec(x_36); +x_44 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_29, x_39); +x_45 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_46 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_45, x_44); +if (lean::obj_tag(x_46) == 0) +{ +obj* x_47; obj* x_49; obj* x_52; obj* x_53; obj* x_55; obj* x_58; +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +x_49 = lean::cnstr_get(x_46, 2); +lean::inc(x_49); +lean::dec(x_46); +x_52 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_47, x_41); +x_53 = lean::cnstr_get(x_52, 0); +lean::inc(x_53); +x_55 = lean::cnstr_get(x_52, 1); +lean::inc(x_55); +lean::dec(x_52); +x_58 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_49, x_53); +x_13 = x_58; +x_14 = x_55; +goto lbl_15; +} +else +{ +obj* x_59; uint8 x_61; obj* x_62; obj* x_63; obj* x_64; +x_59 = lean::cnstr_get(x_46, 0); +x_61 = lean::cnstr_get_scalar(x_46, sizeof(void*)*1); +if (lean::is_exclusive(x_46)) { + x_62 = x_46; +} else { + lean::inc(x_59); + lean::dec(x_46); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(1, 1, 1); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_59); +lean::cnstr_set_scalar(x_63, sizeof(void*)*1, x_61); +x_64 = x_63; +x_13 = x_64; +x_14 = x_41; +goto lbl_15; +} +} +else +{ +obj* x_66; obj* x_69; obj* x_71; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +lean::dec(x_4); +x_66 = lean::cnstr_get(x_18, 1); +lean::inc(x_66); +lean::dec(x_18); +x_69 = lean::cnstr_get(x_19, 1); +x_71 = lean::cnstr_get(x_19, 2); +if (lean::is_exclusive(x_19)) { + lean::cnstr_release(x_19, 0); + x_73 = x_19; +} else { + lean::inc(x_69); + lean::inc(x_71); + lean::dec(x_19); + x_73 = lean::box(0); +} +x_74 = lean::box(0); +x_75 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_73)) { + x_76 = lean::alloc_cnstr(0, 3, 0); +} else { + x_76 = x_73; +} +lean::cnstr_set(x_76, 0, x_74); +lean::cnstr_set(x_76, 1, x_69); +lean::cnstr_set(x_76, 2, x_75); +x_77 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_71, x_76); +x_78 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_75, x_77); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_81; obj* x_84; obj* x_85; obj* x_87; obj* x_90; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +x_81 = lean::cnstr_get(x_78, 2); +lean::inc(x_81); +lean::dec(x_78); +x_84 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_79, x_66); +x_85 = lean::cnstr_get(x_84, 0); +lean::inc(x_85); +x_87 = lean::cnstr_get(x_84, 1); +lean::inc(x_87); +lean::dec(x_84); +x_90 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_81, x_85); +x_13 = x_90; +x_14 = x_87; +goto lbl_15; +} +else +{ +obj* x_91; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; +x_91 = lean::cnstr_get(x_78, 0); +x_93 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); +if (lean::is_exclusive(x_78)) { + x_94 = x_78; +} else { + lean::inc(x_91); + lean::dec(x_78); + x_94 = lean::box(0); +} +if (lean::is_scalar(x_94)) { + x_95 = lean::alloc_cnstr(1, 1, 1); +} else { + x_95 = x_94; +} +lean::cnstr_set(x_95, 0, x_91); +lean::cnstr_set_scalar(x_95, sizeof(void*)*1, x_93); +x_96 = x_95; +x_13 = x_96; +x_14 = x_66; +goto lbl_15; +} +} +} +else +{ +obj* x_98; obj* x_101; uint8 x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; +lean::dec(x_4); +x_98 = lean::cnstr_get(x_18, 1); +lean::inc(x_98); +lean::dec(x_18); +x_101 = lean::cnstr_get(x_19, 0); +x_103 = lean::cnstr_get_scalar(x_19, sizeof(void*)*1); +if (lean::is_exclusive(x_19)) { + x_104 = x_19; +} else { + lean::inc(x_101); + lean::dec(x_19); + x_104 = lean::box(0); +} +if (lean::is_scalar(x_104)) { + x_105 = lean::alloc_cnstr(1, 1, 1); +} else { + x_105 = x_104; +} +lean::cnstr_set(x_105, 0, x_101); +lean::cnstr_set_scalar(x_105, sizeof(void*)*1, x_103); +x_106 = x_105; +x_107 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_108 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_107, x_106); +if (lean::obj_tag(x_108) == 0) +{ +obj* x_109; obj* x_111; obj* x_114; obj* x_115; obj* x_117; obj* x_120; +x_109 = lean::cnstr_get(x_108, 1); +lean::inc(x_109); +x_111 = lean::cnstr_get(x_108, 2); +lean::inc(x_111); +lean::dec(x_108); +x_114 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_109, x_98); +x_115 = lean::cnstr_get(x_114, 0); +lean::inc(x_115); +x_117 = lean::cnstr_get(x_114, 1); +lean::inc(x_117); +lean::dec(x_114); +x_120 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_111, x_115); +x_13 = x_120; +x_14 = x_117; +goto lbl_15; +} +else +{ +obj* x_121; uint8 x_123; obj* x_124; obj* x_125; obj* x_126; +x_121 = lean::cnstr_get(x_108, 0); +x_123 = lean::cnstr_get_scalar(x_108, sizeof(void*)*1); +if (lean::is_exclusive(x_108)) { + x_124 = x_108; +} else { + lean::inc(x_121); + lean::dec(x_108); + x_124 = lean::box(0); +} +if (lean::is_scalar(x_124)) { + x_125 = lean::alloc_cnstr(1, 1, 1); +} else { + x_125 = x_124; +} +lean::cnstr_set(x_125, 0, x_121); +lean::cnstr_set_scalar(x_125, sizeof(void*)*1, x_123); +x_126 = x_125; +x_13 = x_126; +x_14 = x_98; +goto lbl_15; +} +} +lbl_15: +{ +if (lean::obj_tag(x_13) == 0) +{ +obj* x_127; obj* x_129; obj* x_131; obj* x_133; obj* x_135; +x_127 = lean::cnstr_get(x_13, 1); +x_129 = lean::cnstr_get(x_13, 2); +if (lean::is_exclusive(x_13)) { + lean::cnstr_release(x_13, 0); + lean::cnstr_set(x_13, 1, lean::box(0)); + lean::cnstr_set(x_13, 2, lean::box(0)); + x_131 = x_13; +} else { + lean::inc(x_127); + lean::inc(x_129); + lean::dec(x_13); + x_131 = lean::box(0); +} +lean::inc(x_127); +x_133 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_12, x_2, x_3, x_127, x_14); +lean::dec(x_12); +x_135 = lean::cnstr_get(x_133, 0); +lean::inc(x_135); +if (lean::obj_tag(x_135) == 0) +{ +obj* x_139; obj* x_141; obj* x_142; obj* x_143; +lean::dec(x_131); +lean::dec(x_127); +x_139 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_141 = x_133; +} else { + lean::inc(x_139); + lean::dec(x_133); + x_141 = lean::box(0); +} +x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_141)) { + x_143 = lean::alloc_cnstr(0, 2, 0); +} else { + x_143 = x_141; +} +lean::cnstr_set(x_143, 0, x_142); +lean::cnstr_set(x_143, 1, x_139); +return x_143; +} +else +{ +uint8 x_144; +x_144 = lean::cnstr_get_scalar(x_135, sizeof(void*)*1); +if (x_144 == 0) +{ +obj* x_145; obj* x_147; obj* x_148; obj* x_151; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; +x_145 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_147 = x_133; +} else { + lean::inc(x_145); + lean::dec(x_133); + x_147 = lean::box(0); +} +x_148 = lean::cnstr_get(x_135, 0); +lean::inc(x_148); +lean::dec(x_135); +x_151 = lean::cnstr_get(x_148, 2); +lean::inc(x_151); +lean::dec(x_148); +x_154 = l_mjoin___rarg___closed__1; +x_155 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_155, 0, x_151); +lean::closure_set(x_155, 1, x_154); +x_156 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_156, 0, x_155); +x_157 = lean::box(0); +if (lean::is_scalar(x_131)) { + x_158 = lean::alloc_cnstr(0, 3, 0); +} else { + x_158 = x_131; +} +lean::cnstr_set(x_158, 0, x_157); +lean::cnstr_set(x_158, 1, x_127); +lean::cnstr_set(x_158, 2, x_156); +x_159 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_158); +if (lean::is_scalar(x_147)) { + x_160 = lean::alloc_cnstr(0, 2, 0); +} else { + x_160 = x_147; +} +lean::cnstr_set(x_160, 0, x_159); +lean::cnstr_set(x_160, 1, x_145); +return x_160; +} +else +{ +obj* x_163; obj* x_165; obj* x_166; obj* x_167; +lean::dec(x_131); +lean::dec(x_127); +x_163 = lean::cnstr_get(x_133, 1); +if (lean::is_exclusive(x_133)) { + lean::cnstr_release(x_133, 0); + x_165 = x_133; +} else { + lean::inc(x_163); + lean::dec(x_133); + x_165 = lean::box(0); +} +x_166 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_135); +if (lean::is_scalar(x_165)) { + x_167 = lean::alloc_cnstr(0, 2, 0); +} else { + x_167 = x_165; +} +lean::cnstr_set(x_167, 0, x_166); +lean::cnstr_set(x_167, 1, x_163); +return x_167; +} +} +} +else +{ +obj* x_170; uint8 x_172; obj* x_173; obj* x_174; obj* x_175; obj* x_176; +lean::dec(x_0); +lean::dec(x_12); +x_170 = lean::cnstr_get(x_13, 0); +x_172 = lean::cnstr_get_scalar(x_13, sizeof(void*)*1); +if (lean::is_exclusive(x_13)) { + x_173 = x_13; +} else { + lean::inc(x_170); + lean::dec(x_13); + x_173 = lean::box(0); +} +if (lean::is_scalar(x_173)) { + x_174 = lean::alloc_cnstr(1, 1, 1); +} else { + x_174 = x_173; +} +lean::cnstr_set(x_174, 0, x_170); +lean::cnstr_set_scalar(x_174, sizeof(void*)*1, x_172); +x_175 = x_174; +x_176 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_176, 0, x_175); +lean::cnstr_set(x_176, 1, x_14); +return x_176; +} +} +} +else +{ +obj* x_178; obj* x_179; +lean::inc(x_4); +x_178 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(x_0, x_2, x_3, x_4, x_5); +x_179 = lean::cnstr_get(x_178, 0); +lean::inc(x_179); +if (lean::obj_tag(x_179) == 0) +{ +obj* x_181; uint8 x_183; +x_181 = lean::cnstr_get(x_179, 0); +lean::inc(x_181); +x_183 = lean::unbox(x_181); +if (x_183 == 0) +{ +obj* x_184; obj* x_187; obj* x_189; obj* x_192; obj* x_193; obj* x_194; obj* x_195; obj* x_196; obj* x_199; obj* x_201; obj* x_204; obj* x_205; obj* x_206; +x_184 = lean::cnstr_get(x_178, 1); +lean::inc(x_184); +lean::dec(x_178); +x_187 = lean::cnstr_get(x_179, 1); +lean::inc(x_187); +x_189 = lean::cnstr_get(x_179, 2); +lean::inc(x_189); +lean::dec(x_179); +x_192 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_192, 0, x_4); +x_193 = lean::box(0); +x_194 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_195 = l_mjoin___rarg___closed__1; +x_196 = l_lean_parser_monad__parsec_error___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__4___rarg(x_194, x_195, x_192, x_193, x_2, x_3, x_187, x_184); +lean::dec(x_187); +lean::dec(x_192); +x_199 = lean::cnstr_get(x_196, 0); +lean::inc(x_199); +x_201 = lean::cnstr_get(x_196, 1); +lean::inc(x_201); +lean::dec(x_196); +x_204 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_189, x_199); +x_205 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_206 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_205, x_204); +if (lean::obj_tag(x_206) == 0) +{ +obj* x_207; obj* x_209; obj* x_212; obj* x_213; obj* x_215; obj* x_218; +x_207 = lean::cnstr_get(x_206, 1); +lean::inc(x_207); +x_209 = lean::cnstr_get(x_206, 2); +lean::inc(x_209); +lean::dec(x_206); +x_212 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_207, x_201); +x_213 = lean::cnstr_get(x_212, 0); +lean::inc(x_213); +x_215 = lean::cnstr_get(x_212, 1); +lean::inc(x_215); +lean::dec(x_212); +x_218 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_209, x_213); +x_6 = x_218; +x_7 = x_215; +goto lbl_8; +} +else +{ +obj* x_219; uint8 x_221; obj* x_222; obj* x_223; obj* x_224; +x_219 = lean::cnstr_get(x_206, 0); +x_221 = lean::cnstr_get_scalar(x_206, sizeof(void*)*1); +if (lean::is_exclusive(x_206)) { + x_222 = x_206; +} else { + lean::inc(x_219); + lean::dec(x_206); + x_222 = lean::box(0); +} +if (lean::is_scalar(x_222)) { + x_223 = lean::alloc_cnstr(1, 1, 1); +} else { + x_223 = x_222; +} +lean::cnstr_set(x_223, 0, x_219); +lean::cnstr_set_scalar(x_223, sizeof(void*)*1, x_221); +x_224 = x_223; +x_6 = x_224; +x_7 = x_201; +goto lbl_8; +} +} +else +{ +obj* x_226; obj* x_229; obj* x_231; obj* x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; +lean::dec(x_4); +x_226 = lean::cnstr_get(x_178, 1); +lean::inc(x_226); +lean::dec(x_178); +x_229 = lean::cnstr_get(x_179, 1); +x_231 = lean::cnstr_get(x_179, 2); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + x_233 = x_179; +} else { + lean::inc(x_229); + lean::inc(x_231); + lean::dec(x_179); + x_233 = lean::box(0); +} +x_234 = lean::box(0); +x_235 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_233)) { + x_236 = lean::alloc_cnstr(0, 3, 0); +} else { + x_236 = x_233; +} +lean::cnstr_set(x_236, 0, x_234); +lean::cnstr_set(x_236, 1, x_229); +lean::cnstr_set(x_236, 2, x_235); +x_237 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_231, x_236); +x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_235, x_237); +if (lean::obj_tag(x_238) == 0) +{ +obj* x_239; obj* x_241; obj* x_244; obj* x_245; obj* x_247; obj* x_250; +x_239 = lean::cnstr_get(x_238, 1); +lean::inc(x_239); +x_241 = lean::cnstr_get(x_238, 2); +lean::inc(x_241); +lean::dec(x_238); +x_244 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_239, x_226); +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); +x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_241, x_245); +x_6 = x_250; +x_7 = x_247; +goto lbl_8; +} +else +{ +obj* x_251; uint8 x_253; obj* x_254; obj* x_255; obj* x_256; +x_251 = lean::cnstr_get(x_238, 0); +x_253 = lean::cnstr_get_scalar(x_238, sizeof(void*)*1); +if (lean::is_exclusive(x_238)) { + x_254 = x_238; +} else { + lean::inc(x_251); + lean::dec(x_238); + x_254 = lean::box(0); +} +if (lean::is_scalar(x_254)) { + x_255 = lean::alloc_cnstr(1, 1, 1); +} else { + x_255 = x_254; +} +lean::cnstr_set(x_255, 0, x_251); +lean::cnstr_set_scalar(x_255, sizeof(void*)*1, x_253); +x_256 = x_255; +x_6 = x_256; +x_7 = x_226; +goto lbl_8; +} +} +} +else +{ +obj* x_258; obj* x_261; uint8 x_263; obj* x_264; obj* x_265; obj* x_266; obj* x_267; obj* x_268; +lean::dec(x_4); +x_258 = lean::cnstr_get(x_178, 1); +lean::inc(x_258); +lean::dec(x_178); +x_261 = lean::cnstr_get(x_179, 0); +x_263 = lean::cnstr_get_scalar(x_179, sizeof(void*)*1); +if (lean::is_exclusive(x_179)) { + x_264 = x_179; +} else { + lean::inc(x_261); + lean::dec(x_179); + x_264 = lean::box(0); +} +if (lean::is_scalar(x_264)) { + x_265 = lean::alloc_cnstr(1, 1, 1); +} else { + x_265 = x_264; +} +lean::cnstr_set(x_265, 0, x_261); +lean::cnstr_set_scalar(x_265, sizeof(void*)*1, x_263); +x_266 = x_265; +x_267 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_268 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_267, x_266); +if (lean::obj_tag(x_268) == 0) +{ +obj* x_269; obj* x_271; obj* x_274; obj* x_275; obj* x_277; obj* x_280; +x_269 = lean::cnstr_get(x_268, 1); +lean::inc(x_269); +x_271 = lean::cnstr_get(x_268, 2); +lean::inc(x_271); +lean::dec(x_268); +x_274 = l_lean_parser_monad__parsec_any___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__5(x_2, x_3, x_269, x_258); +x_275 = lean::cnstr_get(x_274, 0); +lean::inc(x_275); +x_277 = lean::cnstr_get(x_274, 1); +lean::inc(x_277); +lean::dec(x_274); +x_280 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_271, x_275); +x_6 = x_280; +x_7 = x_277; +goto lbl_8; +} +else +{ +obj* x_281; uint8 x_283; obj* x_284; obj* x_285; obj* x_286; +x_281 = lean::cnstr_get(x_268, 0); +x_283 = lean::cnstr_get_scalar(x_268, sizeof(void*)*1); +if (lean::is_exclusive(x_268)) { + x_284 = x_268; +} else { + lean::inc(x_281); + lean::dec(x_268); + x_284 = lean::box(0); +} +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); +} else { + x_285 = x_284; +} +lean::cnstr_set(x_285, 0, x_281); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_283); +x_286 = x_285; +x_6 = x_286; +x_7 = x_258; +goto lbl_8; +} +} +} +lbl_8: +{ +if (lean::obj_tag(x_6) == 0) +{ +obj* x_287; obj* x_289; obj* x_291; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; +x_287 = lean::cnstr_get(x_6, 1); +x_289 = lean::cnstr_get(x_6, 2); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_291 = x_6; +} else { + lean::inc(x_287); + lean::inc(x_289); + lean::dec(x_6); + x_291 = lean::box(0); +} +x_292 = lean::box(0); +x_293 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_291)) { + x_294 = lean::alloc_cnstr(0, 3, 0); +} else { + x_294 = x_291; +} +lean::cnstr_set(x_294, 0, x_292); +lean::cnstr_set(x_294, 1, x_287); +lean::cnstr_set(x_294, 2, x_293); +x_295 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_289, x_294); +x_296 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_296, 0, x_295); +lean::cnstr_set(x_296, 1, x_7); +return x_296; +} +else +{ +obj* x_297; uint8 x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; +x_297 = lean::cnstr_get(x_6, 0); +x_299 = lean::cnstr_get_scalar(x_6, sizeof(void*)*1); +if (lean::is_exclusive(x_6)) { + x_300 = x_6; +} else { + lean::inc(x_297); + lean::dec(x_6); + x_300 = lean::box(0); +} +if (lean::is_scalar(x_300)) { + x_301 = lean::alloc_cnstr(1, 1, 1); +} else { + x_301 = x_300; +} +lean::cnstr_set(x_301, 0, x_297); +lean::cnstr_set_scalar(x_301, sizeof(void*)*1, x_299); +x_302 = x_301; +x_303 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_303, 0, x_302); +lean::cnstr_set(x_303, 1, x_7); +return x_303; +} +} +} +} +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_14; obj* x_15; +x_5 = l_string_iterator_remaining___main(x_3); +lean::inc(x_3); +x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_5, x_1, x_2, x_3, x_4); +lean::dec(x_5); +x_9 = lean::cnstr_get(x_7, 0); +x_11 = lean::cnstr_get(x_7, 1); +if (lean::is_exclusive(x_7)) { + lean::cnstr_set(x_7, 0, lean::box(0)); + lean::cnstr_set(x_7, 1, lean::box(0)); + x_13 = x_7; +} else { + lean::inc(x_9); + lean::inc(x_11); + lean::dec(x_7); + x_13 = lean::box(0); +} +x_14 = l_lean_parser_finish__comment__block___closed__2; +x_15 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_9); +if (lean::obj_tag(x_15) == 0) +{ +obj* x_17; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_17 = lean::alloc_cnstr(0, 2, 0); +} else { + x_17 = x_13; +} +lean::cnstr_set(x_17, 0, x_15); +lean::cnstr_set(x_17, 1, x_11); +return x_17; +} +else +{ +uint8 x_18; +x_18 = lean::cnstr_get_scalar(x_15, sizeof(void*)*1); +if (x_18 == 0) +{ +obj* x_19; obj* x_22; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_19 = lean::cnstr_get(x_15, 0); +lean::inc(x_19); +lean::dec(x_15); +x_22 = lean::cnstr_get(x_19, 2); +lean::inc(x_22); +lean::dec(x_19); +x_25 = l_mjoin___rarg___closed__1; +x_26 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_26, 0, x_22); +lean::closure_set(x_26, 1, x_25); +x_27 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_27, 0, x_26); +x_28 = lean::box(0); +x_29 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_29, 0, x_28); +lean::cnstr_set(x_29, 1, x_3); +lean::cnstr_set(x_29, 2, x_27); +if (lean::is_scalar(x_13)) { + x_30 = lean::alloc_cnstr(0, 2, 0); +} else { + x_30 = x_13; +} +lean::cnstr_set(x_30, 0, x_29); +lean::cnstr_set(x_30, 1, x_11); +return x_30; +} +else +{ +obj* x_32; +lean::dec(x_3); +if (lean::is_scalar(x_13)) { + x_32 = lean::alloc_cnstr(0, 2, 0); +} else { + x_32 = x_13; +} +lean::cnstr_set(x_32, 0, x_15); +lean::cnstr_set(x_32, 1, x_11); +return x_32; +} +} +} +} +obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +obj* x_10; obj* x_11; obj* x_12; +lean::dec(x_4); +lean::dec(x_3); +lean::dec(x_0); +x_10 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_11 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_11, 0, x_1); +lean::cnstr_set(x_11, 1, x_5); +lean::cnstr_set(x_11, 2, x_10); +x_12 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_12, 0, x_11); +lean::cnstr_set(x_12, 1, x_6); +return x_12; +} +else +{ +obj* x_13; obj* x_15; obj* x_17; obj* x_18; obj* x_19; obj* x_23; obj* x_24; +x_13 = lean::cnstr_get(x_2, 0); +x_15 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + lean::cnstr_set(x_2, 0, lean::box(0)); + lean::cnstr_set(x_2, 1, lean::box(0)); + x_17 = x_2; +} else { + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_2); + x_17 = lean::box(0); +} +lean::inc(x_4); +lean::inc(x_3); +x_23 = lean::apply_4(x_13, x_3, x_4, x_5, x_6); +x_24 = lean::cnstr_get(x_23, 0); +lean::inc(x_24); +if (lean::obj_tag(x_24) == 0) +{ +obj* x_26; +x_26 = lean::cnstr_get(x_23, 1); +lean::inc(x_26); +lean::dec(x_23); +x_18 = x_24; +x_19 = x_26; +goto lbl_20; +} +else +{ +uint8 x_29; +x_29 = lean::cnstr_get_scalar(x_24, sizeof(void*)*1); +if (lean::obj_tag(x_1) == 0) +{ +if (x_29 == 0) +{ +obj* x_30; obj* x_33; obj* x_35; uint8 x_36; obj* x_37; obj* x_38; +x_30 = lean::cnstr_get(x_23, 1); +lean::inc(x_30); +lean::dec(x_23); +x_33 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + x_35 = x_24; +} else { + lean::inc(x_33); + lean::dec(x_24); + x_35 = lean::box(0); +} +x_36 = 0; +if (lean::is_scalar(x_35)) { + x_37 = lean::alloc_cnstr(1, 1, 1); +} else { + x_37 = x_35; +} +lean::cnstr_set(x_37, 0, x_33); +lean::cnstr_set_scalar(x_37, sizeof(void*)*1, x_36); +x_38 = x_37; +x_18 = x_38; +x_19 = x_30; +goto lbl_20; +} +else +{ +obj* x_39; obj* x_42; obj* x_44; obj* x_45; obj* x_46; +x_39 = lean::cnstr_get(x_23, 1); +lean::inc(x_39); +lean::dec(x_23); +x_42 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + x_44 = x_24; +} else { + lean::inc(x_42); + lean::dec(x_24); + x_44 = lean::box(0); +} +if (lean::is_scalar(x_44)) { + x_45 = lean::alloc_cnstr(1, 1, 1); +} else { + x_45 = x_44; +} +lean::cnstr_set(x_45, 0, x_42); +lean::cnstr_set_scalar(x_45, sizeof(void*)*1, x_29); +x_46 = x_45; +x_18 = x_46; +x_19 = x_39; +goto lbl_20; +} +} +else +{ +obj* x_47; obj* x_50; obj* x_52; obj* x_53; obj* x_55; obj* x_58; obj* x_59; obj* x_61; obj* x_63; obj* x_66; obj* x_68; obj* x_69; obj* x_70; +x_47 = lean::cnstr_get(x_23, 1); +lean::inc(x_47); +lean::dec(x_23); +x_50 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + lean::cnstr_set(x_24, 0, lean::box(0)); + x_52 = x_24; +} else { + lean::inc(x_50); + lean::dec(x_24); + x_52 = lean::box(0); +} +x_53 = lean::cnstr_get(x_50, 3); +lean::inc(x_53); +x_55 = l_option_get___main___at_lean_parser_run___spec__2(x_53); +lean::dec(x_53); +lean::inc(x_1); +x_58 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_58, 0, x_55); +lean::cnstr_set(x_58, 1, x_1); +x_59 = lean::cnstr_get(x_50, 0); +lean::inc(x_59); +x_61 = lean::cnstr_get(x_50, 1); +lean::inc(x_61); +x_63 = lean::cnstr_get(x_50, 2); +lean::inc(x_63); +lean::dec(x_50); +x_66 = l_list_reverse___rarg(x_58); +lean::inc(x_0); +x_68 = l_lean_parser_syntax_mk__node(x_0, x_66); +x_69 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_69, 0, x_68); +x_70 = lean::alloc_cnstr(0, 4, 0); +lean::cnstr_set(x_70, 0, x_59); +lean::cnstr_set(x_70, 1, x_61); +lean::cnstr_set(x_70, 2, x_63); +lean::cnstr_set(x_70, 3, x_69); +if (x_29 == 0) +{ +uint8 x_71; obj* x_72; obj* x_73; +x_71 = 0; +if (lean::is_scalar(x_52)) { + x_72 = lean::alloc_cnstr(1, 1, 1); +} else { + x_72 = x_52; +} +lean::cnstr_set(x_72, 0, x_70); +lean::cnstr_set_scalar(x_72, sizeof(void*)*1, x_71); +x_73 = x_72; +x_18 = x_73; +x_19 = x_47; +goto lbl_20; +} +else +{ +obj* x_74; obj* x_75; +if (lean::is_scalar(x_52)) { + x_74 = lean::alloc_cnstr(1, 1, 1); +} else { + x_74 = x_52; +} +lean::cnstr_set(x_74, 0, x_70); +lean::cnstr_set_scalar(x_74, sizeof(void*)*1, x_29); +x_75 = x_74; +x_18 = x_75; +x_19 = x_47; +goto lbl_20; +} +} +} +lbl_20: +{ +if (lean::obj_tag(x_18) == 0) +{ +obj* x_76; obj* x_78; obj* x_80; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; +x_76 = lean::cnstr_get(x_18, 0); +x_78 = lean::cnstr_get(x_18, 1); +x_80 = lean::cnstr_get(x_18, 2); +if (lean::is_exclusive(x_18)) { + x_82 = x_18; +} else { + lean::inc(x_76); + lean::inc(x_78); + lean::inc(x_80); + lean::dec(x_18); + x_82 = lean::box(0); +} +if (lean::is_scalar(x_17)) { + x_83 = lean::alloc_cnstr(1, 2, 0); +} else { + x_83 = x_17; +} +lean::cnstr_set(x_83, 0, x_76); +lean::cnstr_set(x_83, 1, x_1); +x_84 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_82)) { + x_85 = lean::alloc_cnstr(0, 3, 0); +} else { + x_85 = x_82; +} +lean::cnstr_set(x_85, 0, x_83); +lean::cnstr_set(x_85, 1, x_78); +lean::cnstr_set(x_85, 2, x_84); +x_86 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_80, x_85); +if (lean::obj_tag(x_86) == 0) +{ +obj* x_87; obj* x_89; obj* x_91; obj* x_94; obj* x_95; obj* x_97; obj* x_99; obj* x_100; obj* x_101; +x_87 = lean::cnstr_get(x_86, 0); +lean::inc(x_87); +x_89 = lean::cnstr_get(x_86, 1); +lean::inc(x_89); +x_91 = lean::cnstr_get(x_86, 2); +lean::inc(x_91); +lean::dec(x_86); +x_94 = l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(x_0, x_87, x_15, x_3, x_4, x_89, x_19); +x_95 = lean::cnstr_get(x_94, 0); +x_97 = lean::cnstr_get(x_94, 1); +if (lean::is_exclusive(x_94)) { + x_99 = x_94; +} else { + lean::inc(x_95); + lean::inc(x_97); + lean::dec(x_94); + x_99 = lean::box(0); +} +x_100 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_91, x_95); +if (lean::is_scalar(x_99)) { + x_101 = lean::alloc_cnstr(0, 2, 0); +} else { + x_101 = x_99; +} +lean::cnstr_set(x_101, 0, x_100); +lean::cnstr_set(x_101, 1, x_97); +return x_101; +} +else +{ +obj* x_106; uint8 x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; +lean::dec(x_15); +lean::dec(x_4); +lean::dec(x_3); +lean::dec(x_0); +x_106 = lean::cnstr_get(x_86, 0); +x_108 = lean::cnstr_get_scalar(x_86, sizeof(void*)*1); +if (lean::is_exclusive(x_86)) { + x_109 = x_86; +} else { + lean::inc(x_106); + lean::dec(x_86); + x_109 = lean::box(0); +} +if (lean::is_scalar(x_109)) { + x_110 = lean::alloc_cnstr(1, 1, 1); +} else { + x_110 = x_109; +} +lean::cnstr_set(x_110, 0, x_106); +lean::cnstr_set_scalar(x_110, sizeof(void*)*1, x_108); +x_111 = x_110; +x_112 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_112, 0, x_111); +lean::cnstr_set(x_112, 1, x_19); +return x_112; +} +} +else +{ +obj* x_119; uint8 x_121; obj* x_122; obj* x_123; obj* x_124; obj* x_125; +lean::dec(x_15); +lean::dec(x_4); +lean::dec(x_1); +lean::dec(x_3); +lean::dec(x_0); +lean::dec(x_17); +x_119 = lean::cnstr_get(x_18, 0); +x_121 = lean::cnstr_get_scalar(x_18, sizeof(void*)*1); +if (lean::is_exclusive(x_18)) { + x_122 = x_18; +} else { + lean::inc(x_119); + lean::dec(x_18); + x_122 = lean::box(0); +} +if (lean::is_scalar(x_122)) { + x_123 = lean::alloc_cnstr(1, 1, 1); +} else { + x_123 = x_122; +} +lean::cnstr_set(x_123, 0, x_119); +lean::cnstr_set_scalar(x_123, sizeof(void*)*1, x_121); +x_124 = x_123; +x_125 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_125, 0, x_124); +lean::cnstr_set(x_125, 1, x_19); +return x_125; +} +} } } } obj* l_lean_parser_combinators_node___at_lean_parser_command_doc__comment_parser___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_6; obj* x_8; obj* x_9; obj* x_10; +obj* x_6; obj* x_8; obj* x_9; x_6 = lean::box(0); lean::inc(x_0); -x_8 = l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(x_0, lean::box(0), x_6, x_1); -x_9 = lean::apply_4(x_8, x_2, x_3, x_4, x_5); -x_10 = lean::cnstr_get(x_9, 0); -lean::inc(x_10); -if (lean::obj_tag(x_10) == 0) +x_8 = l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(x_0, x_6, x_1, x_2, x_3, x_4, x_5); +x_9 = lean::cnstr_get(x_8, 0); +lean::inc(x_9); +if (lean::obj_tag(x_9) == 0) { -obj* x_12; obj* x_14; obj* x_15; obj* x_17; obj* x_19; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; -x_12 = lean::cnstr_get(x_9, 1); -if (lean::is_exclusive(x_9)) { - lean::cnstr_release(x_9, 0); - x_14 = x_9; -} else { - lean::inc(x_12); - lean::dec(x_9); - x_14 = lean::box(0); -} -x_15 = lean::cnstr_get(x_10, 0); -x_17 = lean::cnstr_get(x_10, 1); -x_19 = lean::cnstr_get(x_10, 2); -if (lean::is_exclusive(x_10)) { - x_21 = x_10; -} else { - lean::inc(x_15); - lean::inc(x_17); - lean::inc(x_19); - lean::dec(x_10); - x_21 = lean::box(0); -} -x_22 = l_list_reverse___rarg(x_15); -x_23 = l_lean_parser_syntax_mk__node(x_0, x_22); -x_24 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_21)) { - x_25 = lean::alloc_cnstr(0, 3, 0); -} else { - x_25 = x_21; -} -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_17); -lean::cnstr_set(x_25, 2, x_24); -x_26 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_19, x_25); -if (lean::is_scalar(x_14)) { - x_27 = lean::alloc_cnstr(0, 2, 0); -} else { - x_27 = x_14; -} -lean::cnstr_set(x_27, 0, x_26); -lean::cnstr_set(x_27, 1, x_12); -return x_27; -} -else -{ -obj* x_29; obj* x_31; obj* x_32; uint8 x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; -lean::dec(x_0); -x_29 = lean::cnstr_get(x_9, 1); -if (lean::is_exclusive(x_9)) { - lean::cnstr_release(x_9, 0); - x_31 = x_9; -} else { - lean::inc(x_29); - lean::dec(x_9); - x_31 = lean::box(0); -} -x_32 = lean::cnstr_get(x_10, 0); -x_34 = lean::cnstr_get_scalar(x_10, sizeof(void*)*1); -if (lean::is_exclusive(x_10)) { - x_35 = x_10; -} else { - lean::inc(x_32); - lean::dec(x_10); - x_35 = lean::box(0); -} -if (lean::is_scalar(x_35)) { - x_36 = lean::alloc_cnstr(1, 1, 1); -} else { - x_36 = x_35; -} -lean::cnstr_set(x_36, 0, x_32); -lean::cnstr_set_scalar(x_36, sizeof(void*)*1, x_34); -x_37 = x_36; -if (lean::is_scalar(x_31)) { - x_38 = lean::alloc_cnstr(0, 2, 0); -} else { - x_38 = x_31; -} -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_29); -return x_38; -} -} -} -obj* l_lean_parser_command_doc__comment_parser___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; obj* x_8; -x_7 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(x_0, x_1, x_3, x_4, x_5, x_6); -x_8 = lean::cnstr_get(x_7, 0); -lean::inc(x_8); -if (lean::obj_tag(x_8) == 0) -{ -obj* x_10; obj* x_12; obj* x_13; obj* x_15; obj* x_17; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; -x_10 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_12 = x_7; -} else { - lean::inc(x_10); - lean::dec(x_7); - x_12 = lean::box(0); -} -x_13 = lean::cnstr_get(x_8, 1); -x_15 = lean::cnstr_get(x_8, 2); +obj* x_11; obj* x_13; obj* x_14; obj* x_16; obj* x_18; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +x_11 = lean::cnstr_get(x_8, 1); if (lean::is_exclusive(x_8)) { lean::cnstr_release(x_8, 0); - x_17 = x_8; + x_13 = x_8; } else { - lean::inc(x_13); - lean::inc(x_15); + lean::inc(x_11); lean::dec(x_8); - x_17 = lean::box(0); + x_13 = lean::box(0); } -lean::inc(x_13); -x_19 = l_lean_parser_mk__raw__res(x_2, x_13); -x_20 = l_lean_parser_finish__comment__block___closed__2; -if (lean::is_scalar(x_17)) { - x_21 = lean::alloc_cnstr(0, 3, 0); +x_14 = lean::cnstr_get(x_9, 0); +x_16 = lean::cnstr_get(x_9, 1); +x_18 = lean::cnstr_get(x_9, 2); +if (lean::is_exclusive(x_9)) { + x_20 = x_9; } else { - x_21 = x_17; + lean::inc(x_14); + lean::inc(x_16); + lean::inc(x_18); + lean::dec(x_9); + x_20 = lean::box(0); } -lean::cnstr_set(x_21, 0, x_19); -lean::cnstr_set(x_21, 1, x_13); -lean::cnstr_set(x_21, 2, x_20); -x_22 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_21); -if (lean::is_scalar(x_12)) { - x_23 = lean::alloc_cnstr(0, 2, 0); +x_21 = l_list_reverse___rarg(x_14); +x_22 = l_lean_parser_syntax_mk__node(x_0, x_21); +x_23 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_20)) { + x_24 = lean::alloc_cnstr(0, 3, 0); } else { - x_23 = x_12; + x_24 = x_20; } -lean::cnstr_set(x_23, 0, x_22); -lean::cnstr_set(x_23, 1, x_10); -return x_23; +lean::cnstr_set(x_24, 0, x_22); +lean::cnstr_set(x_24, 1, x_16); +lean::cnstr_set(x_24, 2, x_23); +x_25 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_18, x_24); +if (lean::is_scalar(x_13)) { + x_26 = lean::alloc_cnstr(0, 2, 0); +} else { + x_26 = x_13; +} +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_11); +return x_26; } else { -obj* x_25; obj* x_27; obj* x_28; uint8 x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; -lean::dec(x_2); -x_25 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_27 = x_7; -} else { - lean::inc(x_25); - lean::dec(x_7); - x_27 = lean::box(0); -} -x_28 = lean::cnstr_get(x_8, 0); -x_30 = lean::cnstr_get_scalar(x_8, sizeof(void*)*1); +obj* x_28; obj* x_30; obj* x_31; uint8 x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; +lean::dec(x_0); +x_28 = lean::cnstr_get(x_8, 1); if (lean::is_exclusive(x_8)) { - x_31 = x_8; + lean::cnstr_release(x_8, 0); + x_30 = x_8; } else { lean::inc(x_28); lean::dec(x_8); - x_31 = lean::box(0); + x_30 = lean::box(0); } -if (lean::is_scalar(x_31)) { - x_32 = lean::alloc_cnstr(1, 1, 1); +x_31 = lean::cnstr_get(x_9, 0); +x_33 = lean::cnstr_get_scalar(x_9, sizeof(void*)*1); +if (lean::is_exclusive(x_9)) { + x_34 = x_9; } else { - x_32 = x_31; + lean::inc(x_31); + lean::dec(x_9); + x_34 = lean::box(0); } -lean::cnstr_set(x_32, 0, x_28); -lean::cnstr_set_scalar(x_32, sizeof(void*)*1, x_30); -x_33 = x_32; -if (lean::is_scalar(x_27)) { - x_34 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_34)) { + x_35 = lean::alloc_cnstr(1, 1, 1); } else { - x_34 = x_27; + x_35 = x_34; } -lean::cnstr_set(x_34, 0, x_33); -lean::cnstr_set(x_34, 1, x_25); -return x_34; +lean::cnstr_set(x_35, 0, x_31); +lean::cnstr_set_scalar(x_35, sizeof(void*)*1, x_33); +x_36 = x_35; +if (lean::is_scalar(x_30)) { + x_37 = lean::alloc_cnstr(0, 2, 0); +} else { + x_37 = x_30; +} +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_28); +return x_37; +} +} +} +obj* l_lean_parser_command_doc__comment_parser___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +_start: +{ +obj* x_6; obj* x_7; +x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(x_0, x_2, x_3, x_4, x_5); +x_7 = lean::cnstr_get(x_6, 0); +lean::inc(x_7); +if (lean::obj_tag(x_7) == 0) +{ +obj* x_9; obj* x_11; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_9 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_11 = x_6; +} else { + lean::inc(x_9); + lean::dec(x_6); + x_11 = lean::box(0); +} +x_12 = lean::cnstr_get(x_7, 1); +x_14 = lean::cnstr_get(x_7, 2); +if (lean::is_exclusive(x_7)) { + lean::cnstr_release(x_7, 0); + x_16 = x_7; +} else { + lean::inc(x_12); + lean::inc(x_14); + lean::dec(x_7); + x_16 = lean::box(0); +} +lean::inc(x_12); +x_18 = l_lean_parser_mk__raw__res(x_1, x_12); +x_19 = l_lean_parser_finish__comment__block___closed__2; +if (lean::is_scalar(x_16)) { + x_20 = lean::alloc_cnstr(0, 3, 0); +} else { + x_20 = x_16; +} +lean::cnstr_set(x_20, 0, x_18); +lean::cnstr_set(x_20, 1, x_12); +lean::cnstr_set(x_20, 2, x_19); +x_21 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_20); +if (lean::is_scalar(x_11)) { + x_22 = lean::alloc_cnstr(0, 2, 0); +} else { + x_22 = x_11; +} +lean::cnstr_set(x_22, 0, x_21); +lean::cnstr_set(x_22, 1, x_9); +return x_22; +} +else +{ +obj* x_24; obj* x_26; obj* x_27; uint8 x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; +lean::dec(x_1); +x_24 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_26 = x_6; +} else { + lean::inc(x_24); + lean::dec(x_6); + x_26 = lean::box(0); +} +x_27 = lean::cnstr_get(x_7, 0); +x_29 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); +if (lean::is_exclusive(x_7)) { + x_30 = x_7; +} else { + lean::inc(x_27); + lean::dec(x_7); + x_30 = lean::box(0); +} +if (lean::is_scalar(x_30)) { + x_31 = lean::alloc_cnstr(1, 1, 1); +} else { + x_31 = x_30; +} +lean::cnstr_set(x_31, 0, x_27); +lean::cnstr_set_scalar(x_31, sizeof(void*)*1, x_29); +x_32 = x_31; +if (lean::is_scalar(x_26)) { + x_33 = lean::alloc_cnstr(0, 2, 0); +} else { + x_33 = x_26; +} +lean::cnstr_set(x_33, 0, x_32); +lean::cnstr_set(x_33, 1, x_24); +return x_33; } } } obj* _init_l_lean_parser_command_doc__comment_parser___closed__1() { _start: { -obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_9; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; +obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; x_0 = lean::mk_string("/--"); x_1 = l_string_trim(x_0); lean::dec(x_0); @@ -6066,40 +6248,38 @@ lean::closure_set(x_6, 2, x_4); x_7 = lean::mk_string("-/"); lean::inc(x_7); x_9 = l_string_quote(x_7); -lean::inc(x_9); -x_11 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); -lean::closure_set(x_11, 0, x_9); -x_12 = lean::alloc_closure(reinterpret_cast(l_lean_parser_with__trailing___rarg___lambda__1), 2, 0); -x_13 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__1___rarg___boxed), 4, 1); +x_10 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); +lean::closure_set(x_10, 0, x_9); +x_11 = lean::alloc_closure(reinterpret_cast(l_lean_parser_with__trailing___rarg___lambda__1), 2, 0); +x_12 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__1___rarg___boxed), 4, 1); +lean::closure_set(x_12, 0, x_11); +x_13 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed), 5, 1); lean::closure_set(x_13, 0, x_12); -x_14 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__8___rarg___boxed), 5, 1); -lean::closure_set(x_14, 0, x_13); -x_15 = lean::alloc_closure(reinterpret_cast(l_lean_parser_command_doc__comment_parser___lambda__1___boxed), 7, 2); -lean::closure_set(x_15, 0, x_9); -lean::closure_set(x_15, 1, x_11); -x_16 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg), 6, 2); -lean::closure_set(x_16, 0, x_14); -lean::closure_set(x_16, 1, x_15); -x_17 = l_string_trim(x_7); +x_14 = lean::alloc_closure(reinterpret_cast(l_lean_parser_command_doc__comment_parser___lambda__1___boxed), 6, 1); +lean::closure_set(x_14, 0, x_10); +x_15 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__11___rarg), 6, 2); +lean::closure_set(x_15, 0, x_13); +lean::closure_set(x_15, 1, x_14); +x_16 = l_string_trim(x_7); lean::dec(x_7); -lean::inc(x_17); -x_20 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); -lean::closure_set(x_20, 0, x_17); -x_21 = lean::alloc_closure(reinterpret_cast(l_lean_parser_symbol__core___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__1___boxed), 7, 3); -lean::closure_set(x_21, 0, x_17); -lean::closure_set(x_21, 1, x_5); -lean::closure_set(x_21, 2, x_20); -x_22 = lean::box(0); +lean::inc(x_16); +x_19 = lean::alloc_closure(reinterpret_cast(l_dlist_singleton___rarg), 2, 1); +lean::closure_set(x_19, 0, x_16); +x_20 = lean::alloc_closure(reinterpret_cast(l_lean_parser_symbol__core___at_lean_parser_command_doc__comment_parser_lean_parser_has__tokens___spec__1___boxed), 7, 3); +lean::closure_set(x_20, 0, x_16); +lean::closure_set(x_20, 1, x_5); +lean::closure_set(x_20, 2, x_19); +x_21 = lean::box(0); +x_22 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_22, 0, x_20); +lean::cnstr_set(x_22, 1, x_21); x_23 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_23, 0, x_21); +lean::cnstr_set(x_23, 0, x_15); lean::cnstr_set(x_23, 1, x_22); x_24 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_24, 0, x_16); +lean::cnstr_set(x_24, 0, x_6); lean::cnstr_set(x_24, 1, x_23); -x_25 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_25, 0, x_6); -lean::cnstr_set(x_25, 1, x_24); -return x_25; +return x_24; } } obj* l_lean_parser_command_doc__comment_parser(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { @@ -6112,85 +6292,45 @@ x_6 = l_lean_parser_combinators_node___at_lean_parser_command_doc__comment_parse return x_6; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___rarg(x_0, x_1, x_2, x_3, x_4); +x_5 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(x_0, x_1, x_2, x_3, x_4); lean::dec(x_1); lean::dec(x_2); return x_5; } } -obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_lean_parser_parsec__t_lookahead___at_lean_parser_command_doc__comment_parser___spec__1(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; -x_7 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -return x_7; -} -} -obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; -x_6 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(x_0, x_1, x_2, x_3, x_4, x_5); -lean::dec(x_0); +x_6 = l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_command_doc__comment_parser___spec__3(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_1); lean::dec(x_2); lean::dec(x_3); return x_6; } } -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___rarg(x_0, x_1, x_2, x_3, x_4); +x_5 = l_lean_parser_monad__parsec_many_x_27___at_lean_parser_command_doc__comment_parser___spec__2(x_0, x_1, x_2, x_3, x_4); lean::dec(x_1); lean::dec(x_2); return x_5; } } -obj* l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6___boxed(obj* x_0) { +obj* l_lean_parser_command_doc__comment_parser___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_1; -x_1 = l_reader__t_pure___at_lean_parser_command_doc__comment_parser___spec__6(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; -x_4 = l_list_mfoldl___main___at_lean_parser_command_doc__comment_parser___spec__5(x_0, x_1, x_2, x_3); -lean::dec(x_1); -return x_4; -} -} -obj* l_lean_parser_command_doc__comment_parser___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { -_start: -{ -obj* x_7; -x_7 = l_lean_parser_command_doc__comment_parser___lambda__1(x_0, x_1, x_2, x_3, x_4, x_5, x_6); -lean::dec(x_0); +obj* x_6; +x_6 = l_lean_parser_command_doc__comment_parser___lambda__1(x_0, x_1, x_2, x_3, x_4, x_5); +lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -return x_7; +return x_6; } } obj* _init_l_lean_parser_command_attr__instance() { diff --git a/src/boot/init/lean/parser/parsec.cpp b/src/boot/init/lean/parser/parsec.cpp index 10462d0665..3345197b52 100644 --- a/src/boot/init/lean/parser/parsec.cpp +++ b/src/boot/init/lean/parser/parsec.cpp @@ -197,7 +197,7 @@ obj* l_lean_parser_monad__parsec_curr(obj*, obj*); obj* l_lean_parser_parsec__t_labels__mk__res___rarg(obj*, obj*); obj* l_lean_parser_parsec__t_lookahead___rarg___lambda__1(obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_monad__parsec_take__until___spec__1(obj*, obj*, obj*); -obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_cond___boxed(obj*, obj*); obj* l_lean_parser_parsec_result_mk__eps(obj*, obj*); obj* l_lean_parser_monad__parsec_fix__aux___main___boxed(obj*, obj*); @@ -458,7 +458,7 @@ obj* l_lean_parser_monad__parsec_take__until___rarg___boxed(obj*, obj*, obj*); obj* l_lean_parser_parsec__t_bind(obj*); obj* l_lean_parser_monad__parsec_take__until1___boxed(obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_any___spec__1___rarg(obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_unexpected___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_eoi___at_lean_parser_parsec__t_parse__with__eoi___spec__1___boxed(obj*, obj*); obj* l_lean_parser_monad__parsec_foldr___rarg___lambda__1(obj*, obj*, obj*, obj*, obj*); @@ -620,7 +620,7 @@ obj* l___private_init_lean_parser_parsec_6__take__while__aux_x_27___main___rarg( obj* l_lean_parser_monad__parsec_cond___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_take__while1_x_27___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_lower___spec__2___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_sep__by1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_ch___spec__1(obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_fix(obj*, obj*); @@ -784,7 +784,6 @@ obj* l_char_quote__core(uint32); obj* l_lean_parser_monad__parsec_fix__aux___rarg(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_parsec__t_parse__with__left__over___rarg___lambda__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec__trans___boxed(obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_many_x_27___rarg(obj*, obj*, obj*, obj*, obj*); namespace lean { uint8 nat_dec_lt(obj*, obj*); @@ -11030,57 +11029,57 @@ x_0 = lean::mk_string("longest_match: empty list"); return x_0; } } -obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10) { +obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(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: { -if (lean::obj_tag(x_10) == 0) +if (lean::obj_tag(x_7) == 0) { -obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_20; obj* x_23; obj* x_26; +obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_17; obj* x_20; obj* x_23; lean::dec(x_5); -lean::dec(x_8); +lean::dec(x_4); lean::dec(x_1); lean::dec(x_3); -x_15 = lean::box(0); -x_16 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___closed__1; -x_17 = l_mjoin___rarg___closed__1; -x_18 = l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_longest__match___spec__1___rarg(x_16, x_17, x_15, x_15, x_9); -lean::dec(x_9); -x_20 = lean::cnstr_get(x_0, 0); -lean::inc(x_20); +x_12 = lean::box(0); +x_13 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___closed__1; +x_14 = l_mjoin___rarg___closed__1; +x_15 = l_lean_parser_monad__parsec_error___at_lean_parser_monad__parsec_longest__match___spec__1___rarg(x_13, x_14, x_12, x_12, x_6); +lean::dec(x_6); +x_17 = lean::cnstr_get(x_0, 0); +lean::inc(x_17); lean::dec(x_0); -x_23 = lean::cnstr_get(x_20, 1); -lean::inc(x_23); -lean::dec(x_20); -x_26 = lean::apply_2(x_23, lean::box(0), x_18); -return x_26; +x_20 = lean::cnstr_get(x_17, 1); +lean::inc(x_20); +lean::dec(x_17); +x_23 = lean::apply_2(x_20, lean::box(0), x_15); +return x_23; } else { -obj* x_27; obj* x_29; obj* x_32; obj* x_40; obj* x_41; obj* x_42; -x_27 = lean::cnstr_get(x_10, 0); -lean::inc(x_27); -x_29 = lean::cnstr_get(x_10, 1); +obj* x_24; obj* x_26; obj* x_29; obj* x_37; obj* x_38; obj* x_39; +x_24 = lean::cnstr_get(x_7, 0); +lean::inc(x_24); +x_26 = lean::cnstr_get(x_7, 1); +lean::inc(x_26); +lean::dec(x_7); +x_29 = lean::cnstr_get(x_0, 1); lean::inc(x_29); -lean::dec(x_10); -x_32 = lean::cnstr_get(x_0, 1); -lean::inc(x_32); -lean::inc(x_9); -lean::inc(x_8); +lean::inc(x_6); lean::inc(x_5); +lean::inc(x_4); lean::inc(x_3); lean::inc(x_1); lean::inc(x_0); -x_40 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, lean::box(0), x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_29); -x_41 = lean::alloc_closure(reinterpret_cast(l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___lambda__4), 8, 7); -lean::closure_set(x_41, 0, x_3); -lean::closure_set(x_41, 1, x_0); -lean::closure_set(x_41, 2, x_5); -lean::closure_set(x_41, 3, x_8); -lean::closure_set(x_41, 4, x_27); -lean::closure_set(x_41, 5, x_9); -lean::closure_set(x_41, 6, x_1); -x_42 = lean::apply_4(x_32, lean::box(0), lean::box(0), x_40, x_41); -return x_42; +x_37 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, lean::box(0), x_3, x_4, x_5, x_6, x_26); +x_38 = lean::alloc_closure(reinterpret_cast(l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___lambda__4), 8, 7); +lean::closure_set(x_38, 0, x_3); +lean::closure_set(x_38, 1, x_0); +lean::closure_set(x_38, 2, x_4); +lean::closure_set(x_38, 3, x_5); +lean::closure_set(x_38, 4, x_24); +lean::closure_set(x_38, 5, x_6); +lean::closure_set(x_38, 6, x_1); +x_39 = lean::apply_4(x_29, lean::box(0), lean::box(0), x_37, x_38); +return x_39; } } } @@ -11088,7 +11087,7 @@ obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__ _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___boxed), 11, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg___boxed), 8, 0); return x_2; } } @@ -11102,16 +11101,16 @@ x_3 = lean::apply_2(x_0, lean::box(0), x_2); return x_3; } } -obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8) { +obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2(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: { -obj* x_10; obj* x_11; obj* x_12; +obj* x_9; obj* x_10; obj* x_11; lean::inc(x_3); -x_10 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, lean::box(0), x_2, x_3, x_3, x_4, x_5, x_6, x_8, x_7); -x_11 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_longest__match___rarg___lambda__1), 2, 1); -lean::closure_set(x_11, 0, x_4); -x_12 = lean::apply_4(x_3, lean::box(0), lean::box(0), x_10, x_11); -return x_12; +x_9 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, lean::box(0), x_2, x_3, x_4, x_7, x_5); +x_10 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_longest__match___rarg___lambda__1), 2, 1); +lean::closure_set(x_10, 0, x_6); +x_11 = lean::apply_4(x_3, lean::box(0), lean::box(0), x_9, x_10); +return x_11; } } obj* l_lean_parser_monad__parsec_longest__match___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -11127,15 +11126,14 @@ lean::inc(x_7); x_11 = lean::apply_2(x_7, lean::box(0), x_9); lean::inc(x_11); lean::inc(x_5); -x_14 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_longest__match___rarg___lambda__2___boxed), 9, 8); +x_14 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_longest__match___rarg___lambda__2), 8, 7); lean::closure_set(x_14, 0, x_0); lean::closure_set(x_14, 1, x_1); lean::closure_set(x_14, 2, x_3); lean::closure_set(x_14, 3, x_5); -lean::closure_set(x_14, 4, x_7); -lean::closure_set(x_14, 5, x_9); -lean::closure_set(x_14, 6, x_11); -lean::closure_set(x_14, 7, x_4); +lean::closure_set(x_14, 4, x_11); +lean::closure_set(x_14, 5, x_4); +lean::closure_set(x_14, 6, x_7); x_15 = lean::apply_4(x_5, lean::box(0), lean::box(0), x_11, x_14); return x_15; } @@ -11177,16 +11175,13 @@ lean::dec(x_2); return x_4; } } -obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___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, obj* x_8, obj* x_9, obj* x_10) { +obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___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: { -obj* x_11; -x_11 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +obj* x_8; +x_8 = l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___rarg(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean::dec(x_2); -lean::dec(x_4); -lean::dec(x_6); -lean::dec(x_7); -return x_11; +return x_8; } } obj* l_list_mfoldr___main___at_lean_parser_monad__parsec_longest__match___spec__2___boxed(obj* x_0, obj* x_1) { @@ -11199,15 +11194,6 @@ lean::dec(x_1); return x_2; } } -obj* l_lean_parser_monad__parsec_longest__match___rarg___lambda__2___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, obj* x_8) { -_start: -{ -obj* x_9; -x_9 = l_lean_parser_monad__parsec_longest__match___rarg___lambda__2(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean::dec(x_5); -return x_9; -} -} obj* l_lean_parser_monad__parsec_longest__match___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { diff --git a/src/boot/init/lean/parser/term.cpp b/src/boot/init/lean/parser/term.cpp index 8ba2c06eaa..877c651c00 100644 --- a/src/boot/init/lean/parser/term.cpp +++ b/src/boot/init/lean/parser/term.cpp @@ -28,7 +28,7 @@ obj* l_lean_parser_term_let_parser___closed__1; obj* l_lean_parser_term_subtype; obj* l_lean_parser_term_binder__default; obj* l_lean_parser_ident__univ__spec_has__view_x_27; -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_parser_term_binders_parser_lean_parser_has__tokens; obj* l_lean_parser_string__lit_parser___at_lean_parser_term_builtin__leading__parsers_lean_parser_has__tokens___spec__1___boxed(obj*); obj* l_lean_parser_term_have__proof_has__view_x_27___lambda__1___closed__2; @@ -148,7 +148,7 @@ obj* l_lean_parser_term_show_parser_lean_parser_has__view; obj* l_lean_parser_indexed___at___private_init_lean_parser_term_2__leading___spec__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_with__trailing___rarg___lambda__1(obj*, obj*); obj* l_list_mfoldr___main___at_lean_parser_term_bracketed__binder_parser_lean_parser_has__tokens___spec__5(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_sorry_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_term_if_has__view; obj* l_lean_parser_term_bracketed__binders; @@ -417,7 +417,7 @@ obj* l_lean_parser_term_explicit_parser_lean_parser_has__view; extern obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__2___closed__3; extern obj* l_lean_parser_number_has__view; obj* l_rbmap_find___main___at___private_init_lean_parser_term_1__trailing___spec__2___rarg(obj*, obj*); -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___boxed(obj*, obj*); +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___boxed(obj*); obj* l_lean_parser_term_pi_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_term_struct__inst__type_has__view; obj* l_lean_parser_ident__univ__spec; @@ -694,7 +694,7 @@ obj* l_lean_parser_term_binder__default__tac_has__view; obj* l_lean_parser_term_paren_has__view_x_27___lambda__2___closed__2; extern obj* l_lean_parser_curr__lbp___rarg___lambda__3___closed__2; obj* l_lean_parser_term_anonymous__inaccessible_parser_lean_parser_has__view; -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_hole_has__view; obj* l_lean_parser_term_binder_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_term_sort__app_parser_lean_parser_has__tokens; @@ -804,7 +804,6 @@ obj* l_lean_parser_term_assume__anonymous_has__view_x_27___lambda__2(obj*); obj* l_lean_parser_string__lit_parser___at_lean_parser_term_builtin__leading__parsers_lean_parser_has__tokens___spec__1___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_term_have__term_has__view_x_27___lambda__1(obj*); obj* l_string_trim(obj*); -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_inst__implicit__binder_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_term_from_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_term_explicit_has__view_x_27; @@ -981,7 +980,6 @@ obj* l_lean_parser_term_struct__inst_parser___closed__1; obj* l_lean_parser_term_hole_has__view_x_27; obj* l_lean_parser_term_app_parser_lean_parser_has__view___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_term_tuple_has__view_x_27___lambda__1___closed__1; -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__4; obj* l_lean_parser_term_explicit__modifier_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_term_projection_parser_lean_parser_has__view___spec__5___rarg(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); @@ -993,7 +991,7 @@ obj* l_lean_parser_term_explicit__binder__content_has__view_x_27___lambda__2(obj namespace lean { uint8 nat_dec_lt(obj*, obj*); } -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(obj*, obj*); +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(obj*); obj* l_lean_parser_term_simple__strict__implicit__binder_has__view_x_27___lambda__1___closed__1; obj* l_rbmap_find___main___at___private_init_lean_parser_term_2__leading___spec__3___boxed(obj*); obj* l_lean_parser_term_from_has__view; @@ -52232,7 +52230,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -52249,7 +52247,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -52266,7 +52264,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -52283,7 +52281,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -54013,7 +54011,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -54030,7 +54028,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -54047,7 +54045,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -54064,7 +54062,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -55635,49 +55633,33 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_er return x_1; } } -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8) { _start: { -obj* x_6; obj* x_7; uint8 x_8; obj* x_9; obj* x_10; obj* x_11; -x_6 = l_option_get__or__else___main___rarg(x_0, x_4); -x_7 = lean::alloc_cnstr(0, 4, 0); -lean::cnstr_set(x_7, 0, x_6); -lean::cnstr_set(x_7, 1, x_1); -lean::cnstr_set(x_7, 2, x_2); -lean::cnstr_set(x_7, 3, x_3); -x_8 = 0; -x_9 = lean::alloc_cnstr(1, 1, 1); -lean::cnstr_set(x_9, 0, x_7); -lean::cnstr_set_scalar(x_9, sizeof(void*)*1, x_8); -x_10 = x_9; -x_11 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_11, 0, x_10); -lean::cnstr_set(x_11, 1, x_5); -return x_11; +obj* x_9; obj* x_10; uint8 x_11; obj* x_12; obj* x_13; obj* x_14; +x_9 = l_option_get__or__else___main___rarg(x_2, x_7); +x_10 = lean::alloc_cnstr(0, 4, 0); +lean::cnstr_set(x_10, 0, x_9); +lean::cnstr_set(x_10, 1, x_0); +lean::cnstr_set(x_10, 2, x_1); +lean::cnstr_set(x_10, 3, x_3); +x_11 = 0; +x_12 = lean::alloc_cnstr(1, 1, 1); +lean::cnstr_set(x_12, 0, x_10); +lean::cnstr_set_scalar(x_12, sizeof(void*)*1, x_11); +x_13 = x_12; +x_14 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_14, 0, x_13); +lean::cnstr_set(x_14, 1, x_8); +return x_14; } } -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(obj* x_0) { _start: { -obj* x_5; obj* x_6; obj* x_7; -x_5 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1___boxed), 6, 4); -lean::closure_set(x_5, 0, x_2); -lean::closure_set(x_5, 1, x_0); -lean::closure_set(x_5, 2, x_1); -lean::closure_set(x_5, 3, x_3); -x_6 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__1___rarg___boxed), 4, 1); -lean::closure_set(x_6, 0, x_5); -x_7 = lean::alloc_closure(reinterpret_cast(l_reader__t_lift___at_lean_parser_command_notation__spec_symbol__quote_parser_lean_parser_has__tokens___spec__2___rarg___boxed), 5, 1); -lean::closure_set(x_7, 0, x_6); -return x_7; -} -} -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___boxed), 5, 0); -return x_2; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___boxed), 9, 0); +return x_1; } } obj* l_lean_parser_curr__lbp___at_lean_parser_term__parser_run___spec__5(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -55695,109 +55677,109 @@ x_9 = lean::cnstr_get(x_7, 0); lean::inc(x_9); if (lean::obj_tag(x_9) == 0) { -obj* x_14; obj* x_16; obj* x_17; obj* x_19; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +obj* x_13; obj* x_15; obj* x_16; obj* x_18; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; lean::dec(x_1); lean::dec(x_9); -lean::dec(x_2); -x_14 = lean::cnstr_get(x_6, 1); +x_13 = lean::cnstr_get(x_6, 1); if (lean::is_exclusive(x_6)) { lean::cnstr_release(x_6, 0); - x_16 = x_6; + x_15 = x_6; } else { - lean::inc(x_14); + lean::inc(x_13); lean::dec(x_6); - x_16 = lean::box(0); + x_15 = lean::box(0); } -x_17 = lean::cnstr_get(x_7, 1); -x_19 = lean::cnstr_get(x_7, 2); +x_16 = lean::cnstr_get(x_7, 1); +x_18 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - x_21 = x_7; + x_20 = x_7; } else { - lean::inc(x_17); - lean::inc(x_19); + lean::inc(x_16); + lean::inc(x_18); lean::dec(x_7); - x_21 = lean::box(0); + x_20 = lean::box(0); } -x_22 = lean::mk_nat_obj(0u); -x_23 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_21)) { - x_24 = lean::alloc_cnstr(0, 3, 0); +x_21 = lean::mk_nat_obj(0u); +x_22 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_20)) { + x_23 = lean::alloc_cnstr(0, 3, 0); } else { - x_24 = x_21; + x_23 = x_20; } -lean::cnstr_set(x_24, 0, x_22); -lean::cnstr_set(x_24, 1, x_17); -lean::cnstr_set(x_24, 2, x_23); -x_25 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_19, x_24); -if (lean::is_scalar(x_16)) { - x_26 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_23, 0, x_21); +lean::cnstr_set(x_23, 1, x_16); +lean::cnstr_set(x_23, 2, x_22); +x_24 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_18, x_23); +if (lean::is_scalar(x_15)) { + x_25 = lean::alloc_cnstr(0, 2, 0); } else { - x_26 = x_16; + x_25 = x_15; } -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_14); -return x_26; +lean::cnstr_set(x_25, 0, x_24); +lean::cnstr_set(x_25, 1, x_13); +return x_25; } else { -obj* x_27; -x_27 = lean::cnstr_get(x_9, 0); -lean::inc(x_27); +obj* x_26; +x_26 = lean::cnstr_get(x_9, 0); +lean::inc(x_26); lean::dec(x_9); -switch (lean::obj_tag(x_27)) { +switch (lean::obj_tag(x_26)) { case 0: { -obj* x_30; obj* x_33; obj* x_36; obj* x_38; obj* x_40; obj* x_41; obj* x_44; obj* x_46; obj* x_47; -x_30 = lean::cnstr_get(x_27, 0); -lean::inc(x_30); -lean::dec(x_27); -x_33 = lean::cnstr_get(x_6, 1); -lean::inc(x_33); +obj* x_29; obj* x_32; obj* x_35; obj* x_37; obj* x_39; obj* x_40; obj* x_43; obj* x_45; obj* x_46; +x_29 = lean::cnstr_get(x_26, 0); +lean::inc(x_29); +lean::dec(x_26); +x_32 = lean::cnstr_get(x_6, 1); +lean::inc(x_32); lean::dec(x_6); -x_36 = lean::cnstr_get(x_7, 1); -x_38 = lean::cnstr_get(x_7, 2); +x_35 = lean::cnstr_get(x_7, 1); +x_37 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_set(x_7, 1, lean::box(0)); lean::cnstr_set(x_7, 2, lean::box(0)); - x_40 = x_7; + x_39 = x_7; } else { - lean::inc(x_36); - lean::inc(x_38); + lean::inc(x_35); + lean::inc(x_37); lean::dec(x_7); - x_40 = lean::box(0); + x_39 = lean::box(0); } -x_41 = lean::cnstr_get(x_30, 1); -lean::inc(x_41); -lean::dec(x_30); -x_44 = lean::cnstr_get(x_1, 1); -lean::inc(x_44); -x_46 = l_string_mk__iterator(x_41); -x_47 = l_lean_parser_trie_match__prefix___rarg(x_44, x_46); -if (lean::obj_tag(x_47) == 0) +x_40 = lean::cnstr_get(x_29, 1); +lean::inc(x_40); +lean::dec(x_29); +x_43 = lean::cnstr_get(x_1, 1); +lean::inc(x_43); +x_45 = l_string_mk__iterator(x_40); +x_46 = l_lean_parser_trie_match__prefix___rarg(x_43, x_45); +if (lean::obj_tag(x_46) == 0) { -obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_56; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; -lean::dec(x_40); -x_49 = lean::box(0); -x_50 = l_lean_parser_curr__lbp___rarg___lambda__1___closed__1; -x_51 = l_mjoin___rarg___closed__1; -x_52 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_50, x_51, x_49, x_49, x_0); -x_53 = lean::apply_4(x_52, x_1, x_2, x_36, x_33); -x_54 = lean::cnstr_get(x_53, 0); -x_56 = lean::cnstr_get(x_53, 1); -if (lean::is_exclusive(x_53)) { - x_58 = x_53; +obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_54; obj* x_56; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; +lean::dec(x_39); +x_48 = lean::box(0); +x_49 = l_lean_parser_curr__lbp___rarg___lambda__1___closed__1; +x_50 = l_mjoin___rarg___closed__1; +x_51 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_49, x_50, x_48, x_48, x_0, x_1, x_2, x_35, x_32); +lean::dec(x_35); +lean::dec(x_1); +x_54 = lean::cnstr_get(x_51, 0); +x_56 = lean::cnstr_get(x_51, 1); +if (lean::is_exclusive(x_51)) { + x_58 = x_51; } else { lean::inc(x_54); lean::inc(x_56); - lean::dec(x_53); + lean::dec(x_51); x_58 = lean::box(0); } x_59 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; x_60 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_59, x_54); x_61 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_59, x_60); -x_62 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_38, x_61); +x_62 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_37, x_61); if (lean::is_scalar(x_58)) { x_63 = lean::alloc_cnstr(0, 2, 0); } else { @@ -55809,291 +55791,288 @@ return x_63; } else { -obj* x_66; obj* x_69; obj* x_71; obj* x_72; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +obj* x_65; obj* x_68; obj* x_70; obj* x_71; obj* x_74; obj* x_75; obj* x_76; obj* x_77; lean::dec(x_1); -lean::dec(x_2); -x_66 = lean::cnstr_get(x_47, 0); -lean::inc(x_66); -lean::dec(x_47); -x_69 = lean::cnstr_get(x_66, 1); -if (lean::is_exclusive(x_66)) { - lean::cnstr_release(x_66, 0); - x_71 = x_66; +x_65 = lean::cnstr_get(x_46, 0); +lean::inc(x_65); +lean::dec(x_46); +x_68 = lean::cnstr_get(x_65, 1); +if (lean::is_exclusive(x_65)) { + lean::cnstr_release(x_65, 0); + x_70 = x_65; } else { - lean::inc(x_69); - lean::dec(x_66); - x_71 = lean::box(0); + lean::inc(x_68); + lean::dec(x_65); + x_70 = lean::box(0); } -x_72 = lean::cnstr_get(x_69, 1); -lean::inc(x_72); -lean::dec(x_69); -x_75 = l_lean_parser_match__token___closed__1; -if (lean::is_scalar(x_40)) { - x_76 = lean::alloc_cnstr(0, 3, 0); +x_71 = lean::cnstr_get(x_68, 1); +lean::inc(x_71); +lean::dec(x_68); +x_74 = l_lean_parser_match__token___closed__1; +if (lean::is_scalar(x_39)) { + x_75 = lean::alloc_cnstr(0, 3, 0); } else { - x_76 = x_40; + x_75 = x_39; } -lean::cnstr_set(x_76, 0, x_72); -lean::cnstr_set(x_76, 1, x_36); -lean::cnstr_set(x_76, 2, x_75); -x_77 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_38, x_76); -if (lean::is_scalar(x_71)) { - x_78 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_75, 0, x_71); +lean::cnstr_set(x_75, 1, x_35); +lean::cnstr_set(x_75, 2, x_74); +x_76 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_37, x_75); +if (lean::is_scalar(x_70)) { + x_77 = lean::alloc_cnstr(0, 2, 0); } else { - x_78 = x_71; + x_77 = x_70; } -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_33); -return x_78; +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_32); +return x_77; } } case 1: { -obj* x_82; obj* x_84; obj* x_85; obj* x_87; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; +obj* x_80; obj* x_82; obj* x_83; obj* x_85; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_27); -x_82 = lean::cnstr_get(x_6, 1); +lean::dec(x_26); +x_80 = lean::cnstr_get(x_6, 1); if (lean::is_exclusive(x_6)) { lean::cnstr_release(x_6, 0); - x_84 = x_6; + x_82 = x_6; } else { - lean::inc(x_82); + lean::inc(x_80); lean::dec(x_6); - x_84 = lean::box(0); + x_82 = lean::box(0); } -x_85 = lean::cnstr_get(x_7, 1); -x_87 = lean::cnstr_get(x_7, 2); +x_83 = lean::cnstr_get(x_7, 1); +x_85 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - x_89 = x_7; + x_87 = x_7; } else { + lean::inc(x_83); lean::inc(x_85); - lean::inc(x_87); lean::dec(x_7); - x_89 = lean::box(0); + x_87 = lean::box(0); } -x_90 = l_lean_parser_max__prec; -x_91 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_89)) { - x_92 = lean::alloc_cnstr(0, 3, 0); +x_88 = l_lean_parser_max__prec; +x_89 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_87)) { + x_90 = lean::alloc_cnstr(0, 3, 0); } else { - x_92 = x_89; + x_90 = x_87; } -lean::cnstr_set(x_92, 0, x_90); -lean::cnstr_set(x_92, 1, x_85); -lean::cnstr_set(x_92, 2, x_91); -x_93 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_87, x_92); -if (lean::is_scalar(x_84)) { - x_94 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_90, 0, x_88); +lean::cnstr_set(x_90, 1, x_83); +lean::cnstr_set(x_90, 2, x_89); +x_91 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_85, x_90); +if (lean::is_scalar(x_82)) { + x_92 = lean::alloc_cnstr(0, 2, 0); } else { - x_94 = x_84; + x_92 = x_82; } -lean::cnstr_set(x_94, 0, x_93); -lean::cnstr_set(x_94, 1, x_82); -return x_94; +lean::cnstr_set(x_92, 0, x_91); +lean::cnstr_set(x_92, 1, x_80); +return x_92; } case 2: { -obj* x_95; obj* x_98; obj* x_100; obj* x_101; obj* x_103; obj* x_105; obj* x_106; obj* x_109; uint8 x_110; -x_95 = lean::cnstr_get(x_27, 0); -lean::inc(x_95); -lean::dec(x_27); -x_98 = lean::cnstr_get(x_6, 1); +obj* x_93; obj* x_96; obj* x_98; obj* x_99; obj* x_101; obj* x_103; obj* x_104; obj* x_107; uint8 x_108; +x_93 = lean::cnstr_get(x_26, 0); +lean::inc(x_93); +lean::dec(x_26); +x_96 = lean::cnstr_get(x_6, 1); if (lean::is_exclusive(x_6)) { lean::cnstr_release(x_6, 0); lean::cnstr_set(x_6, 1, lean::box(0)); - x_100 = x_6; + x_98 = x_6; } else { - lean::inc(x_98); + lean::inc(x_96); lean::dec(x_6); - x_100 = lean::box(0); + x_98 = lean::box(0); } -x_101 = lean::cnstr_get(x_7, 1); -x_103 = lean::cnstr_get(x_7, 2); +x_99 = lean::cnstr_get(x_7, 1); +x_101 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_set(x_7, 1, lean::box(0)); lean::cnstr_set(x_7, 2, lean::box(0)); - x_105 = x_7; + x_103 = x_7; } else { + lean::inc(x_99); lean::inc(x_101); - lean::inc(x_103); lean::dec(x_7); - x_105 = lean::box(0); + x_103 = lean::box(0); } -x_106 = lean::cnstr_get(x_95, 0); -lean::inc(x_106); -lean::dec(x_95); -x_109 = l_lean_parser_number_has__view_x_27___lambda__1___closed__6; -x_110 = lean_name_dec_eq(x_106, x_109); +x_104 = lean::cnstr_get(x_93, 0); +lean::inc(x_104); +lean::dec(x_93); +x_107 = l_lean_parser_number_has__view_x_27___lambda__1___closed__6; +x_108 = lean_name_dec_eq(x_104, x_107); +if (x_108 == 0) +{ +obj* x_109; uint8 x_110; +x_109 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__1; +x_110 = lean_name_dec_eq(x_104, x_109); +lean::dec(x_104); if (x_110 == 0) { -obj* x_111; uint8 x_112; -x_111 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__1; -x_112 = lean_name_dec_eq(x_106, x_111); -lean::dec(x_106); -if (x_112 == 0) -{ -obj* x_116; obj* x_117; obj* x_118; obj* x_119; obj* x_120; obj* x_121; obj* x_123; obj* x_125; obj* x_126; obj* x_127; -lean::dec(x_105); -lean::dec(x_100); -x_116 = lean::box(0); -x_117 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__2; -x_118 = l_mjoin___rarg___closed__1; -x_119 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_117, x_118, x_116, x_116, x_0); -x_120 = lean::apply_4(x_119, x_1, x_2, x_101, x_98); -x_121 = lean::cnstr_get(x_120, 0); -x_123 = lean::cnstr_get(x_120, 1); -if (lean::is_exclusive(x_120)) { - x_125 = x_120; +obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_120; obj* x_122; obj* x_124; obj* x_125; obj* x_126; +lean::dec(x_103); +lean::dec(x_98); +x_114 = lean::box(0); +x_115 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__2; +x_116 = l_mjoin___rarg___closed__1; +x_117 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_115, x_116, x_114, x_114, x_0, x_1, x_2, x_99, x_96); +lean::dec(x_99); +lean::dec(x_1); +x_120 = lean::cnstr_get(x_117, 0); +x_122 = lean::cnstr_get(x_117, 1); +if (lean::is_exclusive(x_117)) { + x_124 = x_117; } else { - lean::inc(x_121); - lean::inc(x_123); - lean::dec(x_120); - x_125 = lean::box(0); + lean::inc(x_120); + lean::inc(x_122); + lean::dec(x_117); + x_124 = lean::box(0); } -x_126 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_103, x_121); -if (lean::is_scalar(x_125)) { - x_127 = lean::alloc_cnstr(0, 2, 0); +x_125 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_101, x_120); +if (lean::is_scalar(x_124)) { + x_126 = lean::alloc_cnstr(0, 2, 0); } else { - x_127 = x_125; + x_126 = x_124; } -lean::cnstr_set(x_127, 0, x_126); -lean::cnstr_set(x_127, 1, x_123); -return x_127; +lean::cnstr_set(x_126, 0, x_125); +lean::cnstr_set(x_126, 1, x_122); +return x_126; } else { -obj* x_130; obj* x_131; obj* x_132; obj* x_133; obj* x_134; +obj* x_128; obj* x_129; obj* x_130; obj* x_131; obj* x_132; lean::dec(x_1); -lean::dec(x_2); -x_130 = l_lean_parser_max__prec; -x_131 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_105)) { - x_132 = lean::alloc_cnstr(0, 3, 0); +x_128 = l_lean_parser_max__prec; +x_129 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_103)) { + x_130 = lean::alloc_cnstr(0, 3, 0); } else { - x_132 = x_105; + x_130 = x_103; } -lean::cnstr_set(x_132, 0, x_130); -lean::cnstr_set(x_132, 1, x_101); -lean::cnstr_set(x_132, 2, x_131); -x_133 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_103, x_132); -if (lean::is_scalar(x_100)) { - x_134 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_130, 0, x_128); +lean::cnstr_set(x_130, 1, x_99); +lean::cnstr_set(x_130, 2, x_129); +x_131 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_101, x_130); +if (lean::is_scalar(x_98)) { + x_132 = lean::alloc_cnstr(0, 2, 0); } else { - x_134 = x_100; + x_132 = x_98; } -lean::cnstr_set(x_134, 0, x_133); -lean::cnstr_set(x_134, 1, x_98); -return x_134; +lean::cnstr_set(x_132, 0, x_131); +lean::cnstr_set(x_132, 1, x_96); +return x_132; } } else { -obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; +obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_106); -x_138 = l_lean_parser_max__prec; -x_139 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_105)) { - x_140 = lean::alloc_cnstr(0, 3, 0); +lean::dec(x_104); +x_135 = l_lean_parser_max__prec; +x_136 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_103)) { + x_137 = lean::alloc_cnstr(0, 3, 0); } else { - x_140 = x_105; + x_137 = x_103; } -lean::cnstr_set(x_140, 0, x_138); -lean::cnstr_set(x_140, 1, x_101); -lean::cnstr_set(x_140, 2, x_139); -x_141 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_103, x_140); -if (lean::is_scalar(x_100)) { - x_142 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_137, 0, x_135); +lean::cnstr_set(x_137, 1, x_99); +lean::cnstr_set(x_137, 2, x_136); +x_138 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_101, x_137); +if (lean::is_scalar(x_98)) { + x_139 = lean::alloc_cnstr(0, 2, 0); } else { - x_142 = x_100; + x_139 = x_98; } -lean::cnstr_set(x_142, 0, x_141); -lean::cnstr_set(x_142, 1, x_98); -return x_142; +lean::cnstr_set(x_139, 0, x_138); +lean::cnstr_set(x_139, 1, x_96); +return x_139; } } default: { -obj* x_143; obj* x_146; obj* x_148; obj* x_151; obj* x_152; obj* x_153; obj* x_154; obj* x_155; obj* x_156; obj* x_158; obj* x_160; obj* x_161; obj* x_162; -x_143 = lean::cnstr_get(x_6, 1); -lean::inc(x_143); +obj* x_140; obj* x_143; obj* x_145; obj* x_148; obj* x_149; obj* x_150; obj* x_151; obj* x_154; obj* x_156; obj* x_158; obj* x_159; obj* x_160; +x_140 = lean::cnstr_get(x_6, 1); +lean::inc(x_140); lean::dec(x_6); -x_146 = lean::cnstr_get(x_7, 1); -lean::inc(x_146); -x_148 = lean::cnstr_get(x_7, 2); -lean::inc(x_148); +x_143 = lean::cnstr_get(x_7, 1); +lean::inc(x_143); +x_145 = lean::cnstr_get(x_7, 2); +lean::inc(x_145); lean::dec(x_7); -x_151 = lean::box(0); -x_152 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__2; -x_153 = l_mjoin___rarg___closed__1; -x_154 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_152, x_153, x_151, x_151, x_0); -x_155 = lean::apply_4(x_154, x_1, x_2, x_146, x_143); -x_156 = lean::cnstr_get(x_155, 0); -x_158 = lean::cnstr_get(x_155, 1); -if (lean::is_exclusive(x_155)) { - x_160 = x_155; +x_148 = lean::box(0); +x_149 = l_lean_parser_curr__lbp___rarg___lambda__3___closed__2; +x_150 = l_mjoin___rarg___closed__1; +x_151 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_149, x_150, x_148, x_148, x_0, x_1, x_2, x_143, x_140); +lean::dec(x_143); +lean::dec(x_1); +x_154 = lean::cnstr_get(x_151, 0); +x_156 = lean::cnstr_get(x_151, 1); +if (lean::is_exclusive(x_151)) { + x_158 = x_151; } else { + lean::inc(x_154); lean::inc(x_156); - lean::inc(x_158); - lean::dec(x_155); - x_160 = lean::box(0); + lean::dec(x_151); + x_158 = lean::box(0); } -x_161 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_148, x_156); -if (lean::is_scalar(x_160)) { - x_162 = lean::alloc_cnstr(0, 2, 0); +x_159 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_145, x_154); +if (lean::is_scalar(x_158)) { + x_160 = lean::alloc_cnstr(0, 2, 0); } else { - x_162 = x_160; + x_160 = x_158; } -lean::cnstr_set(x_162, 0, x_161); -lean::cnstr_set(x_162, 1, x_158); -return x_162; +lean::cnstr_set(x_160, 0, x_159); +lean::cnstr_set(x_160, 1, x_156); +return x_160; } } } } else { -obj* x_165; obj* x_167; obj* x_168; uint8 x_170; obj* x_171; obj* x_172; obj* x_173; obj* x_174; +obj* x_162; obj* x_164; obj* x_165; uint8 x_167; obj* x_168; obj* x_169; obj* x_170; obj* x_171; lean::dec(x_1); -lean::dec(x_2); -x_165 = lean::cnstr_get(x_6, 1); +x_162 = lean::cnstr_get(x_6, 1); if (lean::is_exclusive(x_6)) { lean::cnstr_release(x_6, 0); - x_167 = x_6; + x_164 = x_6; +} else { + lean::inc(x_162); + lean::dec(x_6); + x_164 = lean::box(0); +} +x_165 = lean::cnstr_get(x_7, 0); +x_167 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); +if (lean::is_exclusive(x_7)) { + x_168 = x_7; } else { lean::inc(x_165); - lean::dec(x_6); - x_167 = lean::box(0); -} -x_168 = lean::cnstr_get(x_7, 0); -x_170 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_171 = x_7; -} else { - lean::inc(x_168); lean::dec(x_7); - x_171 = lean::box(0); + x_168 = lean::box(0); } -if (lean::is_scalar(x_171)) { - x_172 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_168)) { + x_169 = lean::alloc_cnstr(1, 1, 1); } else { - x_172 = x_171; + x_169 = x_168; } -lean::cnstr_set(x_172, 0, x_168); -lean::cnstr_set_scalar(x_172, sizeof(void*)*1, x_170); -x_173 = x_172; -if (lean::is_scalar(x_167)) { - x_174 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_169, 0, x_165); +lean::cnstr_set_scalar(x_169, sizeof(void*)*1, x_167); +x_170 = x_169; +if (lean::is_scalar(x_164)) { + x_171 = lean::alloc_cnstr(0, 2, 0); } else { - x_174 = x_167; + x_171 = x_164; } -lean::cnstr_set(x_174, 0, x_173); -lean::cnstr_set(x_174, 1, x_165); -return x_174; +lean::cnstr_set(x_171, 0, x_170); +lean::cnstr_set(x_171, 1, x_162); +return x_171; } } } @@ -56105,220 +56084,221 @@ x_9 = lean::mk_nat_obj(0u); x_10 = lean::nat_dec_eq(x_2, x_9); if (x_10 == 0) { -obj* x_13; obj* x_14; -lean::inc(x_6); +obj* x_12; obj* x_13; lean::inc(x_5); -x_13 = l_lean_parser_curr__lbp___at_lean_parser_term__parser_run___spec__5(x_4, x_5, x_6, x_7, x_8); -x_14 = lean::cnstr_get(x_13, 0); -lean::inc(x_14); -if (lean::obj_tag(x_14) == 0) +x_12 = l_lean_parser_curr__lbp___at_lean_parser_term__parser_run___spec__5(x_4, x_5, x_6, x_7, x_8); +x_13 = lean::cnstr_get(x_12, 0); +lean::inc(x_13); +if (lean::obj_tag(x_13) == 0) { -obj* x_16; obj* x_18; obj* x_19; obj* x_21; obj* x_23; obj* x_25; uint8 x_26; -x_16 = lean::cnstr_get(x_13, 1); +obj* x_15; obj* x_17; obj* x_18; obj* x_20; obj* x_22; obj* x_24; uint8 x_25; +x_15 = lean::cnstr_get(x_12, 1); +if (lean::is_exclusive(x_12)) { + lean::cnstr_release(x_12, 0); + lean::cnstr_set(x_12, 1, lean::box(0)); + x_17 = x_12; +} else { + lean::inc(x_15); + lean::dec(x_12); + x_17 = lean::box(0); +} +x_18 = lean::cnstr_get(x_13, 0); +x_20 = lean::cnstr_get(x_13, 1); +x_22 = lean::cnstr_get(x_13, 2); if (lean::is_exclusive(x_13)) { - lean::cnstr_release(x_13, 0); + lean::cnstr_set(x_13, 0, lean::box(0)); lean::cnstr_set(x_13, 1, lean::box(0)); - x_18 = x_13; + lean::cnstr_set(x_13, 2, lean::box(0)); + x_24 = x_13; } else { - lean::inc(x_16); + lean::inc(x_18); + lean::inc(x_20); + lean::inc(x_22); lean::dec(x_13); - x_18 = lean::box(0); + x_24 = lean::box(0); } -x_19 = lean::cnstr_get(x_14, 0); -x_21 = lean::cnstr_get(x_14, 1); -x_23 = lean::cnstr_get(x_14, 2); -if (lean::is_exclusive(x_14)) { - lean::cnstr_set(x_14, 0, lean::box(0)); - lean::cnstr_set(x_14, 1, lean::box(0)); - lean::cnstr_set(x_14, 2, lean::box(0)); - x_25 = x_14; -} else { - lean::inc(x_19); - lean::inc(x_21); - lean::inc(x_23); - lean::dec(x_14); - x_25 = lean::box(0); -} -x_26 = lean::nat_dec_lt(x_1, x_19); -lean::dec(x_19); -if (x_26 == 0) +x_25 = lean::nat_dec_lt(x_1, x_18); +lean::dec(x_18); +if (x_25 == 0) { -obj* x_32; obj* x_33; obj* x_34; obj* x_35; +obj* x_31; obj* x_32; obj* x_33; obj* x_34; lean::dec(x_5); lean::dec(x_4); lean::dec(x_6); lean::dec(x_0); -x_32 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_25)) { - x_33 = lean::alloc_cnstr(0, 3, 0); +x_31 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_24)) { + x_32 = lean::alloc_cnstr(0, 3, 0); } else { - x_33 = x_25; + x_32 = x_24; } -lean::cnstr_set(x_33, 0, x_3); -lean::cnstr_set(x_33, 1, x_21); -lean::cnstr_set(x_33, 2, x_32); -x_34 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_23, x_33); -if (lean::is_scalar(x_18)) { - x_35 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_32, 0, x_3); +lean::cnstr_set(x_32, 1, x_20); +lean::cnstr_set(x_32, 2, x_31); +x_33 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_22, x_32); +if (lean::is_scalar(x_17)) { + x_34 = lean::alloc_cnstr(0, 2, 0); } else { - x_35 = x_18; + x_34 = x_17; } -lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_16); -return x_35; +lean::cnstr_set(x_34, 0, x_33); +lean::cnstr_set(x_34, 1, x_15); +return x_34; } else { -obj* x_38; obj* x_39; obj* x_44; obj* x_45; -lean::dec(x_18); -lean::dec(x_25); -x_38 = lean::mk_nat_obj(1u); -x_39 = lean::nat_sub(x_2, x_38); +obj* x_37; obj* x_38; obj* x_43; obj* x_44; +lean::dec(x_17); +lean::dec(x_24); +x_37 = lean::mk_nat_obj(1u); +x_38 = lean::nat_sub(x_2, x_37); lean::inc(x_6); lean::inc(x_5); lean::inc(x_4); lean::inc(x_0); -x_44 = lean::apply_6(x_0, x_3, x_4, x_5, x_6, x_21, x_16); -x_45 = lean::cnstr_get(x_44, 0); -lean::inc(x_45); -if (lean::obj_tag(x_45) == 0) +x_43 = lean::apply_6(x_0, x_3, x_4, x_5, x_6, x_20, x_15); +x_44 = lean::cnstr_get(x_43, 0); +lean::inc(x_44); +if (lean::obj_tag(x_44) == 0) { -obj* x_47; obj* x_50; obj* x_52; obj* x_54; obj* x_57; obj* x_59; obj* x_61; obj* x_63; obj* x_64; obj* x_65; obj* x_66; -x_47 = lean::cnstr_get(x_44, 1); -lean::inc(x_47); +obj* x_46; obj* x_49; obj* x_51; obj* x_53; obj* x_56; obj* x_58; obj* x_60; obj* x_62; obj* x_63; obj* x_64; obj* x_65; +x_46 = lean::cnstr_get(x_43, 1); +lean::inc(x_46); +lean::dec(x_43); +x_49 = lean::cnstr_get(x_44, 0); +lean::inc(x_49); +x_51 = lean::cnstr_get(x_44, 1); +lean::inc(x_51); +x_53 = lean::cnstr_get(x_44, 2); +lean::inc(x_53); lean::dec(x_44); -x_50 = lean::cnstr_get(x_45, 0); -lean::inc(x_50); -x_52 = lean::cnstr_get(x_45, 1); -lean::inc(x_52); -x_54 = lean::cnstr_get(x_45, 2); -lean::inc(x_54); -lean::dec(x_45); -x_57 = l___private_init_lean_parser_pratt_1__trailing__loop___main___at_lean_parser_term__parser_run___spec__3(x_0, x_1, x_39, x_50, x_4, x_5, x_6, x_52, x_47); -lean::dec(x_39); -x_59 = lean::cnstr_get(x_57, 0); -x_61 = lean::cnstr_get(x_57, 1); -if (lean::is_exclusive(x_57)) { - x_63 = x_57; +x_56 = l___private_init_lean_parser_pratt_1__trailing__loop___main___at_lean_parser_term__parser_run___spec__3(x_0, x_1, x_38, x_49, x_4, x_5, x_6, x_51, x_46); +lean::dec(x_38); +x_58 = lean::cnstr_get(x_56, 0); +x_60 = lean::cnstr_get(x_56, 1); +if (lean::is_exclusive(x_56)) { + x_62 = x_56; } else { - lean::inc(x_59); - lean::inc(x_61); - lean::dec(x_57); - x_63 = lean::box(0); + lean::inc(x_58); + lean::inc(x_60); + lean::dec(x_56); + x_62 = lean::box(0); } -x_64 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_54, x_59); -x_65 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_23, x_64); -if (lean::is_scalar(x_63)) { - x_66 = lean::alloc_cnstr(0, 2, 0); +x_63 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_53, x_58); +x_64 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_22, x_63); +if (lean::is_scalar(x_62)) { + x_65 = lean::alloc_cnstr(0, 2, 0); } else { - x_66 = x_63; + x_65 = x_62; } -lean::cnstr_set(x_66, 0, x_65); -lean::cnstr_set(x_66, 1, x_61); -return x_66; +lean::cnstr_set(x_65, 0, x_64); +lean::cnstr_set(x_65, 1, x_60); +return x_65; } else { -obj* x_72; obj* x_74; obj* x_75; uint8 x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; +obj* x_71; obj* x_73; obj* x_74; uint8 x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; lean::dec(x_5); lean::dec(x_4); lean::dec(x_6); lean::dec(x_0); -lean::dec(x_39); -x_72 = lean::cnstr_get(x_44, 1); +lean::dec(x_38); +x_71 = lean::cnstr_get(x_43, 1); +if (lean::is_exclusive(x_43)) { + lean::cnstr_release(x_43, 0); + x_73 = x_43; +} else { + lean::inc(x_71); + lean::dec(x_43); + x_73 = lean::box(0); +} +x_74 = lean::cnstr_get(x_44, 0); +x_76 = lean::cnstr_get_scalar(x_44, sizeof(void*)*1); if (lean::is_exclusive(x_44)) { - lean::cnstr_release(x_44, 0); - x_74 = x_44; + x_77 = x_44; } else { - lean::inc(x_72); + lean::inc(x_74); lean::dec(x_44); - x_74 = lean::box(0); + x_77 = lean::box(0); } -x_75 = lean::cnstr_get(x_45, 0); -x_77 = lean::cnstr_get_scalar(x_45, sizeof(void*)*1); -if (lean::is_exclusive(x_45)) { - x_78 = x_45; +if (lean::is_scalar(x_77)) { + x_78 = lean::alloc_cnstr(1, 1, 1); } else { - lean::inc(x_75); - lean::dec(x_45); - x_78 = lean::box(0); + x_78 = x_77; } -if (lean::is_scalar(x_78)) { - x_79 = lean::alloc_cnstr(1, 1, 1); +lean::cnstr_set(x_78, 0, x_74); +lean::cnstr_set_scalar(x_78, sizeof(void*)*1, x_76); +x_79 = x_78; +x_80 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_22, x_79); +if (lean::is_scalar(x_73)) { + x_81 = lean::alloc_cnstr(0, 2, 0); } else { - x_79 = x_78; + x_81 = x_73; } -lean::cnstr_set(x_79, 0, x_75); -lean::cnstr_set_scalar(x_79, sizeof(void*)*1, x_77); -x_80 = x_79; -x_81 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_23, x_80); -if (lean::is_scalar(x_74)) { - x_82 = lean::alloc_cnstr(0, 2, 0); -} else { - x_82 = x_74; -} -lean::cnstr_set(x_82, 0, x_81); -lean::cnstr_set(x_82, 1, x_72); -return x_82; +lean::cnstr_set(x_81, 0, x_80); +lean::cnstr_set(x_81, 1, x_71); +return x_81; } } } else { -obj* x_88; obj* x_90; obj* x_91; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; +obj* x_87; obj* x_89; obj* x_90; uint8 x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; lean::dec(x_5); lean::dec(x_4); lean::dec(x_6); lean::dec(x_3); lean::dec(x_0); -x_88 = lean::cnstr_get(x_13, 1); +x_87 = lean::cnstr_get(x_12, 1); +if (lean::is_exclusive(x_12)) { + lean::cnstr_release(x_12, 0); + x_89 = x_12; +} else { + lean::inc(x_87); + lean::dec(x_12); + x_89 = lean::box(0); +} +x_90 = lean::cnstr_get(x_13, 0); +x_92 = lean::cnstr_get_scalar(x_13, sizeof(void*)*1); if (lean::is_exclusive(x_13)) { - lean::cnstr_release(x_13, 0); - x_90 = x_13; + x_93 = x_13; } else { - lean::inc(x_88); + lean::inc(x_90); lean::dec(x_13); - x_90 = lean::box(0); + x_93 = lean::box(0); } -x_91 = lean::cnstr_get(x_14, 0); -x_93 = lean::cnstr_get_scalar(x_14, sizeof(void*)*1); -if (lean::is_exclusive(x_14)) { - x_94 = x_14; +if (lean::is_scalar(x_93)) { + x_94 = lean::alloc_cnstr(1, 1, 1); } else { - lean::inc(x_91); - lean::dec(x_14); - x_94 = lean::box(0); + x_94 = x_93; } -if (lean::is_scalar(x_94)) { - x_95 = lean::alloc_cnstr(1, 1, 1); +lean::cnstr_set(x_94, 0, x_90); +lean::cnstr_set_scalar(x_94, sizeof(void*)*1, x_92); +x_95 = x_94; +if (lean::is_scalar(x_89)) { + x_96 = lean::alloc_cnstr(0, 2, 0); } else { - x_95 = x_94; + x_96 = x_89; } -lean::cnstr_set(x_95, 0, x_91); -lean::cnstr_set_scalar(x_95, sizeof(void*)*1, x_93); -x_96 = x_95; -if (lean::is_scalar(x_90)) { - x_97 = lean::alloc_cnstr(0, 2, 0); -} else { - x_97 = x_90; -} -lean::cnstr_set(x_97, 0, x_96); -lean::cnstr_set(x_97, 1, x_88); -return x_97; +lean::cnstr_set(x_96, 0, x_95); +lean::cnstr_set(x_96, 1, x_87); +return x_96; } } else { -obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_105; +obj* x_99; obj* x_100; obj* x_101; obj* x_102; lean::dec(x_3); lean::dec(x_0); -x_100 = lean::box(0); -x_101 = l___private_init_lean_parser_combinators_1__many1__aux___main___rarg___closed__1; -x_102 = l_mjoin___rarg___closed__1; -x_103 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_101, x_102, x_100, x_100, x_4); +x_99 = lean::box(0); +x_100 = l___private_init_lean_parser_combinators_1__many1__aux___main___rarg___closed__1; +x_101 = l_mjoin___rarg___closed__1; +x_102 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_100, x_101, x_99, x_99, x_4, x_5, x_6, x_7, x_8); +lean::dec(x_7); +lean::dec(x_6); +lean::dec(x_5); lean::dec(x_4); -x_105 = lean::apply_4(x_103, x_5, x_6, x_7, x_8); -return x_105; +return x_102; } } } @@ -56508,33 +56488,26 @@ lean::dec(x_0); return x_1; } } -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___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, obj* x_8) { _start: { -obj* x_6; -x_6 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___lambda__1(x_0, x_1, x_2, x_3, x_4, x_5); -lean::dec(x_0); +obj* x_9; +x_9 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean::dec(x_2); lean::dec(x_4); -return x_6; +lean::dec(x_5); +lean::dec(x_6); +lean::dec(x_7); +return x_9; } } -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___boxed(obj* x_0) { _start: { -obj* x_5; -x_5 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_4); -return x_5; -} -} -obj* l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4___boxed(obj* x_0, obj* x_1) { -_start: -{ -obj* x_2; -x_2 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(x_0, x_1); +obj* x_1; +x_1 = l_lean_parser_monad__parsec_error___at_lean_parser_term__parser_run___spec__4(x_0); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_1; } } obj* l_lean_parser_curr__lbp___at_lean_parser_term__parser_run___spec__5___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -56543,6 +56516,7 @@ _start: obj* x_5; x_5 = l_lean_parser_curr__lbp___at_lean_parser_term__parser_run___spec__5(x_0, x_1, x_2, x_3, x_4); lean::dec(x_0); +lean::dec(x_2); return x_5; } } diff --git a/src/boot/init/lean/parser/token.cpp b/src/boot/init/lean/parser/token.cpp index bf9501bb9a..f747e9c6f6 100644 --- a/src/boot/init/lean/parser/token.cpp +++ b/src/boot/init/lean/parser/token.cpp @@ -19,14 +19,13 @@ obj* l_lean_parser_monad__parsec_take__while_x_27___at___private_init_lean_parse obj* l_lean_parser_detail__ident__suffix_parser_lean_parser_has__view___lambda__2(obj*, obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at___private_init_lean_parser_token_4__ident_x_27___spec__16(obj*, obj*, obj*); obj* l_lean_parser_detail__ident__part_parser_lean_parser_has__tokens; -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__7; obj* l_lean_parser_finish__comment__block___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__28(obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__22(obj*, obj*, obj*); obj* l_list_mfoldr___main___at_lean_parser_number_x_27___spec__13(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_with__trailing___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__part_parser___spec__10(obj*); -obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*, obj*); +obj* l_rbnode_find___main___at_lean_name__map_contains___spec__2(obj*, obj*, obj*, obj*); obj* l_lean_parser_ident_parser_view___rarg___lambda__1___boxed(obj*); obj* l_reader__t_orelse___at_lean_parser_parse__bin__lit___spec__1___boxed(obj*); obj* l_lean_parser_monad__parsec_take__while__cont___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__4(obj*, obj*, obj*, obj*); @@ -66,10 +65,9 @@ obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__1; obj* l_lean_parser_detail__ident__part__escaped_has__view_x_27___lambda__2___closed__3; obj* l_lean_parser_monad__parsec_error___at_lean_parser_number_x_27___spec__12___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_raw___rarg___lambda__3(uint8, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_finish__comment__block___closed__1; -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___boxed(obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_string__lit_view_value___spec__3(obj*); obj* l_lean_parser_monad__parsec_take__while__cont___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__2(uint32, obj*, obj*, obj*); obj* l___private_init_lean_parser_token_4__ident_x_27___closed__1; @@ -110,7 +108,6 @@ obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_detail__ident__suffix_pa obj* l_lean_parser_indexed(obj*); extern obj* l_string_iterator_extract___main___closed__1; obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__20(obj*, obj*, obj*); -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10(obj*); obj* l_lean_parser_string__lit_parser___rarg(obj*); obj* l_lean_parser_symbol__core___rarg(obj*, obj*, obj*, obj*); obj* l_reader__t_lift___at_lean_parser_with__trailing___spec__1___rarg(obj*, obj*, obj*, obj*); @@ -125,7 +122,6 @@ extern uint32 l_lean_id__end__escape; obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__18(obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser___spec__11(obj*, obj*, obj*); obj* l_lean_parser_number_view_to__nat(obj*); -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while__cont___at___private_init_lean_parser_token_4__ident_x_27___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l_reader__t_lift___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__4(obj*); extern obj* l_lean_parser_basic__parser__m_monad; @@ -134,7 +130,6 @@ obj* l_lean_parser_ident_parser_view___rarg(obj*); obj* l_lean_parser_parse__hex__digit___at_lean_parser_string__lit_x_27___spec__5___boxed(obj*, obj*, obj*); obj* l_lean_parser_symbol___rarg(obj*, obj*, obj*); obj* l_lean_parser_with__trailing___rarg___lambda__1(obj*, obj*); -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__6; obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_string__lit_has__view_x_27___lambda__1(obj*); obj* l_lean_parser_parse__hex__lit(obj*, obj*, obj*); @@ -182,7 +177,7 @@ obj* l_rbmap_find___main___at_lean_parser_indexed___spec__5___rarg___boxed(obj*, obj* l_lean_parser_parse__hex__lit___boxed(obj*, obj*, obj*); obj* l_lean_parser_symbol__or__ident_view___boxed(obj*); obj* l_lean_parser_detail__ident__part_parser_lean_parser_has__view___lambda__2___boxed(obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(obj*); obj* l_list_enum__from___main___rarg(obj*, obj*); obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__1___closed__1; obj* l_lean_parser_monad__parsec_take__while__cont___at_lean_parser_number_x_27___spec__4___boxed(obj*, obj*, obj*, obj*); @@ -190,7 +185,6 @@ obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__6; obj* l_lean_parser_detail__ident_has__view_x_27; obj* l_lean_parser_raw__str___rarg(obj*, obj*, obj*, obj*, uint8); obj* l_lean_parser_number_parser_view___rarg___closed__1; -obj* l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5; obj* l_lean_parser_monad__parsec_ch___at_lean_parser_string__lit_view_value___spec__2(uint32, obj*); obj* l_rbmap_find___main___at_lean_parser_indexed___spec__4___rarg___boxed(obj*, obj*); uint8 l_char_is__digit(uint32); @@ -218,7 +212,6 @@ obj* l_reader__t_lift___at_lean_parser_detail__ident__suffix_parser_lean_parser_ obj* l_lean_parser_monad__parsec_take__while__cont___at___private_init_lean_parser_token_4__ident_x_27___spec__4(uint32, obj*, obj*, obj*); obj* l_lean_parser_raw___rarg___lambda__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_parse__oct__lit___boxed(obj*, obj*, obj*); -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___boxed(obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__26(obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while__cont___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__11___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__17___boxed(obj*); @@ -242,16 +235,14 @@ obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ uint8 l_lean_is__id__end__escape(uint32); obj* l_lean_parser_parsec__t_run___at_lean_parser_parsec_parse___spec__1___rarg(obj*, obj*, obj*); obj* l___private_init_lean_parser_token_8__to__nat__base___boxed(obj*, obj*); -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__8; obj* l_lean_parser_string__lit_has__view; obj* l_lean_parser_parsec__t_failure___at_lean_parser_token___spec__4___rarg(obj*, obj*); obj* l_lean_parser_monad__parsec_ch___at___private_init_lean_parser_token_4__ident_x_27___spec__11(uint32, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_unexpected__at___at_lean_parser_string__lit_x_27___spec__4(obj*); -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__3; obj* l___private_init_lean_parser_token_1__finish__comment__block__aux___main___closed__3; obj* l_lean_parser_parse__string__literal___at_lean_parser_string__lit_view_value___spec__1(obj*); obj* l_lean_parser_symbol_view___boxed(obj*); -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(obj*); obj* l_lean_parser_monad__parsec_foldl__aux___main___at___private_init_lean_parser_token_4__ident_x_27___spec__21___lambda__1(obj*, obj*, uint32, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while__cont___at___private_init_lean_parser_token_4__ident_x_27___spec__8___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_6__take__while__aux_x_27___main___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__3(obj*, uint8, obj*); @@ -343,14 +334,14 @@ obj* l_lean_parser_number_has__view; obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser___spec__3(obj*, obj*, obj*); obj* l_lean_parser_detail__ident_x_27___closed__1; obj* l_lean_parser_number_x_27___lambda__4___boxed(obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__part_parser_lean_parser_has__tokens___spec__23___rarg(obj*, obj*); obj* l_reader__t_lift___at_lean_parser_with__trailing___spec__1(obj*); obj* l_lean_parser_detail__ident_parser___lambda__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__2; obj* l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; obj* l_lean_parser_detail__ident_parser___lambda__2___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___boxed(obj*); obj* l_lean_parser_raw__ident_parser___boxed(obj*); obj* l_string_iterator_remaining___main(obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_string__lit_view_value___spec__3___boxed(obj*); @@ -397,7 +388,7 @@ obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__3; obj* l_lean_parser_raw_tokens___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_symbol_tokens___rarg(obj*, obj*); extern obj* l___private_init_data_string_basic_9__to__nat__core___main___closed__1; -obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_number_x_27___spec__12(obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_parse__hex__lit___spec__3(obj*, obj*, obj*); obj* l_lean_parser_raw_view___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); @@ -406,7 +397,6 @@ uint8 nat_dec_eq(obj*, obj*); } obj* l_lean_parser_raw_view___rarg___lambda__1(obj*); obj* l_reader__t_lift___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__4___rarg(obj*, obj*, obj*, obj*, obj*); -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__2(obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_number_x_27___spec__3(obj*, obj*, obj*); obj* l_lean_parser_mk__raw__res(obj*, obj*); obj* l_lean_parser_detail__ident_has__view; @@ -427,7 +417,6 @@ obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__par obj* l_lean_parser_string__lit_parser___boxed(obj*); obj* l_lean_parser_monad__parsec_curr___at___private_init_lean_parser_token_4__ident_x_27___spec__2(obj*); obj* l_lean_parser_detail__ident_has__view_x_27___lambda__2(obj*); -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__2; obj* l_lean_parser_monad__parsec_take__while__cont___at___private_init_lean_parser_token_4__ident_x_27___spec__13(uint32, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_unexpected__at___at_lean_parser_string__lit_view_value___spec__7___rarg(obj*, obj*, obj*); obj* l_lean_parser_symbol__core___at_lean_parser_unicode__symbol_lean_parser_has__tokens___spec__1(obj*, obj*, obj*, obj*, obj*, obj*); @@ -544,7 +533,7 @@ obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at___priva obj* l_lean_parser_parsec__t_merge___rarg(obj*, obj*); obj* l_lean_parser_indexed___rarg___lambda__1___closed__1; obj* l_lean_parser_token__cont___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_substring_to__string(obj*); obj* l_lean_parser_try__view___at_lean_parser_string__lit_parser___spec__1(obj*); extern "C" uint8 lean_name_dec_eq(obj*, obj*); @@ -561,7 +550,6 @@ obj* l_lean_parser_raw__str_view__default___boxed(obj*); obj* l_lean_parser_number_has__view_x_27___lambda__2___closed__5; obj* l_lean_parser_monad__parsec_take__while__cont___at___private_init_lean_parser_token_4__ident_x_27___spec__17___boxed(obj*, obj*, obj*, obj*); obj* l_lean_parser_raw__str_lean_parser_has__view___boxed(obj*); -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__part_parser_lean_parser_has__view___spec__12___rarg(obj*, obj*); obj* l_lean_parser_monad__parsec_unexpected__at___at_lean_parser_string__lit_x_27___spec__4___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_detail__ident__suffix_has__view_x_27___lambda__1___closed__1; @@ -584,7 +572,6 @@ obj* l_lean_parser_parsec__t_failure___at_lean_parser_token___spec__4___boxed(ob obj* l_lean_parser_monad__parsec_take__while1___at_lean_parser_detail__ident__part_parser___spec__1___boxed(obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_take__while___at_lean_parser_detail__ident__part_parser___spec__12(obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_string__lit_view_value___spec__3___rarg___boxed(obj*, obj*, obj*, obj*, obj*); -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___boxed(obj*, obj*, obj*, obj*); obj* l_reader__t_bind___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__6(obj*, obj*); obj* l_lean_parser_symbol_tokens(obj*, obj*); obj* l_lean_parser_detail__ident__part__escaped_has__view_x_27; @@ -612,7 +599,6 @@ obj* l_lean_parser_monad__parsec_take__while__cont___at_lean_parser_number_x_27_ obj* l_lean_parser_number__or__string__lit(obj*, obj*, obj*); obj* l_lean_parser_raw___rarg___lambda__2(obj*, uint8, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_option_get___main___at_lean_parser_run___spec__2(obj*); -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__5; obj* l_lean_parser_unicode__symbol_lean_parser_has__tokens___rarg(obj*, obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser___spec__9(obj*, obj*, obj*); obj* l_lean_parser_raw___rarg___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); @@ -681,7 +667,6 @@ obj* l_option_to__monad___main___at_lean_parser_indexed___spec__2___rarg___boxed obj* l_lean_parser_ident_parser_view(obj*); obj* l_lean_parser_indexed___boxed(obj*); obj* l_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens; -obj* l___private_init_lean_parser_token_4__ident_x_27___closed__4; obj* l_lean_parser_number_has__view_x_27___lambda__1___closed__2; obj* l_lean_parser_monad__parsec_take__while1___at___private_init_lean_parser_token_4__ident_x_27___spec__12___boxed(obj*, obj*, obj*); obj* l_lean_parser_detail__ident__part_has__view_x_27___lambda__2(obj*); @@ -722,12 +707,12 @@ obj* l_lean_parser_symbol_view(obj*); obj* l_lean_parser_unicode__symbol_lean_parser_has__view___rarg(obj*, obj*, obj*, obj*); obj* l_lean_parser_monad__parsec_error___at_lean_parser_number_x_27___spec__12___boxed(obj*); obj* l___private_init_lean_parser_token_2__whitespace__aux___boxed(obj*, obj*, obj*, obj*); -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(obj*, obj*, obj*, obj*); +obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_parser_detail__ident__part__escaped_has__view_x_27___lambda__1___closed__1; obj* l_rbmap_find___main___at_lean_parser_indexed___spec__5___rarg(obj*, obj*); obj* l_lean_parser_detail__ident__suffix_parser___closed__1; obj* l_lean_parser_monad__parsec_ch___at_lean_parser_string__lit_view_value___spec__2___boxed(obj*, obj*); -obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_token_3__update__trailing__lst(obj*, obj*); obj* l___private_init_lean_parser_parsec_4__take__while__aux___main___at_lean_parser_detail__ident__part_parser___spec__13(obj*, obj*, obj*); obj* l___private_init_lean_parser_token_7__to__nat__core___main___boxed(obj*, obj*, obj*, obj*); @@ -1629,145 +1614,145 @@ x_0 = lean::mk_string("-"); return x_0; } } -obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; obj* x_7; obj* x_8; -x_5 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___closed__1; -lean::inc(x_3); -x_7 = l_lean_parser_monad__parsec_str__core___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__3(x_5, x_2, x_0, x_3, x_4); -x_8 = lean::cnstr_get(x_7, 0); -lean::inc(x_8); -if (lean::obj_tag(x_8) == 0) +obj* x_4; obj* x_6; obj* x_7; +x_4 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___closed__1; +lean::inc(x_2); +x_6 = l_lean_parser_monad__parsec_str__core___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__3(x_4, x_1, x_0, x_2, x_3); +x_7 = lean::cnstr_get(x_6, 0); +lean::inc(x_7); +if (lean::obj_tag(x_7) == 0) { -obj* x_10; obj* x_12; obj* x_13; obj* x_15; obj* x_17; uint8 x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; -x_10 = lean::cnstr_get(x_7, 1); +obj* x_9; obj* x_11; obj* x_12; obj* x_14; obj* x_16; uint8 x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; +x_9 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + lean::cnstr_set(x_6, 1, lean::box(0)); + x_11 = x_6; +} else { + lean::inc(x_9); + lean::dec(x_6); + x_11 = lean::box(0); +} +x_12 = lean::cnstr_get(x_7, 1); +x_14 = lean::cnstr_get(x_7, 2); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); - lean::cnstr_set(x_7, 1, lean::box(0)); - x_12 = x_7; + x_16 = x_7; } else { - lean::inc(x_10); + lean::inc(x_12); + lean::inc(x_14); lean::dec(x_7); - x_12 = lean::box(0); + x_16 = lean::box(0); } -x_13 = lean::cnstr_get(x_8, 1); -x_15 = lean::cnstr_get(x_8, 2); -if (lean::is_exclusive(x_8)) { - lean::cnstr_release(x_8, 0); - x_17 = x_8; +x_17 = 0; +x_18 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_19 = lean::box(x_17); +if (lean::is_scalar(x_16)) { + x_20 = lean::alloc_cnstr(0, 3, 0); } else { - lean::inc(x_13); - lean::inc(x_15); - lean::dec(x_8); - x_17 = lean::box(0); + x_20 = x_16; } -x_18 = 0; -x_19 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_20 = lean::box(x_18); -if (lean::is_scalar(x_17)) { - x_21 = lean::alloc_cnstr(0, 3, 0); -} else { - x_21 = x_17; -} -lean::cnstr_set(x_21, 0, x_20); -lean::cnstr_set(x_21, 1, x_13); -lean::cnstr_set(x_21, 2, x_19); -x_22 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_15, x_21); -if (lean::obj_tag(x_22) == 0) +lean::cnstr_set(x_20, 0, x_19); +lean::cnstr_set(x_20, 1, x_12); +lean::cnstr_set(x_20, 2, x_18); +x_21 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_20); +if (lean::obj_tag(x_21) == 0) { -if (lean::obj_tag(x_22) == 0) +if (lean::obj_tag(x_21) == 0) { -obj* x_23; obj* x_25; obj* x_26; obj* x_27; -x_23 = lean::cnstr_get(x_22, 0); -if (lean::is_exclusive(x_22)) { - lean::cnstr_release(x_22, 1); - lean::cnstr_release(x_22, 2); - x_25 = x_22; +obj* x_22; obj* x_24; obj* x_25; obj* x_26; +x_22 = lean::cnstr_get(x_21, 0); +if (lean::is_exclusive(x_21)) { + lean::cnstr_release(x_21, 1); + lean::cnstr_release(x_21, 2); + x_24 = x_21; } else { - lean::inc(x_23); - lean::dec(x_22); - x_25 = lean::box(0); + lean::inc(x_22); + lean::dec(x_21); + x_24 = lean::box(0); } -if (lean::is_scalar(x_25)) { - x_26 = lean::alloc_cnstr(0, 3, 0); +if (lean::is_scalar(x_24)) { + x_25 = lean::alloc_cnstr(0, 3, 0); } else { - x_26 = x_25; + x_25 = x_24; } -lean::cnstr_set(x_26, 0, x_23); -lean::cnstr_set(x_26, 1, x_3); -lean::cnstr_set(x_26, 2, x_19); -if (lean::is_scalar(x_12)) { - x_27 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_25, 0, x_22); +lean::cnstr_set(x_25, 1, x_2); +lean::cnstr_set(x_25, 2, x_18); +if (lean::is_scalar(x_11)) { + x_26 = lean::alloc_cnstr(0, 2, 0); } else { - x_27 = x_12; + x_26 = x_11; } -lean::cnstr_set(x_27, 0, x_26); -lean::cnstr_set(x_27, 1, x_10); -return x_27; +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_9); +return x_26; } else { -obj* x_29; -lean::dec(x_3); -if (lean::is_scalar(x_12)) { - x_29 = lean::alloc_cnstr(0, 2, 0); +obj* x_28; +lean::dec(x_2); +if (lean::is_scalar(x_11)) { + x_28 = lean::alloc_cnstr(0, 2, 0); } else { - x_29 = x_12; + x_28 = x_11; } -lean::cnstr_set(x_29, 0, x_22); -lean::cnstr_set(x_29, 1, x_10); -return x_29; +lean::cnstr_set(x_28, 0, x_21); +lean::cnstr_set(x_28, 1, x_9); +return x_28; } } else { -uint8 x_31; obj* x_32; obj* x_33; obj* x_34; -lean::dec(x_22); -x_31 = 1; -x_32 = lean::box(x_31); -x_33 = lean::alloc_cnstr(0, 3, 0); +uint8 x_30; obj* x_31; obj* x_32; obj* x_33; +lean::dec(x_21); +x_30 = 1; +x_31 = lean::box(x_30); +x_32 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_32, 0, x_31); +lean::cnstr_set(x_32, 1, x_2); +lean::cnstr_set(x_32, 2, x_18); +if (lean::is_scalar(x_11)) { + x_33 = lean::alloc_cnstr(0, 2, 0); +} else { + x_33 = x_11; +} lean::cnstr_set(x_33, 0, x_32); -lean::cnstr_set(x_33, 1, x_3); -lean::cnstr_set(x_33, 2, x_19); -if (lean::is_scalar(x_12)) { - x_34 = lean::alloc_cnstr(0, 2, 0); -} else { - x_34 = x_12; -} -lean::cnstr_set(x_34, 0, x_33); -lean::cnstr_set(x_34, 1, x_10); -return x_34; +lean::cnstr_set(x_33, 1, x_9); +return x_33; } } else { -obj* x_36; obj* x_38; uint8 x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; -lean::dec(x_8); -x_36 = lean::cnstr_get(x_7, 1); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - x_38 = x_7; +obj* x_35; obj* x_37; uint8 x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; +lean::dec(x_7); +x_35 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_37 = x_6; } else { - lean::inc(x_36); - lean::dec(x_7); - x_38 = lean::box(0); + lean::inc(x_35); + lean::dec(x_6); + x_37 = lean::box(0); +} +x_38 = 1; +x_39 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_40 = lean::box(x_38); +x_41 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_41, 0, x_40); +lean::cnstr_set(x_41, 1, x_2); +lean::cnstr_set(x_41, 2, x_39); +if (lean::is_scalar(x_37)) { + x_42 = lean::alloc_cnstr(0, 2, 0); +} else { + x_42 = x_37; } -x_39 = 1; -x_40 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_41 = lean::box(x_39); -x_42 = lean::alloc_cnstr(0, 3, 0); lean::cnstr_set(x_42, 0, x_41); -lean::cnstr_set(x_42, 1, x_3); -lean::cnstr_set(x_42, 2, x_40); -if (lean::is_scalar(x_38)) { - x_43 = lean::alloc_cnstr(0, 2, 0); -} else { - x_43 = x_38; -} -lean::cnstr_set(x_43, 0, x_42); -lean::cnstr_set(x_43, 1, x_36); -return x_43; +lean::cnstr_set(x_42, 1, x_35); +return x_42; } } } @@ -1849,15 +1834,6 @@ return x_1; obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__1() { _start: { -obj* x_0; obj* x_1; -x_0 = lean::mk_string("-"); -x_1 = l_string_quote(x_0); -return x_1; -} -} -obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2() { -_start: -{ obj* x_0; obj* x_1; obj* x_2; x_0 = lean::mk_string("-"); x_1 = l_string_quote(x_0); @@ -1866,7 +1842,7 @@ lean::closure_set(x_2, 0, x_1); return x_2; } } -obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3() { +obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2() { _start: { obj* x_0; @@ -1874,7 +1850,7 @@ x_0 = lean::mk_string("input"); return x_0; } } -obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4() { +obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3() { _start: { obj* x_0; @@ -1882,7 +1858,7 @@ x_0 = lean::mk_string("--"); return x_0; } } -obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5() { +obj* _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4() { _start: { obj* x_0; obj* x_1; obj* x_2; @@ -1933,8 +1909,8 @@ if (lean::is_exclusive(x_7)) { } x_17 = lean::mk_nat_obj(1u); x_18 = lean::nat_sub(x_0, x_17); -x_22 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4; -x_23 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5; +x_22 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; +x_23 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4; lean::inc(x_12); x_25 = l_lean_parser_monad__parsec_str__core___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__3(x_22, x_23, x_1, x_12, x_9); x_26 = lean::cnstr_get(x_25, 0); @@ -2064,7 +2040,7 @@ x_86 = lean::cnstr_get(x_85, 0); lean::inc(x_86); if (lean::obj_tag(x_86) == 0) { -obj* x_88; obj* x_91; obj* x_93; obj* x_96; obj* x_97; obj* x_99; obj* x_100; +obj* x_88; obj* x_91; obj* x_93; obj* x_96; obj* x_98; obj* x_99; x_88 = lean::cnstr_get(x_85, 1); lean::inc(x_88); lean::dec(x_85); @@ -2074,462 +2050,461 @@ x_93 = lean::cnstr_get(x_86, 2); lean::inc(x_93); lean::dec(x_86); x_96 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__1; -x_97 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; lean::inc(x_91); -x_99 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(x_1, x_96, x_97, x_91, x_88); -x_100 = lean::cnstr_get(x_99, 0); -lean::inc(x_100); -if (lean::obj_tag(x_100) == 0) +x_98 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(x_1, x_96, x_91, x_88); +x_99 = lean::cnstr_get(x_98, 0); +lean::inc(x_99); +if (lean::obj_tag(x_99) == 0) { -obj* x_102; uint8 x_104; -x_102 = lean::cnstr_get(x_100, 0); -lean::inc(x_102); -x_104 = lean::unbox(x_102); -if (x_104 == 0) +obj* x_101; uint8 x_103; +x_101 = lean::cnstr_get(x_99, 0); +lean::inc(x_101); +x_103 = lean::unbox(x_101); +if (x_103 == 0) { -obj* x_105; obj* x_108; obj* x_110; obj* x_113; obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_120; obj* x_122; obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; -x_105 = lean::cnstr_get(x_99, 1); -lean::inc(x_105); +obj* x_104; obj* x_107; obj* x_109; obj* x_112; obj* x_113; obj* x_114; obj* x_115; obj* x_116; obj* x_119; obj* x_121; obj* x_124; obj* x_125; obj* x_126; obj* x_127; obj* x_128; +x_104 = lean::cnstr_get(x_98, 1); +lean::inc(x_104); +lean::dec(x_98); +x_107 = lean::cnstr_get(x_99, 1); +lean::inc(x_107); +x_109 = lean::cnstr_get(x_99, 2); +lean::inc(x_109); lean::dec(x_99); -x_108 = lean::cnstr_get(x_100, 1); -lean::inc(x_108); -x_110 = lean::cnstr_get(x_100, 2); -lean::inc(x_110); -lean::dec(x_100); -x_113 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_113, 0, x_91); -x_114 = lean::box(0); -x_115 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3; -x_116 = l_mjoin___rarg___closed__1; -x_117 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_115, x_116, x_113, x_114, x_1, x_108, x_105); -lean::dec(x_108); -lean::dec(x_113); -x_120 = lean::cnstr_get(x_117, 0); -lean::inc(x_120); -x_122 = lean::cnstr_get(x_117, 1); -lean::inc(x_122); -lean::dec(x_117); -x_125 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_110, x_120); -x_126 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_127 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_126, x_125); -x_128 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_127); -x_129 = l_lean_parser_parsec__t_try__mk__res___rarg(x_128); -x_78 = x_129; -x_79 = x_122; +x_112 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_112, 0, x_91); +x_113 = lean::box(0); +x_114 = l___private_init_lean_parser_token_2__whitespace__aux___main___closed__2; +x_115 = l_mjoin___rarg___closed__1; +x_116 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_114, x_115, x_112, x_113, x_1, x_107, x_104); +lean::dec(x_107); +lean::dec(x_112); +x_119 = lean::cnstr_get(x_116, 0); +lean::inc(x_119); +x_121 = lean::cnstr_get(x_116, 1); +lean::inc(x_121); +lean::dec(x_116); +x_124 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_109, x_119); +x_125 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_126 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_125, x_124); +x_127 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_126); +x_128 = l_lean_parser_parsec__t_try__mk__res___rarg(x_127); +x_78 = x_128; +x_79 = x_121; goto lbl_80; } else { -obj* x_131; obj* x_134; obj* x_136; obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; +obj* x_130; obj* x_133; obj* x_135; obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; obj* x_143; obj* x_144; lean::dec(x_91); -x_131 = lean::cnstr_get(x_99, 1); -lean::inc(x_131); -lean::dec(x_99); -x_134 = lean::cnstr_get(x_100, 1); -x_136 = lean::cnstr_get(x_100, 2); -if (lean::is_exclusive(x_100)) { - lean::cnstr_release(x_100, 0); - x_138 = x_100; +x_130 = lean::cnstr_get(x_98, 1); +lean::inc(x_130); +lean::dec(x_98); +x_133 = lean::cnstr_get(x_99, 1); +x_135 = lean::cnstr_get(x_99, 2); +if (lean::is_exclusive(x_99)) { + lean::cnstr_release(x_99, 0); + x_137 = x_99; } else { - lean::inc(x_134); - lean::inc(x_136); - lean::dec(x_100); - x_138 = lean::box(0); + lean::inc(x_133); + lean::inc(x_135); + lean::dec(x_99); + x_137 = lean::box(0); } -x_139 = lean::box(0); -x_140 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_138)) { - x_141 = lean::alloc_cnstr(0, 3, 0); +x_138 = lean::box(0); +x_139 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_137)) { + x_140 = lean::alloc_cnstr(0, 3, 0); } else { - x_141 = x_138; + x_140 = x_137; } -lean::cnstr_set(x_141, 0, x_139); -lean::cnstr_set(x_141, 1, x_134); -lean::cnstr_set(x_141, 2, x_140); -x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_136, x_141); -x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_140, x_142); -x_144 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_143); -x_145 = l_lean_parser_parsec__t_try__mk__res___rarg(x_144); -x_78 = x_145; -x_79 = x_131; +lean::cnstr_set(x_140, 0, x_138); +lean::cnstr_set(x_140, 1, x_133); +lean::cnstr_set(x_140, 2, x_139); +x_141 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_135, x_140); +x_142 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_139, x_141); +x_143 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_142); +x_144 = l_lean_parser_parsec__t_try__mk__res___rarg(x_143); +x_78 = x_144; +x_79 = x_130; goto lbl_80; } } else { -obj* x_147; obj* x_150; uint8 x_152; obj* x_153; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; +obj* x_146; obj* x_149; uint8 x_151; obj* x_152; obj* x_153; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; lean::dec(x_91); -x_147 = lean::cnstr_get(x_99, 1); -lean::inc(x_147); -lean::dec(x_99); -x_150 = lean::cnstr_get(x_100, 0); -x_152 = lean::cnstr_get_scalar(x_100, sizeof(void*)*1); -if (lean::is_exclusive(x_100)) { - x_153 = x_100; +x_146 = lean::cnstr_get(x_98, 1); +lean::inc(x_146); +lean::dec(x_98); +x_149 = lean::cnstr_get(x_99, 0); +x_151 = lean::cnstr_get_scalar(x_99, sizeof(void*)*1); +if (lean::is_exclusive(x_99)) { + x_152 = x_99; } else { - lean::inc(x_150); - lean::dec(x_100); - x_153 = lean::box(0); + lean::inc(x_149); + lean::dec(x_99); + x_152 = lean::box(0); } -if (lean::is_scalar(x_153)) { - x_154 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_152)) { + x_153 = lean::alloc_cnstr(1, 1, 1); } else { - x_154 = x_153; + x_153 = x_152; } -lean::cnstr_set(x_154, 0, x_150); -lean::cnstr_set_scalar(x_154, sizeof(void*)*1, x_152); -x_155 = x_154; -x_156 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_157 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_156, x_155); -x_158 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_157); -x_159 = l_lean_parser_parsec__t_try__mk__res___rarg(x_158); -x_78 = x_159; -x_79 = x_147; +lean::cnstr_set(x_153, 0, x_149); +lean::cnstr_set_scalar(x_153, sizeof(void*)*1, x_151); +x_154 = x_153; +x_155 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_156 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_155, x_154); +x_157 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_93, x_156); +x_158 = l_lean_parser_parsec__t_try__mk__res___rarg(x_157); +x_78 = x_158; +x_79 = x_146; goto lbl_80; } } else { -obj* x_160; obj* x_163; obj* x_165; uint8 x_166; obj* x_167; obj* x_168; -x_160 = lean::cnstr_get(x_85, 1); -lean::inc(x_160); +obj* x_159; obj* x_162; obj* x_164; uint8 x_165; obj* x_166; obj* x_167; +x_159 = lean::cnstr_get(x_85, 1); +lean::inc(x_159); lean::dec(x_85); -x_163 = lean::cnstr_get(x_86, 0); +x_162 = lean::cnstr_get(x_86, 0); if (lean::is_exclusive(x_86)) { - x_165 = x_86; + x_164 = x_86; } else { - lean::inc(x_163); + lean::inc(x_162); lean::dec(x_86); - x_165 = lean::box(0); + x_164 = lean::box(0); } -x_166 = 0; -if (lean::is_scalar(x_165)) { - x_167 = lean::alloc_cnstr(1, 1, 1); +x_165 = 0; +if (lean::is_scalar(x_164)) { + x_166 = lean::alloc_cnstr(1, 1, 1); } else { - x_167 = x_165; + x_166 = x_164; } -lean::cnstr_set(x_167, 0, x_163); -lean::cnstr_set_scalar(x_167, sizeof(void*)*1, x_166); -x_168 = x_167; -x_78 = x_168; -x_79 = x_160; +lean::cnstr_set(x_166, 0, x_162); +lean::cnstr_set_scalar(x_166, sizeof(void*)*1, x_165); +x_167 = x_166; +x_78 = x_167; +x_79 = x_159; goto lbl_80; } } else { -obj* x_174; obj* x_175; +obj* x_173; obj* x_174; lean::dec(x_18); lean::dec(x_11); lean::dec(x_12); lean::dec(x_16); lean::dec(x_75); -x_174 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_19); -x_175 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_175, 0, x_174); -lean::cnstr_set(x_175, 1, x_20); -return x_175; +x_173 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_19); +x_174 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_174, 0, x_173); +lean::cnstr_set(x_174, 1, x_20); +return x_174; } lbl_80: { if (lean::obj_tag(x_78) == 0) { -obj* x_178; obj* x_180; obj* x_182; obj* x_183; obj* x_184; obj* x_186; obj* x_188; obj* x_189; +obj* x_177; obj* x_179; obj* x_181; obj* x_182; obj* x_183; obj* x_185; obj* x_187; obj* x_188; lean::dec(x_11); lean::dec(x_16); -x_178 = lean::cnstr_get(x_78, 1); -x_180 = lean::cnstr_get(x_78, 2); +x_177 = lean::cnstr_get(x_78, 1); +x_179 = lean::cnstr_get(x_78, 2); if (lean::is_exclusive(x_78)) { lean::cnstr_release(x_78, 0); lean::cnstr_set(x_78, 1, lean::box(0)); lean::cnstr_set(x_78, 2, lean::box(0)); - x_182 = x_78; + x_181 = x_78; } else { - lean::inc(x_178); - lean::inc(x_180); + lean::inc(x_177); + lean::inc(x_179); lean::dec(x_78); - x_182 = lean::box(0); + x_181 = lean::box(0); } -x_183 = l_lean_parser_finish__comment__block(x_17, x_1, x_178, x_79); -x_184 = lean::cnstr_get(x_183, 0); -x_186 = lean::cnstr_get(x_183, 1); -if (lean::is_exclusive(x_183)) { - lean::cnstr_set(x_183, 0, lean::box(0)); - lean::cnstr_set(x_183, 1, lean::box(0)); - x_188 = x_183; +x_182 = l_lean_parser_finish__comment__block(x_17, x_1, x_177, x_79); +x_183 = lean::cnstr_get(x_182, 0); +x_185 = lean::cnstr_get(x_182, 1); +if (lean::is_exclusive(x_182)) { + lean::cnstr_set(x_182, 0, lean::box(0)); + lean::cnstr_set(x_182, 1, lean::box(0)); + x_187 = x_182; } else { - lean::inc(x_184); - lean::inc(x_186); - lean::dec(x_183); - x_188 = lean::box(0); + lean::inc(x_183); + lean::inc(x_185); + lean::dec(x_182); + x_187 = lean::box(0); } -x_189 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_180, x_184); -if (lean::obj_tag(x_189) == 0) +x_188 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_179, x_183); +if (lean::obj_tag(x_188) == 0) { -obj* x_192; obj* x_194; obj* x_196; obj* x_197; obj* x_199; obj* x_201; obj* x_203; obj* x_204; +obj* x_191; obj* x_193; obj* x_195; obj* x_196; obj* x_198; obj* x_200; obj* x_202; obj* x_203; +lean::dec(x_187); +lean::dec(x_181); +x_191 = lean::cnstr_get(x_188, 1); +x_193 = lean::cnstr_get(x_188, 2); +if (lean::is_exclusive(x_188)) { + lean::cnstr_release(x_188, 0); + lean::cnstr_set(x_188, 1, lean::box(0)); + lean::cnstr_set(x_188, 2, lean::box(0)); + x_195 = x_188; +} else { + lean::inc(x_191); + lean::inc(x_193); + lean::dec(x_188); + x_195 = lean::box(0); +} +x_196 = l___private_init_lean_parser_token_2__whitespace__aux___main(x_18, x_1, x_191, x_185); +lean::dec(x_18); +x_198 = lean::cnstr_get(x_196, 0); +x_200 = lean::cnstr_get(x_196, 1); +if (lean::is_exclusive(x_196)) { + lean::cnstr_set(x_196, 0, lean::box(0)); + lean::cnstr_set(x_196, 1, lean::box(0)); + x_202 = x_196; +} else { + lean::inc(x_198); + lean::inc(x_200); + lean::dec(x_196); + x_202 = lean::box(0); +} +x_203 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_193, x_198); +if (lean::obj_tag(x_203) == 0) +{ +obj* x_206; obj* x_207; obj* x_208; +lean::dec(x_195); +lean::dec(x_12); +x_206 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_203); +x_207 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_206); +if (lean::is_scalar(x_202)) { + x_208 = lean::alloc_cnstr(0, 2, 0); +} else { + x_208 = x_202; +} +lean::cnstr_set(x_208, 0, x_207); +lean::cnstr_set(x_208, 1, x_200); +return x_208; +} +else +{ +uint8 x_209; +x_209 = lean::cnstr_get_scalar(x_203, sizeof(void*)*1); +if (x_209 == 0) +{ +obj* x_210; obj* x_213; obj* x_216; obj* x_217; obj* x_218; obj* x_221; obj* x_222; obj* x_223; obj* x_224; obj* x_225; obj* x_226; +x_210 = lean::cnstr_get(x_203, 0); +lean::inc(x_210); +lean::dec(x_203); +x_213 = lean::cnstr_get(x_210, 2); +lean::inc(x_213); +lean::dec(x_210); +x_216 = l_mjoin___rarg___closed__1; +x_217 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_217, 0, x_213); +lean::closure_set(x_217, 1, x_216); +x_218 = lean::cnstr_get(x_75, 2); +lean::inc(x_218); +lean::dec(x_75); +x_221 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_221, 0, x_218); +lean::closure_set(x_221, 1, x_217); +x_222 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_222, 0, x_221); +x_223 = lean::box(0); +if (lean::is_scalar(x_195)) { + x_224 = lean::alloc_cnstr(0, 3, 0); +} else { + x_224 = x_195; +} +lean::cnstr_set(x_224, 0, x_223); +lean::cnstr_set(x_224, 1, x_12); +lean::cnstr_set(x_224, 2, x_222); +x_225 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_224); +if (lean::is_scalar(x_202)) { + x_226 = lean::alloc_cnstr(0, 2, 0); +} else { + x_226 = x_202; +} +lean::cnstr_set(x_226, 0, x_225); +lean::cnstr_set(x_226, 1, x_200); +return x_226; +} +else +{ +obj* x_229; obj* x_230; obj* x_231; +lean::dec(x_195); +lean::dec(x_12); +x_229 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_203); +x_230 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_229); +if (lean::is_scalar(x_202)) { + x_231 = lean::alloc_cnstr(0, 2, 0); +} else { + x_231 = x_202; +} +lean::cnstr_set(x_231, 0, x_230); +lean::cnstr_set(x_231, 1, x_200); +return x_231; +} +} +} +else +{ +uint8 x_233; +lean::dec(x_18); +x_233 = lean::cnstr_get_scalar(x_188, sizeof(void*)*1); +if (x_233 == 0) +{ +obj* x_234; obj* x_237; obj* x_240; obj* x_241; obj* x_242; obj* x_245; obj* x_246; obj* x_247; obj* x_248; obj* x_249; obj* x_250; +x_234 = lean::cnstr_get(x_188, 0); +lean::inc(x_234); lean::dec(x_188); -lean::dec(x_182); -x_192 = lean::cnstr_get(x_189, 1); -x_194 = lean::cnstr_get(x_189, 2); -if (lean::is_exclusive(x_189)) { - lean::cnstr_release(x_189, 0); - lean::cnstr_set(x_189, 1, lean::box(0)); - lean::cnstr_set(x_189, 2, lean::box(0)); - x_196 = x_189; -} else { - lean::inc(x_192); - lean::inc(x_194); - lean::dec(x_189); - x_196 = lean::box(0); -} -x_197 = l___private_init_lean_parser_token_2__whitespace__aux___main(x_18, x_1, x_192, x_186); -lean::dec(x_18); -x_199 = lean::cnstr_get(x_197, 0); -x_201 = lean::cnstr_get(x_197, 1); -if (lean::is_exclusive(x_197)) { - lean::cnstr_set(x_197, 0, lean::box(0)); - lean::cnstr_set(x_197, 1, lean::box(0)); - x_203 = x_197; -} else { - lean::inc(x_199); - lean::inc(x_201); - lean::dec(x_197); - x_203 = lean::box(0); -} -x_204 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_194, x_199); -if (lean::obj_tag(x_204) == 0) -{ -obj* x_207; obj* x_208; obj* x_209; -lean::dec(x_196); -lean::dec(x_12); -x_207 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_204); -x_208 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_207); -if (lean::is_scalar(x_203)) { - x_209 = lean::alloc_cnstr(0, 2, 0); -} else { - x_209 = x_203; -} -lean::cnstr_set(x_209, 0, x_208); -lean::cnstr_set(x_209, 1, x_201); -return x_209; -} -else -{ -uint8 x_210; -x_210 = lean::cnstr_get_scalar(x_204, sizeof(void*)*1); -if (x_210 == 0) -{ -obj* x_211; obj* x_214; obj* x_217; obj* x_218; obj* x_219; obj* x_222; obj* x_223; obj* x_224; obj* x_225; obj* x_226; obj* x_227; -x_211 = lean::cnstr_get(x_204, 0); -lean::inc(x_211); -lean::dec(x_204); -x_214 = lean::cnstr_get(x_211, 2); -lean::inc(x_214); -lean::dec(x_211); -x_217 = l_mjoin___rarg___closed__1; -x_218 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_218, 0, x_214); -lean::closure_set(x_218, 1, x_217); -x_219 = lean::cnstr_get(x_75, 2); -lean::inc(x_219); +x_237 = lean::cnstr_get(x_234, 2); +lean::inc(x_237); +lean::dec(x_234); +x_240 = l_mjoin___rarg___closed__1; +x_241 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_241, 0, x_237); +lean::closure_set(x_241, 1, x_240); +x_242 = lean::cnstr_get(x_75, 2); +lean::inc(x_242); lean::dec(x_75); -x_222 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_222, 0, x_219); -lean::closure_set(x_222, 1, x_218); -x_223 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_223, 0, x_222); -x_224 = lean::box(0); -if (lean::is_scalar(x_196)) { - x_225 = lean::alloc_cnstr(0, 3, 0); +x_245 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_245, 0, x_242); +lean::closure_set(x_245, 1, x_241); +x_246 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_246, 0, x_245); +x_247 = lean::box(0); +if (lean::is_scalar(x_181)) { + x_248 = lean::alloc_cnstr(0, 3, 0); } else { - x_225 = x_196; + x_248 = x_181; } -lean::cnstr_set(x_225, 0, x_224); -lean::cnstr_set(x_225, 1, x_12); -lean::cnstr_set(x_225, 2, x_223); -x_226 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_225); -if (lean::is_scalar(x_203)) { - x_227 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_248, 0, x_247); +lean::cnstr_set(x_248, 1, x_12); +lean::cnstr_set(x_248, 2, x_246); +x_249 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_248); +if (lean::is_scalar(x_187)) { + x_250 = lean::alloc_cnstr(0, 2, 0); } else { - x_227 = x_203; + x_250 = x_187; } -lean::cnstr_set(x_227, 0, x_226); -lean::cnstr_set(x_227, 1, x_201); -return x_227; +lean::cnstr_set(x_250, 0, x_249); +lean::cnstr_set(x_250, 1, x_185); +return x_250; } else { -obj* x_230; obj* x_231; obj* x_232; -lean::dec(x_196); +obj* x_253; obj* x_255; obj* x_256; obj* x_257; obj* x_258; obj* x_259; obj* x_260; +lean::dec(x_181); lean::dec(x_12); -x_230 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_204); -x_231 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_230); -if (lean::is_scalar(x_203)) { - x_232 = lean::alloc_cnstr(0, 2, 0); +x_253 = lean::cnstr_get(x_188, 0); +if (lean::is_exclusive(x_188)) { + x_255 = x_188; } else { - x_232 = x_203; + lean::inc(x_253); + lean::dec(x_188); + x_255 = lean::box(0); } -lean::cnstr_set(x_232, 0, x_231); -lean::cnstr_set(x_232, 1, x_201); -return x_232; +if (lean::is_scalar(x_255)) { + x_256 = lean::alloc_cnstr(1, 1, 1); +} else { + x_256 = x_255; +} +lean::cnstr_set(x_256, 0, x_253); +lean::cnstr_set_scalar(x_256, sizeof(void*)*1, x_233); +x_257 = x_256; +x_258 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_257); +x_259 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_258); +if (lean::is_scalar(x_187)) { + x_260 = lean::alloc_cnstr(0, 2, 0); +} else { + x_260 = x_187; +} +lean::cnstr_set(x_260, 0, x_259); +lean::cnstr_set(x_260, 1, x_185); +return x_260; } } } else { -uint8 x_234; +uint8 x_262; lean::dec(x_18); -x_234 = lean::cnstr_get_scalar(x_189, sizeof(void*)*1); -if (x_234 == 0) +x_262 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); +if (x_262 == 0) { -obj* x_235; obj* x_238; obj* x_241; obj* x_242; obj* x_243; obj* x_246; obj* x_247; obj* x_248; obj* x_249; obj* x_250; obj* x_251; -x_235 = lean::cnstr_get(x_189, 0); -lean::inc(x_235); -lean::dec(x_189); -x_238 = lean::cnstr_get(x_235, 2); -lean::inc(x_238); -lean::dec(x_235); -x_241 = l_mjoin___rarg___closed__1; -x_242 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_242, 0, x_238); -lean::closure_set(x_242, 1, x_241); -x_243 = lean::cnstr_get(x_75, 2); -lean::inc(x_243); -lean::dec(x_75); -x_246 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_246, 0, x_243); -lean::closure_set(x_246, 1, x_242); -x_247 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_247, 0, x_246); -x_248 = lean::box(0); -if (lean::is_scalar(x_182)) { - x_249 = lean::alloc_cnstr(0, 3, 0); -} else { - x_249 = x_182; -} -lean::cnstr_set(x_249, 0, x_248); -lean::cnstr_set(x_249, 1, x_12); -lean::cnstr_set(x_249, 2, x_247); -x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_249); -if (lean::is_scalar(x_188)) { - x_251 = lean::alloc_cnstr(0, 2, 0); -} else { - x_251 = x_188; -} -lean::cnstr_set(x_251, 0, x_250); -lean::cnstr_set(x_251, 1, x_186); -return x_251; -} -else -{ -obj* x_254; obj* x_256; obj* x_257; obj* x_258; obj* x_259; obj* x_260; obj* x_261; -lean::dec(x_182); -lean::dec(x_12); -x_254 = lean::cnstr_get(x_189, 0); -if (lean::is_exclusive(x_189)) { - x_256 = x_189; -} else { - lean::inc(x_254); - lean::dec(x_189); - x_256 = lean::box(0); -} -if (lean::is_scalar(x_256)) { - x_257 = lean::alloc_cnstr(1, 1, 1); -} else { - x_257 = x_256; -} -lean::cnstr_set(x_257, 0, x_254); -lean::cnstr_set_scalar(x_257, sizeof(void*)*1, x_234); -x_258 = x_257; -x_259 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_258); -x_260 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_259); -if (lean::is_scalar(x_188)) { - x_261 = lean::alloc_cnstr(0, 2, 0); -} else { - x_261 = x_188; -} -lean::cnstr_set(x_261, 0, x_260); -lean::cnstr_set(x_261, 1, x_186); -return x_261; -} -} -} -else -{ -uint8 x_263; -lean::dec(x_18); -x_263 = lean::cnstr_get_scalar(x_78, sizeof(void*)*1); -if (x_263 == 0) -{ -obj* x_264; obj* x_267; obj* x_270; obj* x_271; obj* x_272; obj* x_275; obj* x_276; obj* x_277; obj* x_278; obj* x_279; obj* x_280; -x_264 = lean::cnstr_get(x_78, 0); -lean::inc(x_264); +obj* x_263; obj* x_266; obj* x_269; obj* x_270; obj* x_271; obj* x_274; obj* x_275; obj* x_276; obj* x_277; obj* x_278; obj* x_279; +x_263 = lean::cnstr_get(x_78, 0); +lean::inc(x_263); lean::dec(x_78); -x_267 = lean::cnstr_get(x_264, 2); -lean::inc(x_267); -lean::dec(x_264); -x_270 = l_mjoin___rarg___closed__1; -x_271 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_271, 0, x_267); -lean::closure_set(x_271, 1, x_270); -x_272 = lean::cnstr_get(x_75, 2); -lean::inc(x_272); +x_266 = lean::cnstr_get(x_263, 2); +lean::inc(x_266); +lean::dec(x_263); +x_269 = l_mjoin___rarg___closed__1; +x_270 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_270, 0, x_266); +lean::closure_set(x_270, 1, x_269); +x_271 = lean::cnstr_get(x_75, 2); +lean::inc(x_271); lean::dec(x_75); -x_275 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); -lean::closure_set(x_275, 0, x_272); -lean::closure_set(x_275, 1, x_271); -x_276 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_276, 0, x_275); -x_277 = lean::box(0); +x_274 = lean::alloc_closure(reinterpret_cast(l_function_comp___rarg), 3, 2); +lean::closure_set(x_274, 0, x_271); +lean::closure_set(x_274, 1, x_270); +x_275 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_275, 0, x_274); +x_276 = lean::box(0); if (lean::is_scalar(x_16)) { - x_278 = lean::alloc_cnstr(0, 3, 0); + x_277 = lean::alloc_cnstr(0, 3, 0); } else { - x_278 = x_16; + x_277 = x_16; } -lean::cnstr_set(x_278, 0, x_277); -lean::cnstr_set(x_278, 1, x_12); -lean::cnstr_set(x_278, 2, x_276); -x_279 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_278); +lean::cnstr_set(x_277, 0, x_276); +lean::cnstr_set(x_277, 1, x_12); +lean::cnstr_set(x_277, 2, x_275); +x_278 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_277); if (lean::is_scalar(x_11)) { - x_280 = lean::alloc_cnstr(0, 2, 0); + x_279 = lean::alloc_cnstr(0, 2, 0); } else { - x_280 = x_11; + x_279 = x_11; } -lean::cnstr_set(x_280, 0, x_279); -lean::cnstr_set(x_280, 1, x_79); -return x_280; +lean::cnstr_set(x_279, 0, x_278); +lean::cnstr_set(x_279, 1, x_79); +return x_279; } else { -obj* x_283; obj* x_285; obj* x_286; obj* x_287; obj* x_288; obj* x_289; obj* x_290; +obj* x_282; obj* x_284; obj* x_285; obj* x_286; obj* x_287; obj* x_288; obj* x_289; lean::dec(x_12); lean::dec(x_16); -x_283 = lean::cnstr_get(x_78, 0); +x_282 = lean::cnstr_get(x_78, 0); if (lean::is_exclusive(x_78)) { - x_285 = x_78; + x_284 = x_78; } else { - lean::inc(x_283); + lean::inc(x_282); lean::dec(x_78); - x_285 = lean::box(0); + x_284 = lean::box(0); } -if (lean::is_scalar(x_285)) { - x_286 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); } else { - x_286 = x_285; + x_285 = x_284; } -lean::cnstr_set(x_286, 0, x_283); -lean::cnstr_set_scalar(x_286, sizeof(void*)*1, x_263); -x_287 = x_286; -x_288 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_287); -x_289 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_288); +lean::cnstr_set(x_285, 0, x_282); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_262); +x_286 = x_285; +x_287 = l_lean_parser_parsec__t_orelse__mk__res___rarg(x_75, x_286); +x_288 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_14, x_287); if (lean::is_scalar(x_11)) { - x_290 = lean::alloc_cnstr(0, 2, 0); + x_289 = lean::alloc_cnstr(0, 2, 0); } else { - x_290 = x_11; + x_289 = x_11; } -lean::cnstr_set(x_290, 0, x_289); -lean::cnstr_set(x_290, 1, x_79); -return x_290; +lean::cnstr_set(x_289, 0, x_288); +lean::cnstr_set(x_289, 1, x_79); +return x_289; } } } @@ -2538,52 +2513,52 @@ return x_290; } else { -obj* x_291; obj* x_293; obj* x_294; uint8 x_296; obj* x_297; obj* x_298; obj* x_299; obj* x_300; -x_291 = lean::cnstr_get(x_6, 1); +obj* x_290; obj* x_292; obj* x_293; uint8 x_295; obj* x_296; obj* x_297; obj* x_298; obj* x_299; +x_290 = lean::cnstr_get(x_6, 1); if (lean::is_exclusive(x_6)) { lean::cnstr_release(x_6, 0); - x_293 = x_6; + x_292 = x_6; } else { - lean::inc(x_291); + lean::inc(x_290); lean::dec(x_6); - x_293 = lean::box(0); + x_292 = lean::box(0); } -x_294 = lean::cnstr_get(x_7, 0); -x_296 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); +x_293 = lean::cnstr_get(x_7, 0); +x_295 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); if (lean::is_exclusive(x_7)) { - x_297 = x_7; + x_296 = x_7; } else { - lean::inc(x_294); + lean::inc(x_293); lean::dec(x_7); - x_297 = lean::box(0); + x_296 = lean::box(0); } -if (lean::is_scalar(x_297)) { - x_298 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_296)) { + x_297 = lean::alloc_cnstr(1, 1, 1); } else { - x_298 = x_297; + x_297 = x_296; } -lean::cnstr_set(x_298, 0, x_294); -lean::cnstr_set_scalar(x_298, sizeof(void*)*1, x_296); -x_299 = x_298; -if (lean::is_scalar(x_293)) { - x_300 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_297, 0, x_293); +lean::cnstr_set_scalar(x_297, sizeof(void*)*1, x_295); +x_298 = x_297; +if (lean::is_scalar(x_292)) { + x_299 = lean::alloc_cnstr(0, 2, 0); } else { - x_300 = x_293; + x_299 = x_292; } -lean::cnstr_set(x_300, 0, x_299); -lean::cnstr_set(x_300, 1, x_291); -return x_300; +lean::cnstr_set(x_299, 0, x_298); +lean::cnstr_set(x_299, 1, x_290); +return x_299; } } else { -obj* x_301; obj* x_302; obj* x_303; obj* x_304; -x_301 = lean::box(0); -x_302 = l___private_init_lean_parser_combinators_1__many1__aux___main___rarg___closed__1; -x_303 = l_mjoin___rarg___closed__1; -x_304 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_302, x_303, x_301, x_301, x_1, x_2, x_3); +obj* x_300; obj* x_301; obj* x_302; obj* x_303; +x_300 = lean::box(0); +x_301 = l___private_init_lean_parser_combinators_1__many1__aux___main___rarg___closed__1; +x_302 = l_mjoin___rarg___closed__1; +x_303 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_301, x_302, x_300, x_300, x_1, x_2, x_3); lean::dec(x_2); -return x_304; +return x_303; } } } @@ -2614,14 +2589,13 @@ lean::dec(x_0); return x_3; } } -obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_5; -x_5 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(x_0, x_1, x_2, x_3, x_4); +obj* x_4; +x_4 = l_lean_parser_parsec__t_lookahead___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__4(x_0, x_1, x_2, x_3); lean::dec(x_0); -lean::dec(x_1); -return x_5; +return x_4; } } obj* l___private_init_lean_parser_parsec_6__take__while__aux_x_27___main___at___private_init_lean_parser_token_2__whitespace__aux___main___spec__6___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -10277,379 +10251,410 @@ x_5 = lean::apply_4(x_1, x_0, x_2, x_3, x_4); return x_5; } } -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { -obj* x_5; obj* x_6; obj* x_7; -x_5 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_6 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_6, 0, x_0); -lean::cnstr_set(x_6, 1, x_3); -lean::cnstr_set(x_6, 2, x_5); -x_7 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_7, 0, x_6); -lean::cnstr_set(x_7, 1, x_4); -return x_7; -} -} -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10(obj* x_0) { -_start: +if (lean::obj_tag(x_2) == 0) { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg___boxed), 5, 0); -return x_1; -} -} -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__1(obj* x_0, obj* x_1, obj* 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_11; -x_10 = lean::apply_4(x_1, x_3, x_4, x_5, x_6); -x_11 = lean::cnstr_get(x_10, 0); -lean::inc(x_11); -if (lean::obj_tag(x_11) == 0) -{ -obj* x_14; -lean::dec(x_2); -x_14 = lean::cnstr_get(x_10, 1); -lean::inc(x_14); -lean::dec(x_10); -x_7 = x_11; -x_8 = x_14; -goto lbl_9; -} -else -{ -uint8 x_17; -x_17 = lean::cnstr_get_scalar(x_11, sizeof(void*)*1); -if (lean::obj_tag(x_0) == 0) -{ -lean::dec(x_2); -if (x_17 == 0) -{ -obj* x_19; obj* x_22; obj* x_24; uint8 x_25; obj* x_26; obj* x_27; -x_19 = lean::cnstr_get(x_10, 1); -lean::inc(x_19); -lean::dec(x_10); -x_22 = lean::cnstr_get(x_11, 0); -if (lean::is_exclusive(x_11)) { - x_24 = x_11; -} else { - lean::inc(x_22); - lean::dec(x_11); - x_24 = lean::box(0); -} -x_25 = 0; -if (lean::is_scalar(x_24)) { - x_26 = lean::alloc_cnstr(1, 1, 1); -} else { - x_26 = x_24; -} -lean::cnstr_set(x_26, 0, x_22); -lean::cnstr_set_scalar(x_26, sizeof(void*)*1, x_25); -x_27 = x_26; -x_7 = x_27; -x_8 = x_19; -goto lbl_9; -} -else -{ -obj* x_28; obj* x_31; obj* x_33; obj* x_34; obj* x_35; -x_28 = lean::cnstr_get(x_10, 1); -lean::inc(x_28); -lean::dec(x_10); -x_31 = lean::cnstr_get(x_11, 0); -if (lean::is_exclusive(x_11)) { - x_33 = x_11; -} else { - lean::inc(x_31); - lean::dec(x_11); - x_33 = lean::box(0); -} -if (lean::is_scalar(x_33)) { - x_34 = lean::alloc_cnstr(1, 1, 1); -} else { - x_34 = x_33; -} -lean::cnstr_set(x_34, 0, x_31); -lean::cnstr_set_scalar(x_34, sizeof(void*)*1, x_17); -x_35 = x_34; -x_7 = x_35; -x_8 = x_28; -goto lbl_9; -} -} -else -{ -obj* x_36; obj* x_39; obj* x_41; obj* x_42; obj* x_44; obj* x_47; obj* x_48; obj* x_50; obj* x_52; obj* x_55; obj* x_56; obj* x_57; obj* x_58; -x_36 = lean::cnstr_get(x_10, 1); -lean::inc(x_36); -lean::dec(x_10); -x_39 = lean::cnstr_get(x_11, 0); -if (lean::is_exclusive(x_11)) { - lean::cnstr_set(x_11, 0, lean::box(0)); - x_41 = x_11; -} else { - lean::inc(x_39); - lean::dec(x_11); - x_41 = lean::box(0); -} -x_42 = lean::cnstr_get(x_39, 3); -lean::inc(x_42); -x_44 = l_option_get___main___at_lean_parser_run___spec__2(x_42); -lean::dec(x_42); -lean::inc(x_0); -x_47 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_47, 0, x_44); -lean::cnstr_set(x_47, 1, x_0); -x_48 = lean::cnstr_get(x_39, 0); -lean::inc(x_48); -x_50 = lean::cnstr_get(x_39, 1); -lean::inc(x_50); -x_52 = lean::cnstr_get(x_39, 2); -lean::inc(x_52); -lean::dec(x_39); -x_55 = l_list_reverse___rarg(x_47); -x_56 = l_lean_parser_syntax_mk__node(x_2, x_55); -x_57 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_57, 0, x_56); -x_58 = lean::alloc_cnstr(0, 4, 0); -lean::cnstr_set(x_58, 0, x_48); -lean::cnstr_set(x_58, 1, x_50); -lean::cnstr_set(x_58, 2, x_52); -lean::cnstr_set(x_58, 3, x_57); -if (x_17 == 0) -{ -uint8 x_59; obj* x_60; obj* x_61; -x_59 = 0; -if (lean::is_scalar(x_41)) { - x_60 = lean::alloc_cnstr(1, 1, 1); -} else { - x_60 = x_41; -} -lean::cnstr_set(x_60, 0, x_58); -lean::cnstr_set_scalar(x_60, sizeof(void*)*1, x_59); -x_61 = x_60; -x_7 = x_61; -x_8 = x_36; -goto lbl_9; -} -else -{ -obj* x_62; obj* x_63; -if (lean::is_scalar(x_41)) { - x_62 = lean::alloc_cnstr(1, 1, 1); -} else { - x_62 = x_41; -} -lean::cnstr_set(x_62, 0, x_58); -lean::cnstr_set_scalar(x_62, sizeof(void*)*1, x_17); -x_63 = x_62; -x_7 = x_63; -x_8 = x_36; -goto lbl_9; -} -} -} -lbl_9: -{ -if (lean::obj_tag(x_7) == 0) -{ -obj* x_64; obj* x_66; obj* x_68; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; -x_64 = lean::cnstr_get(x_7, 0); -x_66 = lean::cnstr_get(x_7, 1); -x_68 = lean::cnstr_get(x_7, 2); -if (lean::is_exclusive(x_7)) { - x_70 = x_7; -} else { - lean::inc(x_64); - lean::inc(x_66); - lean::inc(x_68); - lean::dec(x_7); - x_70 = lean::box(0); -} -x_71 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_71, 0, x_64); -lean::cnstr_set(x_71, 1, x_0); -x_72 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_70)) { - x_73 = lean::alloc_cnstr(0, 3, 0); -} else { - x_73 = x_70; -} -lean::cnstr_set(x_73, 0, x_71); -lean::cnstr_set(x_73, 1, x_66); -lean::cnstr_set(x_73, 2, x_72); -x_74 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_68, x_73); -x_75 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_8); -return x_75; -} -else -{ -obj* x_77; uint8 x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; -lean::dec(x_0); -x_77 = lean::cnstr_get(x_7, 0); -x_79 = lean::cnstr_get_scalar(x_7, sizeof(void*)*1); -if (lean::is_exclusive(x_7)) { - x_80 = x_7; -} else { - lean::inc(x_77); - lean::dec(x_7); - x_80 = lean::box(0); -} -if (lean::is_scalar(x_80)) { - x_81 = lean::alloc_cnstr(1, 1, 1); -} else { - x_81 = x_80; -} -lean::cnstr_set(x_81, 0, x_77); -lean::cnstr_set_scalar(x_81, sizeof(void*)*1, x_79); -x_82 = x_81; -x_83 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_83, 0, x_82); -lean::cnstr_set(x_83, 1, x_8); -return x_83; -} -} -} -} -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__2(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; -x_3 = l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(x_0, lean::box(0), x_2, x_1); -return x_3; -} -} -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -if (lean::obj_tag(x_3) == 0) -{ -obj* x_5; -lean::dec(x_0); -x_5 = lean::alloc_closure(reinterpret_cast(l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg___boxed), 5, 1); -lean::closure_set(x_5, 0, x_2); -return x_5; -} -else -{ -obj* x_6; obj* x_8; obj* x_12; obj* x_13; obj* x_14; -x_6 = lean::cnstr_get(x_3, 0); -lean::inc(x_6); -x_8 = lean::cnstr_get(x_3, 1); -lean::inc(x_8); +obj* x_10; obj* x_11; obj* x_12; +lean::dec(x_4); lean::dec(x_3); +lean::dec(x_0); +x_10 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_11 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_11, 0, x_1); +lean::cnstr_set(x_11, 1, x_5); +lean::cnstr_set(x_11, 2, x_10); +x_12 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_12, 0, x_11); +lean::cnstr_set(x_12, 1, x_6); +return x_12; +} +else +{ +obj* x_13; obj* x_15; obj* x_17; obj* x_18; obj* x_19; obj* x_23; obj* x_24; +x_13 = lean::cnstr_get(x_2, 0); +x_15 = lean::cnstr_get(x_2, 1); +if (lean::is_exclusive(x_2)) { + lean::cnstr_set(x_2, 0, lean::box(0)); + lean::cnstr_set(x_2, 1, lean::box(0)); + x_17 = x_2; +} else { + lean::inc(x_13); + lean::inc(x_15); + lean::dec(x_2); + x_17 = lean::box(0); +} +lean::inc(x_4); +lean::inc(x_3); +x_23 = lean::apply_4(x_13, x_3, x_4, x_5, x_6); +x_24 = lean::cnstr_get(x_23, 0); +lean::inc(x_24); +if (lean::obj_tag(x_24) == 0) +{ +obj* x_26; +x_26 = lean::cnstr_get(x_23, 1); +lean::inc(x_26); +lean::dec(x_23); +x_18 = x_24; +x_19 = x_26; +goto lbl_20; +} +else +{ +uint8 x_29; +x_29 = lean::cnstr_get_scalar(x_24, sizeof(void*)*1); +if (lean::obj_tag(x_1) == 0) +{ +if (x_29 == 0) +{ +obj* x_30; obj* x_33; obj* x_35; uint8 x_36; obj* x_37; obj* x_38; +x_30 = lean::cnstr_get(x_23, 1); +lean::inc(x_30); +lean::dec(x_23); +x_33 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + x_35 = x_24; +} else { + lean::inc(x_33); + lean::dec(x_24); + x_35 = lean::box(0); +} +x_36 = 0; +if (lean::is_scalar(x_35)) { + x_37 = lean::alloc_cnstr(1, 1, 1); +} else { + x_37 = x_35; +} +lean::cnstr_set(x_37, 0, x_33); +lean::cnstr_set_scalar(x_37, sizeof(void*)*1, x_36); +x_38 = x_37; +x_18 = x_38; +x_19 = x_30; +goto lbl_20; +} +else +{ +obj* x_39; obj* x_42; obj* x_44; obj* x_45; obj* x_46; +x_39 = lean::cnstr_get(x_23, 1); +lean::inc(x_39); +lean::dec(x_23); +x_42 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + x_44 = x_24; +} else { + lean::inc(x_42); + lean::dec(x_24); + x_44 = lean::box(0); +} +if (lean::is_scalar(x_44)) { + x_45 = lean::alloc_cnstr(1, 1, 1); +} else { + x_45 = x_44; +} +lean::cnstr_set(x_45, 0, x_42); +lean::cnstr_set_scalar(x_45, sizeof(void*)*1, x_29); +x_46 = x_45; +x_18 = x_46; +x_19 = x_39; +goto lbl_20; +} +} +else +{ +obj* x_47; obj* x_50; obj* x_52; obj* x_53; obj* x_55; obj* x_58; obj* x_59; obj* x_61; obj* x_63; obj* x_66; obj* x_68; obj* x_69; obj* x_70; +x_47 = lean::cnstr_get(x_23, 1); +lean::inc(x_47); +lean::dec(x_23); +x_50 = lean::cnstr_get(x_24, 0); +if (lean::is_exclusive(x_24)) { + lean::cnstr_set(x_24, 0, lean::box(0)); + x_52 = x_24; +} else { + lean::inc(x_50); + lean::dec(x_24); + x_52 = lean::box(0); +} +x_53 = lean::cnstr_get(x_50, 3); +lean::inc(x_53); +x_55 = l_option_get___main___at_lean_parser_run___spec__2(x_53); +lean::dec(x_53); +lean::inc(x_1); +x_58 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_58, 0, x_55); +lean::cnstr_set(x_58, 1, x_1); +x_59 = lean::cnstr_get(x_50, 0); +lean::inc(x_59); +x_61 = lean::cnstr_get(x_50, 1); +lean::inc(x_61); +x_63 = lean::cnstr_get(x_50, 2); +lean::inc(x_63); +lean::dec(x_50); +x_66 = l_list_reverse___rarg(x_58); lean::inc(x_0); -x_12 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__1), 7, 3); -lean::closure_set(x_12, 0, x_2); -lean::closure_set(x_12, 1, x_6); -lean::closure_set(x_12, 2, x_0); -x_13 = lean::alloc_closure(reinterpret_cast(l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___lambda__2), 3, 2); -lean::closure_set(x_13, 0, x_0); -lean::closure_set(x_13, 1, x_8); -x_14 = lean::alloc_closure(reinterpret_cast(l_reader__t_bind___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__6___rarg), 6, 2); -lean::closure_set(x_14, 0, x_12); -lean::closure_set(x_14, 1, x_13); -return x_14; +x_68 = l_lean_parser_syntax_mk__node(x_0, x_66); +x_69 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_69, 0, x_68); +x_70 = lean::alloc_cnstr(0, 4, 0); +lean::cnstr_set(x_70, 0, x_59); +lean::cnstr_set(x_70, 1, x_61); +lean::cnstr_set(x_70, 2, x_63); +lean::cnstr_set(x_70, 3, x_69); +if (x_29 == 0) +{ +uint8 x_71; obj* x_72; obj* x_73; +x_71 = 0; +if (lean::is_scalar(x_52)) { + x_72 = lean::alloc_cnstr(1, 1, 1); +} else { + x_72 = x_52; +} +lean::cnstr_set(x_72, 0, x_70); +lean::cnstr_set_scalar(x_72, sizeof(void*)*1, x_71); +x_73 = x_72; +x_18 = x_73; +x_19 = x_47; +goto lbl_20; +} +else +{ +obj* x_74; obj* x_75; +if (lean::is_scalar(x_52)) { + x_74 = lean::alloc_cnstr(1, 1, 1); +} else { + x_74 = x_52; +} +lean::cnstr_set(x_74, 0, x_70); +lean::cnstr_set_scalar(x_74, sizeof(void*)*1, x_29); +x_75 = x_74; +x_18 = x_75; +x_19 = x_47; +goto lbl_20; +} +} +} +lbl_20: +{ +if (lean::obj_tag(x_18) == 0) +{ +obj* x_76; obj* x_78; obj* x_80; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; +x_76 = lean::cnstr_get(x_18, 0); +x_78 = lean::cnstr_get(x_18, 1); +x_80 = lean::cnstr_get(x_18, 2); +if (lean::is_exclusive(x_18)) { + x_82 = x_18; +} else { + lean::inc(x_76); + lean::inc(x_78); + lean::inc(x_80); + lean::dec(x_18); + x_82 = lean::box(0); +} +if (lean::is_scalar(x_17)) { + x_83 = lean::alloc_cnstr(1, 2, 0); +} else { + x_83 = x_17; +} +lean::cnstr_set(x_83, 0, x_76); +lean::cnstr_set(x_83, 1, x_1); +x_84 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_82)) { + x_85 = lean::alloc_cnstr(0, 3, 0); +} else { + x_85 = x_82; +} +lean::cnstr_set(x_85, 0, x_83); +lean::cnstr_set(x_85, 1, x_78); +lean::cnstr_set(x_85, 2, x_84); +x_86 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_80, x_85); +if (lean::obj_tag(x_86) == 0) +{ +obj* x_87; obj* x_89; obj* x_91; obj* x_94; obj* x_95; obj* x_97; obj* x_99; obj* x_100; obj* x_101; +x_87 = lean::cnstr_get(x_86, 0); +lean::inc(x_87); +x_89 = lean::cnstr_get(x_86, 1); +lean::inc(x_89); +x_91 = lean::cnstr_get(x_86, 2); +lean::inc(x_91); +lean::dec(x_86); +x_94 = l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(x_0, x_87, x_15, x_3, x_4, x_89, x_19); +x_95 = lean::cnstr_get(x_94, 0); +x_97 = lean::cnstr_get(x_94, 1); +if (lean::is_exclusive(x_94)) { + x_99 = x_94; +} else { + lean::inc(x_95); + lean::inc(x_97); + lean::dec(x_94); + x_99 = lean::box(0); +} +x_100 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_91, x_95); +if (lean::is_scalar(x_99)) { + x_101 = lean::alloc_cnstr(0, 2, 0); +} else { + x_101 = x_99; +} +lean::cnstr_set(x_101, 0, x_100); +lean::cnstr_set(x_101, 1, x_97); +return x_101; +} +else +{ +obj* x_106; uint8 x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; +lean::dec(x_15); +lean::dec(x_4); +lean::dec(x_3); +lean::dec(x_0); +x_106 = lean::cnstr_get(x_86, 0); +x_108 = lean::cnstr_get_scalar(x_86, sizeof(void*)*1); +if (lean::is_exclusive(x_86)) { + x_109 = x_86; +} else { + lean::inc(x_106); + lean::dec(x_86); + x_109 = lean::box(0); +} +if (lean::is_scalar(x_109)) { + x_110 = lean::alloc_cnstr(1, 1, 1); +} else { + x_110 = x_109; +} +lean::cnstr_set(x_110, 0, x_106); +lean::cnstr_set_scalar(x_110, sizeof(void*)*1, x_108); +x_111 = x_110; +x_112 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_112, 0, x_111); +lean::cnstr_set(x_112, 1, x_19); +return x_112; +} +} +else +{ +obj* x_119; uint8 x_121; obj* x_122; obj* x_123; obj* x_124; obj* x_125; +lean::dec(x_15); +lean::dec(x_4); +lean::dec(x_1); +lean::dec(x_3); +lean::dec(x_0); +lean::dec(x_17); +x_119 = lean::cnstr_get(x_18, 0); +x_121 = lean::cnstr_get_scalar(x_18, sizeof(void*)*1); +if (lean::is_exclusive(x_18)) { + x_122 = x_18; +} else { + lean::inc(x_119); + lean::dec(x_18); + x_122 = lean::box(0); +} +if (lean::is_scalar(x_122)) { + x_123 = lean::alloc_cnstr(1, 1, 1); +} else { + x_123 = x_122; +} +lean::cnstr_set(x_123, 0, x_119); +lean::cnstr_set_scalar(x_123, sizeof(void*)*1, x_121); +x_124 = x_123; +x_125 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_125, 0, x_124); +lean::cnstr_set(x_125, 1, x_19); +return x_125; +} +} } } } obj* l_lean_parser_combinators_node___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__8(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_6; obj* x_8; obj* x_9; obj* x_10; +obj* x_6; obj* x_8; obj* x_9; x_6 = lean::box(0); lean::inc(x_0); -x_8 = l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(x_0, lean::box(0), x_6, x_1); -x_9 = lean::apply_4(x_8, x_2, x_3, x_4, x_5); -x_10 = lean::cnstr_get(x_9, 0); -lean::inc(x_10); -if (lean::obj_tag(x_10) == 0) +x_8 = l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(x_0, x_6, x_1, x_2, x_3, x_4, x_5); +x_9 = lean::cnstr_get(x_8, 0); +lean::inc(x_9); +if (lean::obj_tag(x_9) == 0) { -obj* x_12; obj* x_14; obj* x_15; obj* x_17; obj* x_19; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; -x_12 = lean::cnstr_get(x_9, 1); +obj* x_11; obj* x_13; obj* x_14; obj* x_16; obj* x_18; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +x_11 = lean::cnstr_get(x_8, 1); +if (lean::is_exclusive(x_8)) { + lean::cnstr_release(x_8, 0); + x_13 = x_8; +} else { + lean::inc(x_11); + lean::dec(x_8); + x_13 = lean::box(0); +} +x_14 = lean::cnstr_get(x_9, 0); +x_16 = lean::cnstr_get(x_9, 1); +x_18 = lean::cnstr_get(x_9, 2); if (lean::is_exclusive(x_9)) { - lean::cnstr_release(x_9, 0); - x_14 = x_9; + x_20 = x_9; } else { - lean::inc(x_12); + lean::inc(x_14); + lean::inc(x_16); + lean::inc(x_18); lean::dec(x_9); - x_14 = lean::box(0); + x_20 = lean::box(0); } -x_15 = lean::cnstr_get(x_10, 0); -x_17 = lean::cnstr_get(x_10, 1); -x_19 = lean::cnstr_get(x_10, 2); -if (lean::is_exclusive(x_10)) { - x_21 = x_10; +x_21 = l_list_reverse___rarg(x_14); +x_22 = l_lean_parser_syntax_mk__node(x_0, x_21); +x_23 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_20)) { + x_24 = lean::alloc_cnstr(0, 3, 0); } else { - lean::inc(x_15); - lean::inc(x_17); - lean::inc(x_19); - lean::dec(x_10); - x_21 = lean::box(0); + x_24 = x_20; } -x_22 = l_list_reverse___rarg(x_15); -x_23 = l_lean_parser_syntax_mk__node(x_0, x_22); -x_24 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_21)) { - x_25 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_24, 0, x_22); +lean::cnstr_set(x_24, 1, x_16); +lean::cnstr_set(x_24, 2, x_23); +x_25 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_18, x_24); +if (lean::is_scalar(x_13)) { + x_26 = lean::alloc_cnstr(0, 2, 0); } else { - x_25 = x_21; + x_26 = x_13; } -lean::cnstr_set(x_25, 0, x_23); -lean::cnstr_set(x_25, 1, x_17); -lean::cnstr_set(x_25, 2, x_24); -x_26 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_19, x_25); -if (lean::is_scalar(x_14)) { - x_27 = lean::alloc_cnstr(0, 2, 0); -} else { - x_27 = x_14; -} -lean::cnstr_set(x_27, 0, x_26); -lean::cnstr_set(x_27, 1, x_12); -return x_27; +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_11); +return x_26; } else { -obj* x_29; obj* x_31; obj* x_32; uint8 x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; +obj* x_28; obj* x_30; obj* x_31; uint8 x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; lean::dec(x_0); -x_29 = lean::cnstr_get(x_9, 1); +x_28 = lean::cnstr_get(x_8, 1); +if (lean::is_exclusive(x_8)) { + lean::cnstr_release(x_8, 0); + x_30 = x_8; +} else { + lean::inc(x_28); + lean::dec(x_8); + x_30 = lean::box(0); +} +x_31 = lean::cnstr_get(x_9, 0); +x_33 = lean::cnstr_get_scalar(x_9, sizeof(void*)*1); if (lean::is_exclusive(x_9)) { - lean::cnstr_release(x_9, 0); - x_31 = x_9; + x_34 = x_9; } else { - lean::inc(x_29); + lean::inc(x_31); lean::dec(x_9); - x_31 = lean::box(0); + x_34 = lean::box(0); } -x_32 = lean::cnstr_get(x_10, 0); -x_34 = lean::cnstr_get_scalar(x_10, sizeof(void*)*1); -if (lean::is_exclusive(x_10)) { - x_35 = x_10; +if (lean::is_scalar(x_34)) { + x_35 = lean::alloc_cnstr(1, 1, 1); } else { - lean::inc(x_32); - lean::dec(x_10); - x_35 = lean::box(0); + x_35 = x_34; } -if (lean::is_scalar(x_35)) { - x_36 = lean::alloc_cnstr(1, 1, 1); +lean::cnstr_set(x_35, 0, x_31); +lean::cnstr_set_scalar(x_35, sizeof(void*)*1, x_33); +x_36 = x_35; +if (lean::is_scalar(x_30)) { + x_37 = lean::alloc_cnstr(0, 2, 0); } else { - x_36 = x_35; + x_37 = x_30; } -lean::cnstr_set(x_36, 0, x_32); -lean::cnstr_set_scalar(x_36, sizeof(void*)*1, x_34); -x_37 = x_36; -if (lean::is_scalar(x_31)) { - x_38 = lean::alloc_cnstr(0, 2, 0); -} else { - x_38 = x_31; -} -lean::cnstr_set(x_38, 0, x_37); -lean::cnstr_set(x_38, 1, x_29); -return x_38; +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_28); +return x_37; } } } @@ -10749,34 +10754,6 @@ lean::dec(x_1); return x_2; } } -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { -_start: -{ -obj* x_5; -x_5 = l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___rarg(x_0, x_1, x_2, x_3, x_4); -lean::dec(x_1); -lean::dec(x_2); -return x_5; -} -} -obj* l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_reader__t_pure___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__10(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -obj* x_4; -x_4 = l_list_mfoldl___main___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__tokens___spec__9(x_0, x_1, x_2, x_3); -lean::dec(x_1); -return x_4; -} -} obj* l_lean_parser_parsec__t_lookahead___at_lean_parser_detail__ident__suffix_parser_lean_parser_has__view___spec__1(uint32 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { @@ -14374,91 +14351,17 @@ lean::cnstr_set(x_19, 1, x_14); return x_19; } } -obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(obj* x_0) { _start: { -obj* x_13; -x_13 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___rarg___boxed), 7, 0); -return x_13; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___rarg___boxed), 7, 0); +return x_1; } } obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__1() { _start: { -obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__1___boxed), 4, 0); -return x_0; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__2() { -_start: -{ -obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__2___boxed), 4, 0); -return x_0; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__3() { -_start: -{ -obj* x_0; obj* x_1; obj* x_2; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__1___boxed), 4, 0); -x_1 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__2___boxed), 4, 0); -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* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__4() { -_start: -{ -obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_id___boxed), 1, 0); -return x_0; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__5() { -_start: -{ -obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__3___boxed), 4, 0); -return x_0; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__6() { -_start: -{ -obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__1___boxed), 4, 0); -x_1 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__2___boxed), 4, 0); -lean::inc(x_1); -lean::inc(x_0); -x_4 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -x_5 = lean::alloc_closure(reinterpret_cast(l_id___boxed), 1, 0); -x_6 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__3___boxed), 4, 0); -x_7 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_7, 0, x_4); -lean::cnstr_set(x_7, 1, x_5); -lean::cnstr_set(x_7, 2, x_0); -lean::cnstr_set(x_7, 3, x_1); -lean::cnstr_set(x_7, 4, x_6); -return x_7; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__7() { -_start: -{ -obj* x_0; -x_0 = lean::alloc_closure(reinterpret_cast(l_id_bind___boxed), 2, 0); -return x_0; -} -} -obj* _init_l___private_init_lean_parser_token_4__ident_x_27___closed__8() { -_start: -{ obj* x_0; obj* x_1; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; x_0 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__1___boxed), 4, 0); x_1 = lean::alloc_closure(reinterpret_cast(l_id_monad___lambda__2___boxed), 4, 0); @@ -14836,25 +14739,13 @@ x_8 = l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4_ return x_8; } } -obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20___boxed(obj* x_0) { _start: { -obj* x_13; -x_13 = l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +obj* x_1; +x_1 = l_lean_parser_monad__parsec_foldl___at___private_init_lean_parser_token_4__ident_x_27___spec__20(x_0); lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -lean::dec(x_10); -lean::dec(x_11); -lean::dec(x_12); -return x_13; +return x_1; } } obj* l_reader__t_orelse___at_lean_parser_parse__bin__lit___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -21638,120 +21529,120 @@ return x_73; } } } -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12, obj* x_13, obj* x_14, obj* x_15, obj* x_16, obj* x_17) { +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_18; obj* x_19; -x_18 = l_lean_parser_parsec__t_lookahead___at_lean_parser_token___spec__1(x_0, x_1, x_15, x_16, x_17); -x_19 = lean::cnstr_get(x_18, 0); -lean::inc(x_19); -if (lean::obj_tag(x_19) == 0) +obj* x_6; obj* x_7; +x_6 = l_lean_parser_parsec__t_lookahead___at_lean_parser_token___spec__1(x_0, x_1, x_3, x_4, x_5); +x_7 = lean::cnstr_get(x_6, 0); +lean::inc(x_7); +if (lean::obj_tag(x_7) == 0) { -obj* x_21; obj* x_23; obj* x_24; obj* x_26; obj* x_28; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; -x_21 = lean::cnstr_get(x_18, 1); -if (lean::is_exclusive(x_18)) { - lean::cnstr_release(x_18, 0); - lean::cnstr_set(x_18, 1, lean::box(0)); - x_23 = x_18; +obj* x_9; obj* x_11; obj* x_12; obj* x_14; obj* x_16; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_9 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + lean::cnstr_set(x_6, 1, lean::box(0)); + x_11 = x_6; } else { - lean::inc(x_21); - lean::dec(x_18); - x_23 = lean::box(0); + lean::inc(x_9); + lean::dec(x_6); + x_11 = lean::box(0); } -x_24 = lean::cnstr_get(x_19, 0); -x_26 = lean::cnstr_get(x_19, 1); -x_28 = lean::cnstr_get(x_19, 2); -if (lean::is_exclusive(x_19)) { - x_30 = x_19; +x_12 = lean::cnstr_get(x_7, 0); +x_14 = lean::cnstr_get(x_7, 1); +x_16 = lean::cnstr_get(x_7, 2); +if (lean::is_exclusive(x_7)) { + x_18 = x_7; } else { - lean::inc(x_24); - lean::inc(x_26); - lean::inc(x_28); - lean::dec(x_19); - x_30 = lean::box(0); + lean::inc(x_12); + lean::inc(x_14); + lean::inc(x_16); + lean::dec(x_7); + x_18 = lean::box(0); } -x_31 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_31, 0, x_24); -x_32 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -if (lean::is_scalar(x_30)) { - x_33 = lean::alloc_cnstr(0, 3, 0); +x_19 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_19, 0, x_12); +x_20 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +if (lean::is_scalar(x_18)) { + x_21 = lean::alloc_cnstr(0, 3, 0); } else { - x_33 = x_30; + x_21 = x_18; } -lean::cnstr_set(x_33, 0, x_31); -lean::cnstr_set(x_33, 1, x_26); -lean::cnstr_set(x_33, 2, x_32); -x_34 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_28, x_33); -if (lean::obj_tag(x_34) == 0) +lean::cnstr_set(x_21, 0, x_19); +lean::cnstr_set(x_21, 1, x_14); +lean::cnstr_set(x_21, 2, x_20); +x_22 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_16, x_21); +if (lean::obj_tag(x_22) == 0) { -obj* x_35; -if (lean::is_scalar(x_23)) { - x_35 = lean::alloc_cnstr(0, 2, 0); +obj* x_23; +if (lean::is_scalar(x_11)) { + x_23 = lean::alloc_cnstr(0, 2, 0); } else { - x_35 = x_23; + x_23 = x_11; } -lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_21); -return x_35; +lean::cnstr_set(x_23, 0, x_22); +lean::cnstr_set(x_23, 1, x_9); +return x_23; } else { -obj* x_36; obj* x_39; obj* x_41; obj* x_42; obj* x_43; -x_36 = lean::cnstr_get(x_34, 0); -lean::inc(x_36); -lean::dec(x_34); -x_39 = lean::cnstr_get(x_36, 0); -lean::inc(x_39); -x_41 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_41, 0, x_36); +obj* x_24; obj* x_27; obj* x_29; obj* x_30; obj* x_31; +x_24 = lean::cnstr_get(x_22, 0); +lean::inc(x_24); +lean::dec(x_22); +x_27 = lean::cnstr_get(x_24, 0); +lean::inc(x_27); +x_29 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_29, 0, x_24); +x_30 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_30, 0, x_29); +lean::cnstr_set(x_30, 1, x_27); +lean::cnstr_set(x_30, 2, x_20); +if (lean::is_scalar(x_11)) { + x_31 = lean::alloc_cnstr(0, 2, 0); +} else { + x_31 = x_11; +} +lean::cnstr_set(x_31, 0, x_30); +lean::cnstr_set(x_31, 1, x_9); +return x_31; +} +} +else +{ +obj* x_32; obj* x_34; obj* x_35; obj* x_38; obj* x_40; obj* x_41; obj* x_42; obj* x_43; +x_32 = lean::cnstr_get(x_6, 1); +if (lean::is_exclusive(x_6)) { + lean::cnstr_release(x_6, 0); + x_34 = x_6; +} else { + lean::inc(x_32); + lean::dec(x_6); + x_34 = lean::box(0); +} +x_35 = lean::cnstr_get(x_7, 0); +lean::inc(x_35); +lean::dec(x_7); +x_38 = lean::cnstr_get(x_35, 0); +lean::inc(x_38); +x_40 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_40, 0, x_35); +x_41 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; x_42 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_42, 0, x_41); -lean::cnstr_set(x_42, 1, x_39); -lean::cnstr_set(x_42, 2, x_32); -if (lean::is_scalar(x_23)) { +lean::cnstr_set(x_42, 0, x_40); +lean::cnstr_set(x_42, 1, x_38); +lean::cnstr_set(x_42, 2, x_41); +if (lean::is_scalar(x_34)) { x_43 = lean::alloc_cnstr(0, 2, 0); } else { - x_43 = x_23; + x_43 = x_34; } lean::cnstr_set(x_43, 0, x_42); -lean::cnstr_set(x_43, 1, x_21); +lean::cnstr_set(x_43, 1, x_32); return x_43; } } -else -{ -obj* x_44; obj* x_46; obj* x_47; obj* x_50; obj* x_52; obj* x_53; obj* x_54; obj* x_55; -x_44 = lean::cnstr_get(x_18, 1); -if (lean::is_exclusive(x_18)) { - lean::cnstr_release(x_18, 0); - x_46 = x_18; -} else { - lean::inc(x_44); - lean::dec(x_18); - x_46 = lean::box(0); -} -x_47 = lean::cnstr_get(x_19, 0); -lean::inc(x_47); -lean::dec(x_19); -x_50 = lean::cnstr_get(x_47, 0); -lean::inc(x_50); -x_52 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_52, 0, x_47); -x_53 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_54 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_54, 0, x_52); -lean::cnstr_set(x_54, 1, x_50); -lean::cnstr_set(x_54, 2, x_53); -if (lean::is_scalar(x_46)) { - x_55 = lean::alloc_cnstr(0, 2, 0); -} else { - x_55 = x_46; -} -lean::cnstr_set(x_55, 0, x_54); -lean::cnstr_set(x_55, 1, x_44); -return x_55; -} -} } obj* l_lean_parser_with__trailing___at_lean_parser_token___spec__3(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: @@ -22176,7 +22067,7 @@ return x_91; } else { -obj* x_92; uint8 x_94; obj* x_96; obj* x_97; obj* x_99; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; obj* x_113; +obj* x_92; uint8 x_94; obj* x_96; obj* x_97; obj* x_99; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; x_92 = lean::cnstr_get(x_3, 0); lean::inc(x_92); x_94 = lean::cnstr_get_scalar(x_3, sizeof(void*)*1); @@ -22187,410 +22078,403 @@ lean::dec(x_92); x_102 = l_mjoin___rarg___closed__1; x_103 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; x_104 = l___private_init_lean_parser_token_4__ident_x_27___closed__1; -x_105 = l___private_init_lean_parser_token_4__ident_x_27___closed__2; -x_106 = l___private_init_lean_parser_token_4__ident_x_27___closed__3; -x_107 = l___private_init_lean_parser_token_4__ident_x_27___closed__4; -x_108 = l___private_init_lean_parser_token_4__ident_x_27___closed__5; -x_109 = l___private_init_lean_parser_token_4__ident_x_27___closed__6; -x_110 = l___private_init_lean_parser_token_4__ident_x_27___closed__7; -x_111 = l___private_init_lean_parser_token_4__ident_x_27___closed__8; -x_112 = l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(x_102, x_103, x_104, x_105, x_106, x_107, x_104, x_104, x_105, x_105, x_108, x_108, x_109, x_110, x_111, x_0, x_99, x_4); -x_113 = lean::cnstr_get(x_112, 0); +x_105 = l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(x_102, x_103, x_104, x_0, x_99, x_4); +x_106 = lean::cnstr_get(x_105, 0); +lean::inc(x_106); +if (lean::obj_tag(x_106) == 0) +{ +obj* x_108; obj* x_111; obj* x_113; obj* x_115; obj* x_119; obj* x_120; +x_108 = lean::cnstr_get(x_105, 1); +lean::inc(x_108); +lean::dec(x_105); +x_111 = lean::cnstr_get(x_106, 0); +lean::inc(x_111); +x_113 = lean::cnstr_get(x_106, 1); lean::inc(x_113); -if (lean::obj_tag(x_113) == 0) -{ -obj* x_115; obj* x_118; obj* x_120; obj* x_122; obj* x_126; obj* x_127; -x_115 = lean::cnstr_get(x_112, 1); +x_115 = lean::cnstr_get(x_106, 2); lean::inc(x_115); -lean::dec(x_112); -x_118 = lean::cnstr_get(x_113, 0); -lean::inc(x_118); -x_120 = lean::cnstr_get(x_113, 1); -lean::inc(x_120); -x_122 = lean::cnstr_get(x_113, 2); -lean::inc(x_122); -lean::dec(x_113); +lean::dec(x_106); lean::inc(x_0); -x_126 = l_lean_parser_match__token(x_0, x_120, x_115); -x_127 = lean::cnstr_get(x_126, 0); -lean::inc(x_127); -if (lean::obj_tag(x_127) == 0) +x_119 = l_lean_parser_match__token(x_0, x_113, x_108); +x_120 = lean::cnstr_get(x_119, 0); +lean::inc(x_120); +if (lean::obj_tag(x_120) == 0) { -obj* x_129; obj* x_132; obj* x_134; obj* x_136; obj* x_139; obj* x_140; -x_129 = lean::cnstr_get(x_126, 1); +obj* x_122; obj* x_125; obj* x_127; obj* x_129; obj* x_132; obj* x_133; +x_122 = lean::cnstr_get(x_119, 1); +lean::inc(x_122); +lean::dec(x_119); +x_125 = lean::cnstr_get(x_120, 0); +lean::inc(x_125); +x_127 = lean::cnstr_get(x_120, 1); +lean::inc(x_127); +x_129 = lean::cnstr_get(x_120, 2); lean::inc(x_129); -lean::dec(x_126); -x_132 = lean::cnstr_get(x_127, 0); -lean::inc(x_132); -x_134 = lean::cnstr_get(x_127, 1); -lean::inc(x_134); -x_136 = lean::cnstr_get(x_127, 2); -lean::inc(x_136); +lean::dec(x_120); +if (lean::obj_tag(x_125) == 0) +{ +if (lean::obj_tag(x_111) == 0) +{ +obj* x_137; obj* x_138; obj* x_140; +lean::dec(x_111); +lean::inc(x_0); +x_137 = l_lean_parser_number__or__string__lit(x_0, x_127, x_122); +x_138 = lean::cnstr_get(x_137, 0); +lean::inc(x_138); +x_140 = lean::cnstr_get(x_137, 1); +lean::inc(x_140); +lean::dec(x_137); +x_132 = x_138; +x_133 = x_140; +goto lbl_134; +} +else +{ +obj* x_145; obj* x_146; obj* x_148; +lean::dec(x_111); +lean::inc(x_0); +x_145 = l___private_init_lean_parser_token_4__ident_x_27(x_0, x_127, x_122); +x_146 = lean::cnstr_get(x_145, 0); +lean::inc(x_146); +x_148 = lean::cnstr_get(x_145, 1); +lean::inc(x_148); +lean::dec(x_145); +x_132 = x_146; +x_133 = x_148; +goto lbl_134; +} +} +else +{ +obj* x_151; obj* x_154; +x_151 = lean::cnstr_get(x_125, 0); +lean::inc(x_151); +lean::dec(x_125); +x_154 = lean::cnstr_get(x_151, 2); +lean::inc(x_154); +if (lean::obj_tag(x_154) == 0) +{ +if (lean::obj_tag(x_111) == 0) +{ +obj* x_158; obj* x_161; obj* x_163; +lean::dec(x_111); +lean::inc(x_1); +x_158 = l___private_init_lean_parser_token_5__mk__consume__token(x_151, x_1, x_0, x_127, x_122); lean::dec(x_127); +lean::dec(x_151); +x_161 = lean::cnstr_get(x_158, 0); +lean::inc(x_161); +x_163 = lean::cnstr_get(x_158, 1); +lean::inc(x_163); +lean::dec(x_158); +x_132 = x_161; +x_133 = x_163; +goto lbl_134; +} +else +{ +obj* x_169; obj* x_171; obj* x_173; +lean::dec(x_111); +lean::inc(x_0); +lean::inc(x_1); +x_169 = l_lean_parser_token__cont(x_1, x_151, x_0, x_127, x_122); +lean::dec(x_151); +x_171 = lean::cnstr_get(x_169, 0); +lean::inc(x_171); +x_173 = lean::cnstr_get(x_169, 1); +lean::inc(x_173); +lean::dec(x_169); +x_132 = x_171; +x_133 = x_173; +goto lbl_134; +} +} +else +{ +obj* x_179; obj* x_180; obj* x_181; obj* x_183; obj* x_185; +lean::dec(x_154); +lean::dec(x_151); +lean::dec(x_111); +x_179 = lean::box(0); +x_180 = l_lean_parser_token___closed__1; +x_181 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_180, x_102, x_179, x_179, x_0, x_127, x_122); +lean::dec(x_127); +x_183 = lean::cnstr_get(x_181, 0); +lean::inc(x_183); +x_185 = lean::cnstr_get(x_181, 1); +lean::inc(x_185); +lean::dec(x_181); +x_132 = x_183; +x_133 = x_185; +goto lbl_134; +} +} +lbl_134: +{ if (lean::obj_tag(x_132) == 0) { -if (lean::obj_tag(x_118) == 0) -{ -obj* x_144; obj* x_145; obj* x_147; -lean::dec(x_118); -lean::inc(x_0); -x_144 = l_lean_parser_number__or__string__lit(x_0, x_134, x_129); -x_145 = lean::cnstr_get(x_144, 0); -lean::inc(x_145); -x_147 = lean::cnstr_get(x_144, 1); -lean::inc(x_147); -lean::dec(x_144); -x_139 = x_145; -x_140 = x_147; -goto lbl_141; -} -else -{ -obj* x_152; obj* x_153; obj* x_155; -lean::dec(x_118); -lean::inc(x_0); -x_152 = l___private_init_lean_parser_token_4__ident_x_27(x_0, x_134, x_129); -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); -x_139 = x_153; -x_140 = x_155; -goto lbl_141; -} -} -else -{ -obj* x_158; obj* x_161; -x_158 = lean::cnstr_get(x_132, 0); -lean::inc(x_158); -lean::dec(x_132); -x_161 = lean::cnstr_get(x_158, 2); -lean::inc(x_161); -if (lean::obj_tag(x_161) == 0) -{ -if (lean::obj_tag(x_118) == 0) -{ -obj* x_165; obj* x_168; obj* x_170; -lean::dec(x_118); -lean::inc(x_1); -x_165 = l___private_init_lean_parser_token_5__mk__consume__token(x_158, x_1, x_0, x_134, x_129); -lean::dec(x_134); -lean::dec(x_158); -x_168 = lean::cnstr_get(x_165, 0); -lean::inc(x_168); -x_170 = lean::cnstr_get(x_165, 1); -lean::inc(x_170); -lean::dec(x_165); -x_139 = x_168; -x_140 = x_170; -goto lbl_141; -} -else -{ -obj* x_176; obj* x_178; obj* x_180; -lean::dec(x_118); -lean::inc(x_0); -lean::inc(x_1); -x_176 = l_lean_parser_token__cont(x_1, x_158, x_0, x_134, x_129); -lean::dec(x_158); -x_178 = lean::cnstr_get(x_176, 0); -lean::inc(x_178); -x_180 = lean::cnstr_get(x_176, 1); -lean::inc(x_180); -lean::dec(x_176); -x_139 = x_178; -x_140 = x_180; -goto lbl_141; -} -} -else -{ -obj* x_186; obj* x_187; obj* x_188; obj* x_190; obj* x_192; -lean::dec(x_158); -lean::dec(x_161); -lean::dec(x_118); -x_186 = lean::box(0); -x_187 = l_lean_parser_token___closed__1; -x_188 = l_lean_parser_monad__parsec_error___at___private_init_lean_parser_token_1__finish__comment__block__aux___main___spec__1___rarg(x_187, x_102, x_186, x_186, x_0, x_134, x_129); -lean::dec(x_134); -x_190 = lean::cnstr_get(x_188, 0); +obj* x_188; obj* x_190; obj* x_192; obj* x_195; obj* x_197; +x_188 = lean::cnstr_get(x_132, 0); +lean::inc(x_188); +x_190 = lean::cnstr_get(x_132, 1); lean::inc(x_190); -x_192 = lean::cnstr_get(x_188, 1); +x_192 = lean::cnstr_get(x_132, 2); lean::inc(x_192); -lean::dec(x_188); -x_139 = x_190; -x_140 = x_192; -goto lbl_141; -} -} -lbl_141: -{ -if (lean::obj_tag(x_139) == 0) -{ -obj* x_195; obj* x_197; obj* x_199; obj* x_202; obj* x_204; -x_195 = lean::cnstr_get(x_139, 0); -lean::inc(x_195); -x_197 = lean::cnstr_get(x_139, 1); +lean::dec(x_132); +x_195 = l_lean_parser_with__trailing___at_lean_parser_token___spec__3(x_188, x_0, x_190, x_133); +lean::dec(x_0); +x_197 = lean::cnstr_get(x_195, 0); lean::inc(x_197); -x_199 = lean::cnstr_get(x_139, 2); -lean::inc(x_199); -lean::dec(x_139); -x_202 = l_lean_parser_with__trailing___at_lean_parser_token___spec__3(x_195, x_0, x_197, x_140); -lean::dec(x_0); -x_204 = lean::cnstr_get(x_202, 0); -lean::inc(x_204); -if (lean::obj_tag(x_204) == 0) +if (lean::obj_tag(x_197) == 0) { -obj* x_207; obj* x_209; obj* x_211; obj* x_213; obj* x_216; obj* x_217; obj* x_218; obj* x_220; obj* x_223; obj* x_224; obj* x_226; obj* x_227; obj* x_228; obj* x_229; obj* x_230; obj* x_231; obj* x_232; -lean::dec(x_202); -x_207 = lean::cnstr_get(x_204, 0); -x_209 = lean::cnstr_get(x_204, 1); -x_211 = lean::cnstr_get(x_204, 2); -if (lean::is_exclusive(x_204)) { - x_213 = x_204; +obj* x_200; obj* x_202; obj* x_204; obj* x_206; obj* x_209; obj* x_210; obj* x_211; obj* x_213; obj* x_216; obj* x_217; obj* x_219; obj* x_220; obj* x_221; obj* x_222; obj* x_223; obj* x_224; obj* x_225; +lean::dec(x_195); +x_200 = lean::cnstr_get(x_197, 0); +x_202 = lean::cnstr_get(x_197, 1); +x_204 = lean::cnstr_get(x_197, 2); +if (lean::is_exclusive(x_197)) { + x_206 = x_197; } else { - lean::inc(x_207); - lean::inc(x_209); - lean::inc(x_211); - lean::dec(x_204); - x_213 = lean::box(0); + lean::inc(x_200); + lean::inc(x_202); + lean::inc(x_204); + lean::dec(x_197); + x_206 = lean::box(0); } -lean::inc(x_207); -lean::inc(x_209); -x_216 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_216, 0, x_1); -lean::cnstr_set(x_216, 1, x_209); -lean::cnstr_set(x_216, 2, x_207); -x_217 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_217, 0, x_216); -x_218 = lean::cnstr_get(x_2, 1); -lean::inc(x_218); -x_220 = lean::cnstr_get(x_2, 2); -lean::inc(x_220); +lean::inc(x_200); +lean::inc(x_202); +x_209 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_209, 0, x_1); +lean::cnstr_set(x_209, 1, x_202); +lean::cnstr_set(x_209, 2, x_200); +x_210 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_210, 0, x_209); +x_211 = lean::cnstr_get(x_2, 1); +lean::inc(x_211); +x_213 = lean::cnstr_get(x_2, 2); +lean::inc(x_213); lean::dec(x_2); -x_223 = lean::mk_nat_obj(1u); -x_224 = lean::nat_add(x_220, x_223); -lean::dec(x_220); -x_226 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_226, 0, x_217); -lean::cnstr_set(x_226, 1, x_218); -lean::cnstr_set(x_226, 2, x_224); -x_227 = l_lean_parser_match__token___closed__1; -if (lean::is_scalar(x_213)) { - x_228 = lean::alloc_cnstr(0, 3, 0); +x_216 = lean::mk_nat_obj(1u); +x_217 = lean::nat_add(x_213, x_216); +lean::dec(x_213); +x_219 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_219, 0, x_210); +lean::cnstr_set(x_219, 1, x_211); +lean::cnstr_set(x_219, 2, x_217); +x_220 = l_lean_parser_match__token___closed__1; +if (lean::is_scalar(x_206)) { + x_221 = lean::alloc_cnstr(0, 3, 0); } else { - x_228 = x_213; + x_221 = x_206; } -lean::cnstr_set(x_228, 0, x_207); -lean::cnstr_set(x_228, 1, x_209); -lean::cnstr_set(x_228, 2, x_227); -x_229 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_211, x_228); -x_230 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_199, x_229); -x_231 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_136, x_230); -x_232 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_122, x_231); -x_96 = x_232; -x_97 = x_226; +lean::cnstr_set(x_221, 0, x_200); +lean::cnstr_set(x_221, 1, x_202); +lean::cnstr_set(x_221, 2, x_220); +x_222 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_204, x_221); +x_223 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_192, x_222); +x_224 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_223); +x_225 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_115, x_224); +x_96 = x_225; +x_97 = x_219; goto lbl_98; } else { -obj* x_235; obj* x_238; uint8 x_240; obj* x_241; obj* x_242; obj* x_243; obj* x_244; obj* x_245; obj* x_246; +obj* x_228; obj* x_231; uint8 x_233; obj* x_234; obj* x_235; obj* x_236; obj* x_237; obj* x_238; obj* x_239; lean::dec(x_1); lean::dec(x_2); -x_235 = lean::cnstr_get(x_202, 1); -lean::inc(x_235); -lean::dec(x_202); -x_238 = lean::cnstr_get(x_204, 0); -x_240 = lean::cnstr_get_scalar(x_204, sizeof(void*)*1); -if (lean::is_exclusive(x_204)) { - x_241 = x_204; +x_228 = lean::cnstr_get(x_195, 1); +lean::inc(x_228); +lean::dec(x_195); +x_231 = lean::cnstr_get(x_197, 0); +x_233 = lean::cnstr_get_scalar(x_197, sizeof(void*)*1); +if (lean::is_exclusive(x_197)) { + x_234 = x_197; } else { - lean::inc(x_238); - lean::dec(x_204); - x_241 = lean::box(0); + lean::inc(x_231); + lean::dec(x_197); + x_234 = lean::box(0); } -if (lean::is_scalar(x_241)) { - x_242 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_234)) { + x_235 = lean::alloc_cnstr(1, 1, 1); } else { - x_242 = x_241; + x_235 = x_234; } -lean::cnstr_set(x_242, 0, x_238); -lean::cnstr_set_scalar(x_242, sizeof(void*)*1, x_240); -x_243 = x_242; -x_244 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_199, x_243); -x_245 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_136, x_244); -x_246 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_122, x_245); -x_96 = x_246; -x_97 = x_235; +lean::cnstr_set(x_235, 0, x_231); +lean::cnstr_set_scalar(x_235, sizeof(void*)*1, x_233); +x_236 = x_235; +x_237 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_192, x_236); +x_238 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_237); +x_239 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_115, x_238); +x_96 = x_239; +x_97 = x_228; goto lbl_98; } } else { -obj* x_250; uint8 x_252; obj* x_253; obj* x_254; obj* x_255; obj* x_256; obj* x_257; +obj* x_243; uint8 x_245; obj* x_246; obj* x_247; obj* x_248; obj* x_249; obj* x_250; lean::dec(x_1); lean::dec(x_0); lean::dec(x_2); -x_250 = lean::cnstr_get(x_139, 0); -x_252 = lean::cnstr_get_scalar(x_139, sizeof(void*)*1); -if (lean::is_exclusive(x_139)) { - x_253 = x_139; +x_243 = lean::cnstr_get(x_132, 0); +x_245 = lean::cnstr_get_scalar(x_132, sizeof(void*)*1); +if (lean::is_exclusive(x_132)) { + x_246 = x_132; } else { - lean::inc(x_250); - lean::dec(x_139); - x_253 = lean::box(0); + lean::inc(x_243); + lean::dec(x_132); + x_246 = lean::box(0); } -if (lean::is_scalar(x_253)) { - x_254 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_246)) { + x_247 = lean::alloc_cnstr(1, 1, 1); } else { - x_254 = x_253; + x_247 = x_246; } -lean::cnstr_set(x_254, 0, x_250); -lean::cnstr_set_scalar(x_254, sizeof(void*)*1, x_252); -x_255 = x_254; -x_256 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_136, x_255); -x_257 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_122, x_256); -x_96 = x_257; -x_97 = x_140; +lean::cnstr_set(x_247, 0, x_243); +lean::cnstr_set_scalar(x_247, sizeof(void*)*1, x_245); +x_248 = x_247; +x_249 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_129, x_248); +x_250 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_115, x_249); +x_96 = x_250; +x_97 = x_133; goto lbl_98; } } } else { -obj* x_262; obj* x_265; uint8 x_267; obj* x_268; obj* x_269; obj* x_270; obj* x_271; +obj* x_255; obj* x_258; uint8 x_260; obj* x_261; obj* x_262; obj* x_263; obj* x_264; lean::dec(x_1); lean::dec(x_0); lean::dec(x_2); -lean::dec(x_118); -x_262 = lean::cnstr_get(x_126, 1); -lean::inc(x_262); -lean::dec(x_126); -x_265 = lean::cnstr_get(x_127, 0); -x_267 = lean::cnstr_get_scalar(x_127, sizeof(void*)*1); -if (lean::is_exclusive(x_127)) { - x_268 = x_127; +lean::dec(x_111); +x_255 = lean::cnstr_get(x_119, 1); +lean::inc(x_255); +lean::dec(x_119); +x_258 = lean::cnstr_get(x_120, 0); +x_260 = lean::cnstr_get_scalar(x_120, sizeof(void*)*1); +if (lean::is_exclusive(x_120)) { + x_261 = x_120; } else { - lean::inc(x_265); - lean::dec(x_127); - x_268 = lean::box(0); + lean::inc(x_258); + lean::dec(x_120); + x_261 = lean::box(0); } -if (lean::is_scalar(x_268)) { - x_269 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_261)) { + x_262 = lean::alloc_cnstr(1, 1, 1); } else { - x_269 = x_268; + x_262 = x_261; } -lean::cnstr_set(x_269, 0, x_265); -lean::cnstr_set_scalar(x_269, sizeof(void*)*1, x_267); -x_270 = x_269; -x_271 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_122, x_270); -x_96 = x_271; -x_97 = x_262; +lean::cnstr_set(x_262, 0, x_258); +lean::cnstr_set_scalar(x_262, sizeof(void*)*1, x_260); +x_263 = x_262; +x_264 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_115, x_263); +x_96 = x_264; +x_97 = x_255; goto lbl_98; } } else { -obj* x_275; obj* x_278; uint8 x_280; obj* x_281; obj* x_282; obj* x_283; +obj* x_268; obj* x_271; uint8 x_273; obj* x_274; obj* x_275; obj* x_276; lean::dec(x_1); lean::dec(x_0); lean::dec(x_2); -x_275 = lean::cnstr_get(x_112, 1); -lean::inc(x_275); -lean::dec(x_112); -x_278 = lean::cnstr_get(x_113, 0); -x_280 = lean::cnstr_get_scalar(x_113, sizeof(void*)*1); -if (lean::is_exclusive(x_113)) { - x_281 = x_113; +x_268 = lean::cnstr_get(x_105, 1); +lean::inc(x_268); +lean::dec(x_105); +x_271 = lean::cnstr_get(x_106, 0); +x_273 = lean::cnstr_get_scalar(x_106, sizeof(void*)*1); +if (lean::is_exclusive(x_106)) { + x_274 = x_106; } else { - lean::inc(x_278); - lean::dec(x_113); - x_281 = lean::box(0); + lean::inc(x_271); + lean::dec(x_106); + x_274 = lean::box(0); } -if (lean::is_scalar(x_281)) { - x_282 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_274)) { + x_275 = lean::alloc_cnstr(1, 1, 1); } else { - x_282 = x_281; + x_275 = x_274; } -lean::cnstr_set(x_282, 0, x_278); -lean::cnstr_set_scalar(x_282, sizeof(void*)*1, x_280); -x_283 = x_282; -x_96 = x_283; -x_97 = x_275; +lean::cnstr_set(x_275, 0, x_271); +lean::cnstr_set_scalar(x_275, sizeof(void*)*1, x_273); +x_276 = x_275; +x_96 = x_276; +x_97 = x_268; goto lbl_98; } lbl_98: { if (lean::obj_tag(x_96) == 0) { -obj* x_284; obj* x_285; obj* x_286; obj* x_287; -x_284 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_285 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_284, x_96); -x_286 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_284, x_285); -x_287 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_287, 0, x_286); -lean::cnstr_set(x_287, 1, x_97); -return x_287; +obj* x_277; obj* x_278; obj* x_279; obj* x_280; +x_277 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_278 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_277, x_96); +x_279 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_277, x_278); +x_280 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_280, 0, x_279); +lean::cnstr_set(x_280, 1, x_97); +return x_280; } else { -uint8 x_288; -x_288 = lean::cnstr_get_scalar(x_96, sizeof(void*)*1); +uint8 x_281; +x_281 = lean::cnstr_get_scalar(x_96, sizeof(void*)*1); if (x_94 == 0) { -obj* x_289; obj* x_291; obj* x_292; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; -x_289 = lean::cnstr_get(x_96, 0); +obj* x_282; obj* x_284; obj* x_285; obj* x_286; obj* x_287; obj* x_288; obj* x_289; obj* x_290; +x_282 = lean::cnstr_get(x_96, 0); if (lean::is_exclusive(x_96)) { - x_291 = x_96; + x_284 = x_96; } else { - lean::inc(x_289); + lean::inc(x_282); lean::dec(x_96); - x_291 = lean::box(0); + x_284 = lean::box(0); } -if (lean::is_scalar(x_291)) { - x_292 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_284)) { + x_285 = lean::alloc_cnstr(1, 1, 1); } else { - x_292 = x_291; + x_285 = x_284; } -lean::cnstr_set(x_292, 0, x_289); -lean::cnstr_set_scalar(x_292, sizeof(void*)*1, x_288); -x_293 = x_292; -x_294 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_295 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_294, x_293); -x_296 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_294, x_295); -x_297 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_297, 0, x_296); -lean::cnstr_set(x_297, 1, x_97); -return x_297; +lean::cnstr_set(x_285, 0, x_282); +lean::cnstr_set_scalar(x_285, sizeof(void*)*1, x_281); +x_286 = x_285; +x_287 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_288 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_287, x_286); +x_289 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_287, x_288); +x_290 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_290, 0, x_289); +lean::cnstr_set(x_290, 1, x_97); +return x_290; } else { -obj* x_298; obj* x_300; obj* x_301; obj* x_302; obj* x_303; obj* x_304; obj* x_305; obj* x_306; -x_298 = lean::cnstr_get(x_96, 0); +obj* x_291; obj* x_293; obj* x_294; obj* x_295; obj* x_296; obj* x_297; obj* x_298; obj* x_299; +x_291 = lean::cnstr_get(x_96, 0); if (lean::is_exclusive(x_96)) { - x_300 = x_96; + x_293 = x_96; } else { - lean::inc(x_298); + lean::inc(x_291); lean::dec(x_96); - x_300 = lean::box(0); + x_293 = lean::box(0); } -if (lean::is_scalar(x_300)) { - x_301 = lean::alloc_cnstr(1, 1, 1); +if (lean::is_scalar(x_293)) { + x_294 = lean::alloc_cnstr(1, 1, 1); } else { - x_301 = x_300; + x_294 = x_293; } -lean::cnstr_set(x_301, 0, x_298); -lean::cnstr_set_scalar(x_301, sizeof(void*)*1, x_94); -x_302 = x_301; -x_303 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; -x_304 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_303, x_302); -x_305 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_303, x_304); -x_306 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_306, 0, x_305); -lean::cnstr_set(x_306, 1, x_97); -return x_306; +lean::cnstr_set(x_294, 0, x_291); +lean::cnstr_set_scalar(x_294, sizeof(void*)*1, x_94); +x_295 = x_294; +x_296 = l_lean_parser_parsec_result_mk__eps___rarg___closed__1; +x_297 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_296, x_295); +x_298 = l_lean_parser_parsec__t_bind__mk__res___rarg(x_296, x_297); +x_299 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_299, 0, x_298); +lean::cnstr_set(x_299, 1, x_97); +return x_299; } } } @@ -22607,26 +22491,14 @@ lean::dec(x_2); return x_5; } } -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12, obj* x_13, obj* x_14, obj* x_15, obj* x_16, obj* x_17) { +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { -obj* x_18; -x_18 = l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); +obj* x_6; +x_6 = l_lean_parser_monad__parsec_observing___at_lean_parser_token___spec__2(x_0, x_1, x_2, x_3, x_4, x_5); lean::dec(x_2); lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -lean::dec(x_10); -lean::dec(x_11); -lean::dec(x_12); -lean::dec(x_13); -lean::dec(x_14); -lean::dec(x_15); -return x_18; +return x_6; } } obj* l_lean_parser_with__trailing___at_lean_parser_token___spec__3___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { @@ -22827,12 +22699,12 @@ return x_38; } } } -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(obj* x_0) { _start: { -obj* x_13; -x_13 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___rarg), 3, 0); -return x_13; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___rarg), 3, 0); +return x_1; } } obj* l_lean_parser_peek__token(obj* x_0, obj* x_1, obj* x_2) { @@ -22843,25 +22715,13 @@ x_3 = l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec_ return x_3; } } -obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___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, obj* x_8, obj* x_9, obj* x_10, obj* x_11, obj* x_12) { +obj* l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2___boxed(obj* x_0) { _start: { -obj* x_13; -x_13 = l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(x_0, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +obj* x_1; +x_1 = l_lean_parser_monad__parsec_observing___at_lean_parser_peek__token___spec__2(x_0); lean::dec(x_0); -lean::dec(x_1); -lean::dec(x_2); -lean::dec(x_3); -lean::dec(x_4); -lean::dec(x_5); -lean::dec(x_6); -lean::dec(x_7); -lean::dec(x_8); -lean::dec(x_9); -lean::dec(x_10); -lean::dec(x_11); -lean::dec(x_12); -return x_13; +return x_1; } } obj* l_lean_parser_symbol__core___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { @@ -27174,7 +27034,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -27226,7 +27086,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -27243,7 +27103,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -27260,7 +27120,7 @@ _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), lean::box(0), x_0, x_1); +x_3 = l_rbnode_find___main___at_lean_name__map_contains___spec__2(x_2, lean::box(0), x_0, x_1); return x_3; } } @@ -27669,8 +27529,6 @@ lean::mark_persistent(l___private_init_lean_parser_token_2__whitespace__aux___ma lean::mark_persistent(l___private_init_lean_parser_token_2__whitespace__aux___main___closed__3); l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4 = _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4(); lean::mark_persistent(l___private_init_lean_parser_token_2__whitespace__aux___main___closed__4); - l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5 = _init_l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5(); -lean::mark_persistent(l___private_init_lean_parser_token_2__whitespace__aux___main___closed__5); l_lean_parser_with__trailing___rarg___closed__1 = _init_l_lean_parser_with__trailing___rarg___closed__1(); lean::mark_persistent(l_lean_parser_with__trailing___rarg___closed__1); l_lean_parser_raw_view___rarg___lambda__2___closed__1 = _init_l_lean_parser_raw_view___rarg___lambda__2___closed__1(); @@ -27749,20 +27607,6 @@ lean::mark_persistent(l_lean_parser_detail__ident_x_27___closed__1); lean::mark_persistent(l_lean_parser_detail__ident_parser___closed__1); l___private_init_lean_parser_token_4__ident_x_27___closed__1 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__1(); lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__1); - l___private_init_lean_parser_token_4__ident_x_27___closed__2 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__2(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__2); - l___private_init_lean_parser_token_4__ident_x_27___closed__3 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__3(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__3); - l___private_init_lean_parser_token_4__ident_x_27___closed__4 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__4(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__4); - l___private_init_lean_parser_token_4__ident_x_27___closed__5 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__5(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__5); - l___private_init_lean_parser_token_4__ident_x_27___closed__6 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__6(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__6); - l___private_init_lean_parser_token_4__ident_x_27___closed__7 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__7(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__7); - l___private_init_lean_parser_token_4__ident_x_27___closed__8 = _init_l___private_init_lean_parser_token_4__ident_x_27___closed__8(); -lean::mark_persistent(l___private_init_lean_parser_token_4__ident_x_27___closed__8); l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_parse__bin__lit___spec__2___closed__1 = _init_l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_parse__bin__lit___spec__2___closed__1(); lean::mark_persistent(l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_parse__bin__lit___spec__2___closed__1); l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_parse__bin__lit___spec__2___closed__2 = _init_l_lean_parser_monad__parsec_many1__aux_x_27___main___at_lean_parser_parse__bin__lit___spec__2___closed__2(); diff --git a/src/boot/init/lean/parser/trie.cpp b/src/boot/init/lean/parser/trie.cpp index 5a1c6531af..3c89111621 100644 --- a/src/boot/init/lean/parser/trie.cpp +++ b/src/boot/init/lean/parser/trie.cpp @@ -19,7 +19,7 @@ obj* l_rbnode_find___main___at___private_init_lean_parser_trie_1__insert__aux___ obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg___boxed(obj*, obj*, obj*); obj* l_lean_parser_trie_has__to__string(obj*); obj* l_lean_format_join__sep___main___at___private_init_lean_parser_trie_4__to__string__aux___main___spec__1(obj*, obj*); -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(obj*, obj*); +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(obj*); obj* l___private_init_lean_parser_trie_1__insert__aux___main(obj*); obj* l_lean_parser_trie_match__prefix___rarg(obj*, obj*); obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___rarg___boxed(obj*, obj*, obj*); @@ -77,7 +77,7 @@ obj* l_lean_format_pretty(obj*, obj*); obj* l___private_init_lean_parser_trie_4__to__string__aux___boxed(obj*); obj* l_rbnode_insert___at___private_init_lean_parser_trie_1__insert__aux___main___spec__2___rarg(obj*, uint32, obj*); obj* l_rbnode_find___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__1(obj*); -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___boxed(obj*); obj* l_string_mk__iterator(obj*); obj* l_rbnode_balance1___main___rarg(obj*, obj*); obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg(obj*, uint32, obj*); @@ -85,7 +85,7 @@ obj* l___private_init_lean_parser_trie_1__insert__aux___main___boxed(obj*); uint32 l_string_iterator_curr___main(obj*); obj* l___private_init_lean_parser_trie_2__find__aux___boxed(obj*); obj* l_lean_parser_trie_mk___boxed(obj*); -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___boxed(obj*, obj*); +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___boxed(obj*); obj* l_lean_to__fmt___at___private_init_lean_parser_trie_4__to__string__aux___main___spec__2(obj*); obj* l___private_init_lean_parser_trie_3__match__prefix__aux___main___boxed(obj*); namespace lean { @@ -96,7 +96,7 @@ obj* l___private_init_lean_parser_trie_3__match__prefix__aux___main(obj*); uint8 l_rbnode_is__red___main___rarg(obj*); obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___rarg(obj*, uint32, obj*); obj* l_rbnode_fold___main___at___private_init_lean_parser_trie_4__to__string__aux___main___spec__3___rarg___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(obj*, obj*); +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(obj*); obj* l_string_iterator_next___main(obj*); obj* l_rbnode_insert___at___private_init_lean_parser_trie_1__insert__aux___main___spec__2___boxed(obj*); obj* l_rbnode_fold___main___at___private_init_lean_parser_trie_4__to__string__aux___main___spec__3___rarg(obj*, obj*); @@ -431,12 +431,12 @@ return x_63; } } } -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(obj* x_0) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___rarg___boxed), 3, 0); -return x_2; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___rarg___boxed), 3, 0); +return x_1; } } obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg(obj* x_0, uint32 x_1, obj* x_2) { @@ -673,12 +673,12 @@ return x_63; } } } -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(obj* x_0) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg___boxed), 3, 0); -return x_2; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg___boxed), 3, 0); +return x_1; } } obj* l_rbnode_insert___at___private_init_lean_parser_trie_1__insert__aux___main___spec__2___rarg(obj* x_0, uint32 x_1, obj* x_2) { @@ -810,14 +810,13 @@ x_4 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___ return x_4; } } -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3___boxed(obj* x_0) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(x_0, x_1); +obj* x_1; +x_1 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__3(x_0); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_1; } } obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { @@ -829,14 +828,13 @@ x_4 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___ return x_4; } } -obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___boxed(obj* x_0, obj* x_1) { +obj* l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4___boxed(obj* x_0) { _start: { -obj* x_2; -x_2 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(x_0, x_1); +obj* x_1; +x_1 = l_rbnode_ins___main___at___private_init_lean_parser_trie_1__insert__aux___main___spec__4(x_0); lean::dec(x_0); -lean::dec(x_1); -return x_2; +return x_1; } } obj* l_rbnode_insert___at___private_init_lean_parser_trie_1__insert__aux___main___spec__2___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { diff --git a/src/boot/init/lean/position.cpp b/src/boot/init/lean/position.cpp index d0f88b002a..e7f50dd150 100644 --- a/src/boot/init/lean/position.cpp +++ b/src/boot/init/lean/position.cpp @@ -16,7 +16,6 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #endif obj* l___private_init_lean_position_1__from__string__aux(obj*, obj*, obj*); uint8 l_prod__has__decidable__lt___rarg(obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___boxed(obj*); namespace lean { obj* nat_add(obj*, obj*); } @@ -24,37 +23,28 @@ obj* l_lean_position_lean_has__to__format___closed__1; obj* l_rbmap_of__list___main___at_lean_file__map_from__string___spec__1(obj*); obj* l___private_init_lean_position_1__from__string__aux___main(obj*, obj*, obj*); obj* l_lean_position_lean_has__to__format(obj*); -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2___boxed(obj*); namespace lean { obj* string_length(obj*); } obj* l_lean_position_has__lt; obj* l_lean_position_decidable__lt___boxed(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5(obj*); -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___boxed(obj*); +obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___boxed(obj*, obj*, obj*); obj* l_lean_position_lean_has__to__format___closed__2; -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3___boxed(obj*); uint8 l_lean_position_decidable__lt(obj*, obj*); obj* l_lean_position_decidable__lt___main___boxed(obj*, obj*); -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2(obj*); -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg(obj*, obj*, obj*); +obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2(obj*, obj*, obj*); namespace lean { uint8 nat_dec_eq(obj*, obj*); } obj* l_lean_position_decidable__lt___main___closed__2; obj* l_nat_dec__eq___boxed(obj*, obj*); obj* l_rbnode_balance2___main___rarg(obj*, obj*); -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2___rarg(obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___boxed(obj*); -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg___boxed(obj*, obj*, obj*); obj* l_lean_file__map_from__string(obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(obj*, obj*, obj*); obj* l_lean_to__fmt___at_lean_position_lean_has__to__format___spec__1(obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(obj*); -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3___rarg(obj*, obj*, obj*); +obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(obj*, obj*, obj*); obj* l_lean_position_lean_has__to__format___closed__3; -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(obj*); -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3(obj*); +obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(obj*, obj*, obj*); +obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3(obj*, obj*, obj*); obj* l_string_mk__iterator(obj*); obj* l_rbnode_balance1___main___rarg(obj*, obj*); uint32 l_string_iterator_curr___main(obj*); @@ -66,7 +56,6 @@ namespace lean { uint32 uint32_of_nat(obj*); } uint8 l_lean_position_decidable__lt___main(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(obj*, obj*, obj*); namespace lean { obj* nat_sub(obj*, obj*); } @@ -386,7 +375,7 @@ lean::dec(x_2); return x_3; } } -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(obj* x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_0) == 0) @@ -453,7 +442,7 @@ return x_21; else { obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_13, x_1, x_2); +x_22 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_13, x_1, x_2); if (lean::is_scalar(x_15)) { x_23 = lean::alloc_cnstr(1, 4, 1); } else { @@ -471,7 +460,7 @@ return x_24; else { obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_7, x_1, x_2); +x_25 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_7, x_1, x_2); if (lean::is_scalar(x_15)) { x_26 = lean::alloc_cnstr(1, 4, 1); } else { @@ -537,7 +526,7 @@ x_43 = l_rbnode_is__red___main___rarg(x_34); if (x_43 == 0) { obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_34, x_1, x_2); +x_44 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_34, x_1, x_2); if (lean::is_scalar(x_36)) { x_45 = lean::alloc_cnstr(1, 4, 1); } else { @@ -566,7 +555,7 @@ lean::cnstr_set(x_48, 2, x_32); lean::cnstr_set(x_48, 3, x_47); lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_34, x_1, x_2); +x_50 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_34, x_1, x_2); x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); return x_51; } @@ -579,7 +568,7 @@ x_52 = l_rbnode_is__red___main___rarg(x_28); if (x_52 == 0) { obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_28, x_1, x_2); +x_53 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_28, x_1, x_2); if (lean::is_scalar(x_36)) { x_54 = lean::alloc_cnstr(1, 4, 1); } else { @@ -608,7 +597,7 @@ lean::cnstr_set(x_57, 2, x_32); lean::cnstr_set(x_57, 3, x_34); lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_28, x_1, x_2); +x_59 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_28, x_1, x_2); x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); return x_60; } @@ -617,254 +606,7 @@ return x_60; } } } -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_16; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -x_16 = lean::nat_dec_lt(x_1, x_9); -if (x_16 == 0) -{ -uint8 x_17; -x_17 = lean::nat_dec_lt(x_9, x_1); -if (x_17 == 0) -{ -obj* x_20; obj* x_21; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_20 = lean::alloc_cnstr(1, 4, 1); -} else { - x_20 = x_15; -} -lean::cnstr_set(x_20, 0, x_7); -lean::cnstr_set(x_20, 1, x_1); -lean::cnstr_set(x_20, 2, x_2); -lean::cnstr_set(x_20, 3, x_13); -lean::cnstr_set_scalar(x_20, sizeof(void*)*4, x_6); -x_21 = x_20; -return x_21; -} -else -{ -obj* x_22; obj* x_23; obj* x_24; -x_22 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_23 = lean::alloc_cnstr(1, 4, 1); -} else { - x_23 = x_15; -} -lean::cnstr_set(x_23, 0, x_7); -lean::cnstr_set(x_23, 1, x_9); -lean::cnstr_set(x_23, 2, x_11); -lean::cnstr_set(x_23, 3, x_22); -lean::cnstr_set_scalar(x_23, sizeof(void*)*4, x_6); -x_24 = x_23; -return x_24; -} -} -else -{ -obj* x_25; obj* x_26; obj* x_27; -x_25 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_26 = lean::alloc_cnstr(1, 4, 1); -} else { - x_26 = x_15; -} -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_9); -lean::cnstr_set(x_26, 2, x_11); -lean::cnstr_set(x_26, 3, x_13); -lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); -x_27 = x_26; -return x_27; -} -} -else -{ -obj* x_28; obj* x_30; obj* x_32; obj* x_34; obj* x_36; uint8 x_37; -x_28 = lean::cnstr_get(x_0, 0); -x_30 = lean::cnstr_get(x_0, 1); -x_32 = lean::cnstr_get(x_0, 2); -x_34 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_36 = x_0; -} else { - lean::inc(x_28); - lean::inc(x_30); - lean::inc(x_32); - lean::inc(x_34); - lean::dec(x_0); - x_36 = lean::box(0); -} -x_37 = lean::nat_dec_lt(x_1, x_30); -if (x_37 == 0) -{ -uint8 x_38; -x_38 = lean::nat_dec_lt(x_30, x_1); -if (x_38 == 0) -{ -obj* x_41; obj* x_42; -lean::dec(x_30); -lean::dec(x_32); -if (lean::is_scalar(x_36)) { - x_41 = lean::alloc_cnstr(1, 4, 1); -} else { - x_41 = x_36; -} -lean::cnstr_set(x_41, 0, x_28); -lean::cnstr_set(x_41, 1, x_1); -lean::cnstr_set(x_41, 2, x_2); -lean::cnstr_set(x_41, 3, x_34); -lean::cnstr_set_scalar(x_41, sizeof(void*)*4, x_6); -x_42 = x_41; -return x_42; -} -else -{ -uint8 x_43; -x_43 = l_rbnode_is__red___main___rarg(x_34); -if (x_43 == 0) -{ -obj* x_44; obj* x_45; obj* x_46; -x_44 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_34, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_45 = lean::alloc_cnstr(1, 4, 1); -} else { - x_45 = x_36; -} -lean::cnstr_set(x_45, 0, x_28); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_32); -lean::cnstr_set(x_45, 3, x_44); -lean::cnstr_set_scalar(x_45, sizeof(void*)*4, x_6); -x_46 = x_45; -return x_46; -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; -x_47 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_48 = lean::alloc_cnstr(1, 4, 1); -} else { - x_48 = x_36; -} -lean::cnstr_set(x_48, 0, x_28); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_32); -lean::cnstr_set(x_48, 3, x_47); -lean::cnstr_set_scalar(x_48, sizeof(void*)*4, x_6); -x_49 = x_48; -x_50 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_34, x_1, x_2); -x_51 = l_rbnode_balance2___main___rarg(x_49, x_50); -return x_51; -} -} -} -else -{ -uint8 x_52; -x_52 = l_rbnode_is__red___main___rarg(x_28); -if (x_52 == 0) -{ -obj* x_53; obj* x_54; obj* x_55; -x_53 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_28, x_1, x_2); -if (lean::is_scalar(x_36)) { - x_54 = lean::alloc_cnstr(1, 4, 1); -} else { - x_54 = x_36; -} -lean::cnstr_set(x_54, 0, x_53); -lean::cnstr_set(x_54, 1, x_30); -lean::cnstr_set(x_54, 2, x_32); -lean::cnstr_set(x_54, 3, x_34); -lean::cnstr_set_scalar(x_54, sizeof(void*)*4, x_6); -x_55 = x_54; -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; -x_56 = lean::box(0); -if (lean::is_scalar(x_36)) { - x_57 = lean::alloc_cnstr(1, 4, 1); -} else { - x_57 = x_36; -} -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_30); -lean::cnstr_set(x_57, 2, x_32); -lean::cnstr_set(x_57, 3, x_34); -lean::cnstr_set_scalar(x_57, sizeof(void*)*4, x_6); -x_58 = x_57; -x_59 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_28, x_1, x_2); -x_60 = l_rbnode_balance1___main___rarg(x_58, x_59); -return x_60; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; @@ -872,42 +614,26 @@ x_3 = l_rbnode_is__red___main___rarg(x_0); if (x_3 == 0) { obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___rarg(x_0, x_1, x_2); +x_4 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_0, x_1, x_2); return x_4; } else { obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___rarg(x_0, x_1, x_2); +x_5 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_0, x_1, x_2); x_6 = l_rbnode_set__black___main___rarg(x_5); return x_6; } } } -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_file__map_from__string___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_rbnode_insert___at_lean_file__map_from__string___spec__3___rarg(x_0, x_1, x_2); +x_3 = l_rbnode_insert___at_lean_file__map_from__string___spec__3(x_0, x_1, x_2); return x_3; } } -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbmap_insert___main___at_lean_file__map_from__string___spec__2___rarg), 3, 0); -return x_1; -} -} obj* l_rbmap_of__list___main___at_lean_file__map_from__string___spec__1(obj* x_0) { _start: { @@ -931,7 +657,7 @@ x_9 = lean::cnstr_get(x_2, 1); lean::inc(x_9); lean::dec(x_2); x_12 = l_rbmap_of__list___main___at_lean_file__map_from__string___spec__1(x_4); -x_13 = l_rbnode_insert___at_lean_file__map_from__string___spec__3___rarg(x_12, x_7, x_9); +x_13 = l_rbnode_insert___at_lean_file__map_from__string___spec__3(x_12, x_7, x_9); return x_13; } } @@ -948,43 +674,7 @@ x_5 = l_rbmap_of__list___main___at_lean_file__map_from__string___spec__1(x_4); return x_5; } } -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__4___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__4(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_file__map_from__string___spec__5___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_file__map_from__string___spec__5(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_file__map_from__string___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_insert___at_lean_file__map_from__string___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbmap_insert___main___at_lean_file__map_from__string___spec__2___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbmap_insert___main___at_lean_file__map_from__string___spec__2(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(obj* x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_0) == 0) @@ -1045,20 +735,12 @@ goto _start; } } } -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg___boxed), 3, 0); -return x_1; -} -} obj* l_rbmap_lower__bound___main___at_lean_file__map_to__position___spec__1(obj* x_0, obj* x_1) { _start: { obj* x_2; obj* x_3; x_2 = lean::box(0); -x_3 = l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg(x_0, x_1, x_2); +x_3 = l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(x_0, x_1, x_2); return x_3; } } @@ -1097,24 +779,15 @@ return x_16; } } } -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___rarg(x_0, x_1, x_2); +x_3 = l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(x_0, x_1, x_2); lean::dec(x_1); return x_3; } } -obj* l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_lower__bound___main___at_lean_file__map_to__position___spec__2(x_0); -lean::dec(x_0); -return x_1; -} -} obj* l_rbmap_lower__bound___main___at_lean_file__map_to__position___spec__1___boxed(obj* x_0, obj* x_1) { _start: { diff --git a/src/boot/init/lean/trace.cpp b/src/boot/init/lean/trace.cpp index 29e8ff29b3..2435708b19 100644 --- a/src/boot/init/lean/trace.cpp +++ b/src/boot/init/lean/trace.cpp @@ -14,17 +14,13 @@ 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_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___boxed(obj*); obj* l_lean_trace_trace___rarg___lambda__1(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__7(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__5___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4(obj*); -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5(obj*); obj* l_lean_trace_pp___main(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__9(obj*, obj*, obj*, obj*, obj*, obj*, obj*); extern obj* l_lean_format_join___closed__1; -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___boxed(obj*); obj* l_lean_trace_trace___rarg___lambda__1___boxed(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__1(obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__3___boxed(obj*, obj*, obj*, obj*, obj*, obj*); @@ -34,25 +30,25 @@ obj* l_lean_trace_trace__t_run(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__12___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_kvmap_get__bool(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer(obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(obj*); +obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__10(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___lambda__1(obj*, obj*, obj*); obj* l_lean_trace_trace__t_run___boxed(obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__2(obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__11(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__12(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_trace___boxed(obj*); +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_trace__t_run___rarg___lambda__1(obj*, obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_trace_lean_trace_monad__tracer___spec__1(obj*, obj*, obj*); obj* l_rbnode_balance2___main___rarg(obj*, obj*); obj* l_lean_trace_monad(obj*); +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___lambda__1(obj*, obj*, obj*); obj* l_lean_trace_trace___rarg(obj*, obj*, obj*, obj*); obj* l_lean_has__coe(obj*); obj* l_state__t_monad___rarg(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__4___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__5(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_trace(obj*); obj* l_list_foldl___main___at_lean_format_join___spec__1(obj*, obj*); @@ -61,23 +57,20 @@ obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__3(obj*, obj*, obj*, obj* l_rbnode_balance1___main___rarg(obj*, obj*); obj* l_lean_trace_trace__t_run___rarg(obj*, obj*, obj*); obj* l_lean_trace_monad___rarg(obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___boxed(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__9___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___boxed(obj*); obj* l_lean_has__coe___boxed(obj*); uint8 l_lean_position_decidable__lt___main(obj*, obj*); -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___rarg(obj*, obj*, obj*); obj* l_lean_trace_monad___boxed(obj*); +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4(obj*); uint8 l_rbnode_is__red___main___rarg(obj*); obj* l_lean_trace_pp(obj*); obj* l_list_append___rarg(obj*, obj*); -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(obj*); +obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(obj*, obj*, obj*); obj* l_list_map___main___at_lean_trace_pp___main___spec__1(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__10___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_lean_trace_lean_trace_monad__tracer___boxed(obj*); obj* l_lean_trace_lean_trace_monad__tracer___rarg___lambda__6(obj*, obj*, obj*); obj* l_rbnode_set__black___main___rarg(obj*); -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___boxed(obj*); obj* l_lean_has__coe(obj* x_0) { _start: { @@ -249,7 +242,7 @@ lean::dec(x_0); return x_1; } } -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(obj* x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_0) == 0) @@ -320,7 +313,7 @@ return x_25; else { obj* x_26; obj* x_27; obj* x_28; -x_26 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_13, x_1, x_2); +x_26 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_13, x_1, x_2); if (lean::is_scalar(x_15)) { x_27 = lean::alloc_cnstr(1, 4, 1); } else { @@ -338,7 +331,7 @@ return x_28; else { obj* x_29; obj* x_30; obj* x_31; -x_29 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_7, x_1, x_2); +x_29 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_7, x_1, x_2); if (lean::is_scalar(x_15)) { x_30 = lean::alloc_cnstr(1, 4, 1); } else { @@ -408,7 +401,7 @@ x_51 = l_rbnode_is__red___main___rarg(x_38); if (x_51 == 0) { obj* x_52; obj* x_53; obj* x_54; -x_52 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_38, x_1, x_2); +x_52 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_38, x_1, x_2); if (lean::is_scalar(x_40)) { x_53 = lean::alloc_cnstr(1, 4, 1); } else { @@ -437,7 +430,7 @@ lean::cnstr_set(x_56, 2, x_36); lean::cnstr_set(x_56, 3, x_55); lean::cnstr_set_scalar(x_56, sizeof(void*)*4, x_6); x_57 = x_56; -x_58 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_38, x_1, x_2); +x_58 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_38, x_1, x_2); x_59 = l_rbnode_balance2___main___rarg(x_57, x_58); return x_59; } @@ -450,7 +443,7 @@ x_60 = l_rbnode_is__red___main___rarg(x_32); if (x_60 == 0) { obj* x_61; obj* x_62; obj* x_63; -x_61 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_32, x_1, x_2); +x_61 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_32, x_1, x_2); if (lean::is_scalar(x_40)) { x_62 = lean::alloc_cnstr(1, 4, 1); } else { @@ -479,7 +472,7 @@ lean::cnstr_set(x_65, 2, x_36); lean::cnstr_set(x_65, 3, x_38); lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_6); x_66 = x_65; -x_67 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_32, x_1, x_2); +x_67 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_32, x_1, x_2); x_68 = l_rbnode_balance1___main___rarg(x_66, x_67); return x_68; } @@ -488,262 +481,7 @@ return x_68; } } } -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_0) == 0) -{ -uint8 x_3; obj* x_4; obj* x_5; -x_3 = 0; -x_4 = lean::alloc_cnstr(1, 4, 1); -lean::cnstr_set(x_4, 0, x_0); -lean::cnstr_set(x_4, 1, x_1); -lean::cnstr_set(x_4, 2, x_2); -lean::cnstr_set(x_4, 3, x_0); -lean::cnstr_set_scalar(x_4, sizeof(void*)*4, x_3); -x_5 = x_4; -return x_5; -} -else -{ -uint8 x_6; -x_6 = lean::cnstr_get_scalar(x_0, sizeof(void*)*4); -if (x_6 == 0) -{ -obj* x_7; obj* x_9; obj* x_11; obj* x_13; obj* x_15; uint8 x_18; -x_7 = lean::cnstr_get(x_0, 0); -x_9 = lean::cnstr_get(x_0, 1); -x_11 = lean::cnstr_get(x_0, 2); -x_13 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_15 = x_0; -} else { - lean::inc(x_7); - lean::inc(x_9); - lean::inc(x_11); - lean::inc(x_13); - lean::dec(x_0); - x_15 = lean::box(0); -} -lean::inc(x_9); -lean::inc(x_1); -x_18 = l_lean_position_decidable__lt___main(x_1, x_9); -if (x_18 == 0) -{ -uint8 x_21; -lean::inc(x_1); -lean::inc(x_9); -x_21 = l_lean_position_decidable__lt___main(x_9, x_1); -if (x_21 == 0) -{ -obj* x_24; obj* x_25; -lean::dec(x_9); -lean::dec(x_11); -if (lean::is_scalar(x_15)) { - x_24 = lean::alloc_cnstr(1, 4, 1); -} else { - x_24 = x_15; -} -lean::cnstr_set(x_24, 0, x_7); -lean::cnstr_set(x_24, 1, x_1); -lean::cnstr_set(x_24, 2, x_2); -lean::cnstr_set(x_24, 3, x_13); -lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_6); -x_25 = x_24; -return x_25; -} -else -{ -obj* x_26; obj* x_27; obj* x_28; -x_26 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_13, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_27 = lean::alloc_cnstr(1, 4, 1); -} else { - x_27 = x_15; -} -lean::cnstr_set(x_27, 0, x_7); -lean::cnstr_set(x_27, 1, x_9); -lean::cnstr_set(x_27, 2, x_11); -lean::cnstr_set(x_27, 3, x_26); -lean::cnstr_set_scalar(x_27, sizeof(void*)*4, x_6); -x_28 = x_27; -return x_28; -} -} -else -{ -obj* x_29; obj* x_30; obj* x_31; -x_29 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_7, x_1, x_2); -if (lean::is_scalar(x_15)) { - x_30 = lean::alloc_cnstr(1, 4, 1); -} else { - x_30 = x_15; -} -lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_9); -lean::cnstr_set(x_30, 2, x_11); -lean::cnstr_set(x_30, 3, x_13); -lean::cnstr_set_scalar(x_30, sizeof(void*)*4, x_6); -x_31 = x_30; -return x_31; -} -} -else -{ -obj* x_32; obj* x_34; obj* x_36; obj* x_38; obj* x_40; uint8 x_43; -x_32 = lean::cnstr_get(x_0, 0); -x_34 = lean::cnstr_get(x_0, 1); -x_36 = lean::cnstr_get(x_0, 2); -x_38 = lean::cnstr_get(x_0, 3); -if (lean::is_exclusive(x_0)) { - lean::cnstr_set(x_0, 0, lean::box(0)); - lean::cnstr_set(x_0, 1, lean::box(0)); - lean::cnstr_set(x_0, 2, lean::box(0)); - lean::cnstr_set(x_0, 3, lean::box(0)); - x_40 = x_0; -} else { - lean::inc(x_32); - lean::inc(x_34); - lean::inc(x_36); - lean::inc(x_38); - lean::dec(x_0); - x_40 = lean::box(0); -} -lean::inc(x_34); -lean::inc(x_1); -x_43 = l_lean_position_decidable__lt___main(x_1, x_34); -if (x_43 == 0) -{ -uint8 x_46; -lean::inc(x_1); -lean::inc(x_34); -x_46 = l_lean_position_decidable__lt___main(x_34, x_1); -if (x_46 == 0) -{ -obj* x_49; obj* x_50; -lean::dec(x_34); -lean::dec(x_36); -if (lean::is_scalar(x_40)) { - x_49 = lean::alloc_cnstr(1, 4, 1); -} else { - x_49 = x_40; -} -lean::cnstr_set(x_49, 0, x_32); -lean::cnstr_set(x_49, 1, x_1); -lean::cnstr_set(x_49, 2, x_2); -lean::cnstr_set(x_49, 3, x_38); -lean::cnstr_set_scalar(x_49, sizeof(void*)*4, x_6); -x_50 = x_49; -return x_50; -} -else -{ -uint8 x_51; -x_51 = l_rbnode_is__red___main___rarg(x_38); -if (x_51 == 0) -{ -obj* x_52; obj* x_53; obj* x_54; -x_52 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_38, x_1, x_2); -if (lean::is_scalar(x_40)) { - x_53 = lean::alloc_cnstr(1, 4, 1); -} else { - x_53 = x_40; -} -lean::cnstr_set(x_53, 0, x_32); -lean::cnstr_set(x_53, 1, x_34); -lean::cnstr_set(x_53, 2, x_36); -lean::cnstr_set(x_53, 3, x_52); -lean::cnstr_set_scalar(x_53, sizeof(void*)*4, x_6); -x_54 = x_53; -return x_54; -} -else -{ -obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; -x_55 = lean::box(0); -if (lean::is_scalar(x_40)) { - x_56 = lean::alloc_cnstr(1, 4, 1); -} else { - x_56 = x_40; -} -lean::cnstr_set(x_56, 0, x_32); -lean::cnstr_set(x_56, 1, x_34); -lean::cnstr_set(x_56, 2, x_36); -lean::cnstr_set(x_56, 3, x_55); -lean::cnstr_set_scalar(x_56, sizeof(void*)*4, x_6); -x_57 = x_56; -x_58 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_38, x_1, x_2); -x_59 = l_rbnode_balance2___main___rarg(x_57, x_58); -return x_59; -} -} -} -else -{ -uint8 x_60; -x_60 = l_rbnode_is__red___main___rarg(x_32); -if (x_60 == 0) -{ -obj* x_61; obj* x_62; obj* x_63; -x_61 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_32, x_1, x_2); -if (lean::is_scalar(x_40)) { - x_62 = lean::alloc_cnstr(1, 4, 1); -} else { - x_62 = x_40; -} -lean::cnstr_set(x_62, 0, x_61); -lean::cnstr_set(x_62, 1, x_34); -lean::cnstr_set(x_62, 2, x_36); -lean::cnstr_set(x_62, 3, x_38); -lean::cnstr_set_scalar(x_62, sizeof(void*)*4, x_6); -x_63 = x_62; -return x_63; -} -else -{ -obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; -x_64 = lean::box(0); -if (lean::is_scalar(x_40)) { - x_65 = lean::alloc_cnstr(1, 4, 1); -} else { - x_65 = x_40; -} -lean::cnstr_set(x_65, 0, x_64); -lean::cnstr_set(x_65, 1, x_34); -lean::cnstr_set(x_65, 2, x_36); -lean::cnstr_set(x_65, 3, x_38); -lean::cnstr_set_scalar(x_65, sizeof(void*)*4, x_6); -x_66 = x_65; -x_67 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_32, x_1, x_2); -x_68 = l_rbnode_balance1___main___rarg(x_66, x_67); -return x_68; -} -} -} -} -} -} -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg), 3, 0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { +obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; @@ -751,35 +489,27 @@ x_3 = l_rbnode_is__red___main___rarg(x_0); if (x_3 == 0) { obj* x_4; -x_4 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___rarg(x_0, x_1, x_2); +x_4 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_0, x_1, x_2); return x_4; } else { obj* x_5; obj* x_6; -x_5 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_0, x_1, x_2); +x_5 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_0, x_1, x_2); x_6 = l_rbnode_set__black___main___rarg(x_5); return x_6; } } } -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___rarg), 3, 0); -return x_1; -} -} obj* l_rbmap_insert___main___at_lean_trace_lean_trace_monad__tracer___spec__1(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___rarg(x_0, x_1, x_2); +x_3 = l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(x_0, x_1, x_2); return x_3; } } -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2) { +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_7; obj* x_8; obj* x_11; obj* x_14; obj* x_15; obj* x_16; @@ -811,7 +541,7 @@ x_16 = lean::apply_2(x_11, lean::box(0), x_15); return x_16; } } -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; obj* x_7; obj* x_9; obj* x_10; obj* x_11; @@ -819,18 +549,18 @@ x_6 = lean::apply_1(x_2, x_5); x_7 = lean::cnstr_get(x_0, 1); lean::inc(x_7); x_9 = lean::apply_1(x_4, x_6); -x_10 = lean::alloc_closure(reinterpret_cast(l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___lambda__1), 3, 2); +x_10 = lean::alloc_closure(reinterpret_cast(l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___lambda__1), 3, 2); lean::closure_set(x_10, 0, x_0); lean::closure_set(x_10, 1, x_3); x_11 = lean::apply_4(x_7, lean::box(0), lean::box(0), x_9, x_10); return x_11; } } -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5(obj* x_0) { +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4(obj* x_0) { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___boxed), 6, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___boxed), 6, 0); return x_1; } } @@ -882,7 +612,7 @@ lean::inc(x_14); x_17 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_17, 0, x_0); lean::cnstr_set(x_17, 1, x_14); -x_18 = l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___rarg(x_12, x_1, x_17); +x_18 = l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(x_12, x_1, x_17); x_19 = lean::cnstr_get(x_7, 2); lean::inc(x_19); lean::dec(x_7); @@ -1261,7 +991,7 @@ x_54 = lean::alloc_closure(reinterpret_cast(l_lean_trace_lean_trace_monad lean::closure_set(x_54, 0, x_2); x_55 = lean::thunk_get(x_0); lean::dec(x_0); -x_57 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg(x_3, lean::box(0), x_53, x_54, x_55, x_24); +x_57 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_3, lean::box(0), x_53, x_54, x_55, x_24); return x_57; } lbl_32: @@ -1392,47 +1122,20 @@ x_1 = lean::alloc_closure(reinterpret_cast(l_lean_trace_lean_trace_monad_ return x_1; } } -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__3(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_ins___main___at_lean_trace_lean_trace_monad__tracer___spec__4(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2___boxed(obj* x_0) { -_start: -{ -obj* x_1; -x_1 = l_rbnode_insert___at_lean_trace_lean_trace_monad__tracer___spec__2(x_0); -lean::dec(x_0); -return x_1; -} -} -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_6; -x_6 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___rarg(x_0, x_1, x_2, x_3, x_4, x_5); +x_6 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___rarg(x_0, x_1, x_2, x_3, x_4, x_5); lean::dec(x_1); return x_6; } } -obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5___boxed(obj* x_0) { +obj* l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4___boxed(obj* x_0) { _start: { obj* x_1; -x_1 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__5(x_0); +x_1 = l_monad__state__adapter_adapt__state_x_27___at_lean_trace_lean_trace_monad__tracer___spec__4(x_0); lean::dec(x_0); return x_1; }