diff --git a/stage0/src/Lean/Compiler/Specialize.lean b/stage0/src/Lean/Compiler/Specialize.lean index 16fb9fe8ed..e4f3786da4 100644 --- a/stage0/src/Lean/Compiler/Specialize.lean +++ b/stage0/src/Lean/Compiler/Specialize.lean @@ -3,6 +3,7 @@ Copyright (c) 2019 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Leonardo de Moura -/ +import Lean.Meta.Basic import Lean.Attributes namespace Lean.Compiler @@ -14,22 +15,36 @@ inductive SpecializeAttributeKind where builtin_initialize nospecializeAttr : TagAttribute ← registerTagAttribute `nospecialize "mark definition to never be specialized" +private def elabSpecArgs (declName : Name) (args : Array Syntax) : MetaM (Array Nat) := do + if args.isEmpty then return #[] + let info ← getConstInfo declName + Meta.forallTelescopeReducing info.type fun xs _ => do + let argNames ← xs.mapM fun x => x.fvarId!.getUserName + let mut result := #[] + for arg in args do + if let some idx := arg.isNatLit? then + if idx == 0 then throwErrorAt arg "invalid specialization argument index, index must be greater than 0" + let idx := idx - 1 + if idx >= argNames.size then + throwErrorAt arg "invalid argument index, `{declName}` has #{argNames.size} arguments" + if result.contains idx then throwErrorAt arg "invalid specialization argument index, `{argNames[idx]!}` has already been specified as a specialization candidate" + result := result.push idx + else + let argName := arg.getId + if let some idx := argNames.getIdx? argName then + if result.contains idx then throwErrorAt arg "invalid specialization argument name `{argName}`, it has already been specified as a specialization candidate" + result := result.push idx + else + throwErrorAt arg "invalid specialization argument name `{argName}`, `{declName}` does have an argument with this name" + return result.qsort (·<·) + builtin_initialize specializeAttr : ParametricAttribute (Array Nat) ← registerParametricAttribute { name := `specialize descr := "mark definition to always be specialized" - /- TODO: fix the following hack. - We need to use the following hack because the equation compiler generates auxiliary - definitions that are compiled before we even finish the elaboration of the current command. - So, if the current command is a `@[specialize] def foo ...`, we must set the attribute `[specialize]` - before we start elaboration, otherwise when we compile the auxiliary definitions we will not be - able to test whether `@[specialize]` has been set or not. - In the new equation compiler we should pass all attributes and allow it to apply them to auxiliary definitions. - In the current implementation, we workaround this issue by using functions such as `hasSpecializeAttrAux`. - -/ - applicationTime := .beforeElaboration - getParam := fun _ _stx => return #[] -- TODO fix after update stage0 - afterSet := fun _ _ => return () -- TODO validate positions + getParam := fun declName stx => do + let args := stx[1].getArgs + elabSpecArgs declName args |>.run' } @[export lean_has_specialize_attribute] diff --git a/stage0/stdlib/Lean/Compiler/Specialize.c b/stage0/stdlib/Lean/Compiler/Specialize.c index 5234351848..21a24869ca 100644 --- a/stage0/stdlib/Lean/Compiler/Specialize.c +++ b/stage0/stdlib/Lean/Compiler/Specialize.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.Specialize -// Imports: Init Lean.Attributes +// Imports: Init Lean.Meta.Basic Lean.Attributes #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -13,35 +13,57 @@ #ifdef __cplusplus extern "C" { #endif +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* lean_get_specialization_info(lean_object*, lean_object*); size_t lean_usize_add(size_t, size_t); +lean_object* l_Lean_FVarId_getUserName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_hasNospecializeAttribute___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_stringToMessageData(lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_instBEqSpecializeAttributeKind; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); +lean_object* lean_nat_div(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAux___at_Lean_Compiler_getCachedSpecialization___spec__3___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2; lean_object* lean_array_uset(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAtAux___at_Lean_Compiler_getSpecializationInfo___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecState_specInfo___default; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3(lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__6___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__2(lean_object*, lean_object*); size_t lean_usize_sub(size_t, size_t); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__1; +lean_object* l_Lean_getConstInfo___at_Lean_Meta_mkConstWithFreshMVarLevels___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__3; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_SpecState_addEntry___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_HashMap_0__Std_numBucketsForCapacity(lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__17; LEAN_EXPORT lean_object* l_Std_HashMapImp_moveEntries___at_Lean_Compiler_SpecState_addEntry___spec__9(lean_object*, lean_object*, lean_object*); +lean_object* lean_st_ref_get(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_SpecArgKind_noConfusion___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_SpecState_addEntry___spec__4(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4; +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1; +lean_object* l_Nat_decLt___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_hasNospecializeAttribute___closed__1; +static lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1; +extern lean_object* l_instInhabitedNat; LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_beqSpecializeAttributeKind____x40_Lean_Compiler_Specialize___hyg_15____boxed(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9; +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_contains___at_Lean_Compiler_SpecState_addEntry___spec__7___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__2; @@ -49,99 +71,154 @@ lean_object* lean_array_get_size(lean_object*); lean_object* l_Std_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_foldlM___at_Lean_Compiler_SpecState_addEntry___spec__10(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1; LEAN_EXPORT lean_object* l_Std_AssocList_replace___at_Lean_Compiler_SpecState_addEntry___spec__11(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecArgKind_noConfusion___rarg(uint8_t, uint8_t, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion(lean_object*); +lean_object* l_Array_qpartition_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_shift_right(size_t, size_t); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1; LEAN_EXPORT lean_object* l_Lean_SMap_switch___at_Lean_Compiler_SpecState_switch___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Std_HashMapImp_expand___at_Lean_Compiler_SpecState_addEntry___spec__8(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7; LEAN_EXPORT lean_object* l_Std_mkHashMap___at_Lean_Compiler_SpecState_specInfo___default___spec__1___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__1(lean_object*, lean_object*); +uint8_t lean_usize_dec_lt(size_t, size_t); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__13(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2; LEAN_EXPORT lean_object* l_Lean_SMap_switch___at_Lean_Compiler_SpecState_switch___spec__2(lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_addSpecializationInfo___closed__1; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6; lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__14; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_uint64_to_usize(uint64_t); LEAN_EXPORT lean_object* l_Std_AssocList_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__6(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__1(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_SpecArgKind_toCtorIdx(uint8_t); uint64_t l_Lean_Name_hash___override(lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8; LEAN_EXPORT lean_object* l_Lean_SMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__4; lean_object* lean_array_fget(lean_object*, lean_object*); +lean_object* l_Lean_Syntax_isNatLit_x3f(lean_object*); LEAN_EXPORT lean_object* l_Std_HashMapImp_moveEntries___at_Lean_Compiler_SpecState_addEntry___spec__20(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_specExtension; LEAN_EXPORT lean_object* l_Std_HashMapImp_expand___at_Lean_Compiler_SpecState_addEntry___spec__19(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__2(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__9; lean_object* l_Lean_ParametricAttribute_getParam_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__18; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__8; +lean_object* lean_nat_sub(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10; +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_swap(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_specializeAttr; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20; LEAN_EXPORT uint8_t l_Lean_Compiler_instInhabitedSpecializeAttributeKind; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7; LEAN_EXPORT lean_object* l_Std_AssocList_foldlM___at_Lean_Compiler_SpecState_addEntry___spec__21(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3; +lean_object* l_Lean_replaceRef(lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_SpecState_specInfo___default___closed__3; +lean_object* l_Lean_Expr_fvarId_x21(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_instInhabitedSpecEntry; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2(lean_object*, size_t, size_t, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Name_isInternal(lean_object*); lean_object* l_Std_mkHashMapImp___rarg(lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_replace___at_Lean_Compiler_SpecState_addEntry___spec__22(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Nat_repr(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion___rarg___lambda__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_st_mk_ref(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_toCtorIdx___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Syntax_getId(lean_object*); LEAN_EXPORT lean_object* l_Std_HashMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__6(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Expr_instHashableExpr; uint64_t l_Lean_Expr_hash(lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12; LEAN_EXPORT lean_object* l_Lean_Compiler_hasSpecializeAttribute___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_hasSpecializeAttribute___closed__1; size_t lean_usize_shift_left(size_t, size_t); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5; +lean_object* l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed(lean_object*); LEAN_EXPORT uint8_t lean_has_specialize_attribute(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1; +static lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1; LEAN_EXPORT uint8_t l_Std_AssocList_contains___at_Lean_Compiler_SpecState_addEntry___spec__7(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); +LEAN_EXPORT uint8_t l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_SMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__12(lean_object*, lean_object*, lean_object*); +lean_object* l_panic___at___private_Init_Prelude_0__Lean_assembleParts___spec__1(lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21; +lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13; +uint8_t l_Array_isEmpty___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecArgKind_toCtorIdx___boxed(lean_object*); static lean_object* l_Lean_Compiler_instInhabitedSpecState___closed__4; -static lean_object* l_Lean_Compiler_SpecState_cache___default___closed__1; LEAN_EXPORT lean_object* lean_add_specialization_info(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__6; size_t lean_usize_mul(size_t, size_t); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__2(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____lambda__1(lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8; +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_instInhabitedSpecEntry___closed__1; static lean_object* l_Lean_Compiler_instInhabitedSpecState___closed__1; size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ConstantInfo_type(lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_SpecState_addEntry___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2; +LEAN_EXPORT uint8_t l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4(lean_object*, lean_object*); +lean_object* l_instBEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_instInhabitedSpecState___closed__2; LEAN_EXPORT lean_object* l_Std_HashMapImp_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__5(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4___boxed(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t lean_usize_land(size_t, size_t); static lean_object* l_Lean_Compiler_instInhabitedSpecInfo___closed__1; lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3; +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* lean_cache_specialization(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_instInhabitedSpecArgKind; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3(lean_object*, size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion___rarg___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6; +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__14___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__6(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10; LEAN_EXPORT uint8_t l___private_Lean_Compiler_Specialize_0__Lean_Compiler_beqSpecializeAttributeKind____x40_Lean_Compiler_Specialize___hyg_15_(uint8_t, uint8_t); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4; uint8_t lean_expr_eqv(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386_(lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2; +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58_(lean_object*); lean_object* lean_list_to_array(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_instInhabitedSpecState___closed__3; LEAN_EXPORT uint8_t lean_has_nospecialize_attribute(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__10; uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); @@ -149,64 +226,89 @@ LEAN_EXPORT lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_getSpecializati static lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion___rarg___closed__1; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAtAux___at_Lean_Compiler_getCachedSpecialization___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAtAux___at_Lean_Compiler_getSpecializationInfo___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Syntax_getArgs(lean_object*); LEAN_EXPORT uint8_t l_Std_AssocList_contains___at_Lean_Compiler_SpecState_addEntry___spec__18(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_instInhabitedSpecInfo; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_mkHashMap___at_Lean_Compiler_SpecState_cache___default___spec__1___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3; uint8_t l_Lean_TagAttribute_hasTag(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_nospecializeAttr; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____lambda__1(lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1; +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5(lean_object*, lean_object*, size_t, size_t); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7; lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l_Lean_Name_getPrefix(lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAux___at_Lean_Compiler_getCachedSpecialization___spec__3(lean_object*, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11; +lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAux___at_Lean_Compiler_getSpecializationInfo___spec__3___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3; LEAN_EXPORT lean_object* lean_get_cached_specialization(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__7; +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5; +lean_object* l_instHashableProd___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_mkHashMap___at_Lean_Compiler_SpecState_specInfo___default___spec__1(lean_object*); static size_t l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__1; -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5; lean_object* lean_mk_array(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_toCtorIdx(uint8_t); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1; +extern lean_object* l_Lean_Expr_instBEqExpr; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_SpecState_addEntry___spec__15___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_HashMap_insert___at_Lean_Compiler_SpecState_addEntry___spec__17(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerTagAttribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_AssocList_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__6___boxed(lean_object*, lean_object*); lean_object* l_Lean_registerParametricAttribute___rarg(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_SpecState_specInfo___default___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2; static size_t l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__2; -static lean_object* l_Lean_Compiler_SpecState_specInfo___default___closed__1; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_SpecState_addEntry___spec__15(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_SpecState_addEntry___spec__16(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecState_switch(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecArgKind_noConfusion(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecState_addEntry(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5; +lean_object* l_Array_findIdx_x3f_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__14(lean_object*, size_t, size_t, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7; LEAN_EXPORT lean_object* l_Std_mkHashMap___at_Lean_Compiler_SpecState_cache___default___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2(lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4; LEAN_EXPORT lean_object* l_Std_HashMapImp_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__5(lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); -static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__5; LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAux___at_Lean_Compiler_getSpecializationInfo___spec__3(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion___rarg(uint8_t, uint8_t, lean_object*); +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_instBEqSpecializeAttributeKind___closed__1; +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6; LEAN_EXPORT lean_object* l_Std_AssocList_contains___at_Lean_Compiler_SpecState_addEntry___spec__18___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_noConfusion___rarg___lambda__1___boxed(lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__3; lean_object* l_Std_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_instInhabitedSpecState; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_PersistentHashMap_findAtAux___at_Lean_Compiler_getCachedSpecialization___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_SpecState_cache___default; -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9; LEAN_EXPORT lean_object* l_Lean_Compiler_SpecializeAttributeKind_toCtorIdx(uint8_t x_1) { _start: { @@ -457,17 +559,1841 @@ lean_dec(x_1); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1(size_t x_1, size_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { -lean_object* x_7; -x_7 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_6); +uint8_t x_9; +x_9 = lean_usize_dec_lt(x_2, x_1); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_4); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_3); +lean_ctor_set(x_10, 1, x_8); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_11 = lean_array_uget(x_3, x_2); +x_12 = lean_unsigned_to_nat(0u); +x_13 = lean_array_uset(x_3, x_2, x_12); +x_14 = l_Lean_Expr_fvarId_x21(x_11); +lean_inc(x_4); +x_15 = l_Lean_FVarId_getUserName(x_14, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 1; +x_19 = lean_usize_add(x_2, x_18); +x_20 = lean_array_uset(x_13, x_2, x_16); +x_2 = x_19; +x_3 = x_20; +x_8 = x_17; +goto _start; +} +else +{ +uint8_t x_22; +lean_dec(x_13); +lean_dec(x_4); +x_22 = !lean_is_exclusive(x_15); +if (x_22 == 0) +{ +return x_15; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_15, 0); +x_24 = lean_ctor_get(x_15, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_15); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} +} +} +LEAN_EXPORT uint8_t l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; +x_3 = lean_name_eq(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = lean_alloc_closure((void*)(l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1___boxed), 2, 1); +lean_closure_set(x_3, 0, x_2); +x_4 = lean_array_get_size(x_1); +x_5 = lean_unsigned_to_nat(0u); +x_6 = l_Array_findIdx_x3f_loop___rarg(x_1, x_3, x_4, x_5, lean_box(0)); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_5); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_5, 5); +x_10 = l_Lean_replaceRef(x_1, x_9); +lean_dec(x_9); +lean_ctor_set(x_5, 5, x_10); +x_11 = l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_5); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_12 = lean_ctor_get(x_5, 0); +x_13 = lean_ctor_get(x_5, 1); +x_14 = lean_ctor_get(x_5, 2); +x_15 = lean_ctor_get(x_5, 3); +x_16 = lean_ctor_get(x_5, 4); +x_17 = lean_ctor_get(x_5, 5); +x_18 = lean_ctor_get(x_5, 6); +x_19 = lean_ctor_get(x_5, 7); +x_20 = lean_ctor_get(x_5, 8); +x_21 = lean_ctor_get(x_5, 9); +x_22 = lean_ctor_get(x_5, 10); +lean_inc(x_22); +lean_inc(x_21); +lean_inc(x_20); +lean_inc(x_19); +lean_inc(x_18); +lean_inc(x_17); +lean_inc(x_16); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_5); +x_23 = l_Lean_replaceRef(x_1, x_17); +lean_dec(x_17); +x_24 = lean_alloc_ctor(0, 11, 0); +lean_ctor_set(x_24, 0, x_12); +lean_ctor_set(x_24, 1, x_13); +lean_ctor_set(x_24, 2, x_14); +lean_ctor_set(x_24, 3, x_15); +lean_ctor_set(x_24, 4, x_16); +lean_ctor_set(x_24, 5, x_23); +lean_ctor_set(x_24, 6, x_18); +lean_ctor_set(x_24, 7, x_19); +lean_ctor_set(x_24, 8, x_20); +lean_ctor_set(x_24, 9, x_21); +lean_ctor_set(x_24, 10, x_22); +x_25 = l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(x_2, x_3, x_4, x_24, x_6, x_7); +lean_dec(x_24); +return x_25; +} +} +} +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5(lean_object* x_1, lean_object* x_2, size_t x_3, size_t x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_eq(x_3, x_4); +if (x_5 == 0) +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_uget(x_2, x_3); +x_7 = lean_nat_dec_eq(x_1, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +size_t x_8; size_t x_9; +x_8 = 1; +x_9 = lean_usize_add(x_3, x_8); +x_3 = x_9; +goto _start; +} +else +{ +uint8_t x_11; +x_11 = 1; +return x_11; +} +} +else +{ +uint8_t x_12; +x_12 = 0; +return x_12; +} +} +} +LEAN_EXPORT uint8_t l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; uint8_t x_5; +x_3 = lean_array_get_size(x_1); +x_4 = lean_unsigned_to_nat(0u); +x_5 = lean_nat_dec_lt(x_4, x_3); +if (x_5 == 0) +{ +uint8_t x_6; +lean_dec(x_3); +x_6 = 0; +return x_6; +} +else +{ +uint8_t x_7; +x_7 = lean_nat_dec_le(x_3, x_3); +if (x_7 == 0) +{ +uint8_t x_8; +lean_dec(x_3); +x_8 = 0; +return x_8; +} +else +{ +size_t x_9; size_t x_10; uint8_t x_11; +x_9 = 0; +x_10 = lean_usize_of_nat(x_3); +lean_dec(x_3); +x_11 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5(x_2, x_1, x_9, x_10); +return x_11; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_7 = lean_ctor_get(x_4, 5); +x_8 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_8, 0); +lean_inc(x_7); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_7); +lean_ctor_set(x_11, 1, x_10); +lean_ctor_set_tag(x_8, 1); +lean_ctor_set(x_8, 0, x_11); +return x_8; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_8, 0); +x_13 = lean_ctor_get(x_8, 1); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_8); +lean_inc(x_7); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_7); +lean_ctor_set(x_14, 1, x_12); +x_15 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +return x_15; +} +} +} +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_5); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_5, 5); +x_10 = l_Lean_replaceRef(x_1, x_9); +lean_dec(x_9); +lean_dec(x_1); +lean_ctor_set(x_5, 5, x_10); +x_11 = l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7(x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_12 = lean_ctor_get(x_5, 0); +x_13 = lean_ctor_get(x_5, 1); +x_14 = lean_ctor_get(x_5, 2); +x_15 = lean_ctor_get(x_5, 3); +x_16 = lean_ctor_get(x_5, 4); +x_17 = lean_ctor_get(x_5, 5); +x_18 = lean_ctor_get(x_5, 6); +x_19 = lean_ctor_get(x_5, 7); +x_20 = lean_ctor_get(x_5, 8); +x_21 = lean_ctor_get(x_5, 9); +x_22 = lean_ctor_get(x_5, 10); +lean_inc(x_22); +lean_inc(x_21); +lean_inc(x_20); +lean_inc(x_19); +lean_inc(x_18); +lean_inc(x_17); +lean_inc(x_16); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_5); +x_23 = l_Lean_replaceRef(x_1, x_17); +lean_dec(x_17); +lean_dec(x_1); +x_24 = lean_alloc_ctor(0, 11, 0); +lean_ctor_set(x_24, 0, x_12); +lean_ctor_set(x_24, 1, x_13); +lean_ctor_set(x_24, 2, x_14); +lean_ctor_set(x_24, 3, x_15); +lean_ctor_set(x_24, 4, x_16); +lean_ctor_set(x_24, 5, x_23); +lean_ctor_set(x_24, 6, x_18); +lean_ctor_set(x_24, 7, x_19); +lean_ctor_set(x_24, 8, x_20); +lean_ctor_set(x_24, 9, x_21); +lean_ctor_set(x_24, 10, x_22); +x_25 = l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7(x_2, x_3, x_4, x_24, x_6, x_7); +lean_dec(x_6); +lean_dec(x_24); +lean_dec(x_4); +lean_dec(x_3); +return x_25; +} +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_array_push(x_2, x_1); +x_10 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_10, 0, x_9); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_8); +return x_11; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("invalid specialization argument index, `", 40); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("` has already been specified as a specialization candidate", 58); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Init.Util", 9); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("getElem!", 8); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("index out of bounds", 19); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5; +x_2 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6; +x_3 = lean_unsigned_to_nat(77u); +x_4 = lean_unsigned_to_nat(36u); +x_5 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +uint8_t x_11; +lean_dec(x_5); +x_11 = l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4(x_4, x_1); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_3); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1(x_1, x_4, x_12, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +return x_13; +} +else +{ +lean_object* x_14; uint8_t x_15; +lean_dec(x_4); +x_14 = lean_array_get_size(x_2); +x_15 = lean_nat_dec_lt(x_1, x_14); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_2); +lean_dec(x_1); +x_16 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8; +x_17 = l_panic___at___private_Init_Prelude_0__Lean_assembleParts___spec__1(x_16); +x_18 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_18, 0, x_17); +x_19 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2; +x_20 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_18); +x_21 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4; +x_22 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +x_23 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(x_3, x_22, x_6, x_7, x_8, x_9, x_10); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +return x_23; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_23, 0); +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_23); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_28 = lean_array_fget(x_2, x_1); +lean_dec(x_1); +lean_dec(x_2); +x_29 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_29, 0, x_28); +x_30 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2; +x_31 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_31, 0, x_30); +lean_ctor_set(x_31, 1, x_29); +x_32 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4; +x_33 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(x_3, x_33, x_6, x_7, x_8, x_9, x_10); +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) +{ +return x_34; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_34, 0); +x_37 = lean_ctor_get(x_34, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_34); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +return x_38; +} +} +} +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("invalid argument index, `", 25); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("` has #", 7); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes(" arguments", 10); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +lean_dec(x_6); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_sub(x_1, x_12); +lean_dec(x_1); +x_14 = lean_array_get_size(x_2); +x_15 = lean_nat_dec_le(x_14, x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_14); +lean_dec(x_4); +x_16 = lean_box(0); +x_17 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2(x_13, x_2, x_3, x_5, x_16, x_7, x_8, x_9, x_10, x_11); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; +lean_dec(x_13); +lean_dec(x_5); +lean_dec(x_2); +x_18 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_18, 0, x_4); +x_19 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2; +x_20 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_18); +x_21 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4; +x_22 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +x_23 = l_Nat_repr(x_14); +x_24 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_24, 0, x_23); +x_25 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_25, 0, x_24); +x_26 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_26, 0, x_22); +lean_ctor_set(x_26, 1, x_25); +x_27 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6; +x_28 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +x_29 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(x_3, x_28, x_7, x_8, x_9, x_10, x_11); +x_30 = !lean_is_exclusive(x_29); +if (x_30 == 0) +{ +return x_29; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_29, 0); +x_32 = lean_ctor_get(x_29, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_29); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; +} +} +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("invalid specialization argument name `", 38); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("`, `", 4); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("` does have an argument with this name", 38); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("`, it has already been specified as a specialization candidate", 62); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("invalid specialization argument index, index must be greater than 0", 67); +return x_1; +} +} +static lean_object* _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3, size_t x_4, size_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +uint8_t x_12; +x_12 = lean_usize_dec_lt(x_5, x_4); +if (x_12 == 0) +{ +lean_object* x_13; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +lean_dec(x_1); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_6); +lean_ctor_set(x_13, 1, x_11); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_22; +x_14 = lean_array_uget(x_3, x_5); +x_22 = l_Lean_Syntax_isNatLit_x3f(x_14); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; +x_23 = l_Lean_Syntax_getId(x_14); +lean_inc(x_23); +x_24 = l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2(x_2, x_23); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +lean_dec(x_6); +lean_dec(x_2); +x_25 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_25, 0, x_23); +x_26 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2; +x_27 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_25); +x_28 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4; +x_29 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +x_30 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_30, 0, x_1); +x_31 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +x_32 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6; +x_33 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3(x_14, x_33, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_14); +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) +{ +return x_34; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_34, 0); +x_37 = lean_ctor_get(x_34, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_34); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +return x_38; +} +} +else +{ +lean_object* x_39; uint8_t x_40; +x_39 = lean_ctor_get(x_24, 0); +lean_inc(x_39); +lean_dec(x_24); +x_40 = l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4(x_6, x_39); +if (x_40 == 0) +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +lean_dec(x_23); +lean_dec(x_14); +x_41 = lean_box(0); +x_42 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1(x_39, x_6, x_41, x_7, x_8, x_9, x_10, x_11); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_15 = x_43; +x_16 = x_44; +goto block_21; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +lean_dec(x_39); +lean_dec(x_6); +lean_dec(x_2); +lean_dec(x_1); +x_45 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_45, 0, x_23); +x_46 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2; +x_47 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_47, 0, x_46); +lean_ctor_set(x_47, 1, x_45); +x_48 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8; +x_49 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_49, 0, x_47); +lean_ctor_set(x_49, 1, x_48); +x_50 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(x_14, x_49, x_7, x_8, x_9, x_10, x_11); +x_51 = !lean_is_exclusive(x_50); +if (x_51 == 0) +{ +return x_50; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_50, 0); +x_53 = lean_ctor_get(x_50, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_50); +x_54 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_54, 0, x_52); +lean_ctor_set(x_54, 1, x_53); +return x_54; +} +} +} +} +else +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; +x_55 = lean_ctor_get(x_22, 0); +lean_inc(x_55); +lean_dec(x_22); +x_56 = lean_unsigned_to_nat(0u); +x_57 = lean_nat_dec_eq(x_55, x_56); +if (x_57 == 0) +{ +lean_object* x_58; lean_object* x_59; +x_58 = lean_box(0); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_1); +lean_inc(x_2); +x_59 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3(x_55, x_2, x_14, x_1, x_6, x_58, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; +x_60 = lean_ctor_get(x_59, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_59, 1); +lean_inc(x_61); +lean_dec(x_59); +x_15 = x_60; +x_16 = x_61; +goto block_21; +} +else +{ +uint8_t x_62; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +lean_dec(x_1); +x_62 = !lean_is_exclusive(x_59); +if (x_62 == 0) +{ +return x_59; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_63 = lean_ctor_get(x_59, 0); +x_64 = lean_ctor_get(x_59, 1); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_59); +x_65 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_65, 0, x_63); +lean_ctor_set(x_65, 1, x_64); +return x_65; +} +} +} +else +{ +lean_object* x_66; lean_object* x_67; uint8_t x_68; +lean_dec(x_55); +lean_dec(x_6); +lean_dec(x_2); +lean_dec(x_1); +x_66 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10; +x_67 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__6(x_14, x_66, x_7, x_8, x_9, x_10, x_11); +x_68 = !lean_is_exclusive(x_67); +if (x_68 == 0) +{ +return x_67; +} +else +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_69 = lean_ctor_get(x_67, 0); +x_70 = lean_ctor_get(x_67, 1); +lean_inc(x_70); +lean_inc(x_69); +lean_dec(x_67); +x_71 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_71, 0, x_69); +lean_ctor_set(x_71, 1, x_70); +return x_71; +} +} +} +block_21: +{ +lean_object* x_17; size_t x_18; size_t x_19; +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 1; +x_19 = lean_usize_add(x_5, x_18); +x_5 = x_19; +x_6 = x_17; +x_11 = x_16; +goto _start; +} +} +} +} +static lean_object* _init_l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Nat_decLt___boxed), 2, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_14; +x_14 = lean_nat_dec_lt(x_3, x_4); +if (x_14 == 0) +{ +lean_dec(x_3); +lean_dec(x_1); +return x_2; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_41; lean_object* x_42; uint8_t x_43; +x_15 = lean_nat_add(x_3, x_4); +x_16 = lean_unsigned_to_nat(2u); +x_17 = lean_nat_div(x_15, x_16); +lean_dec(x_15); +lean_inc(x_1); +x_41 = lean_array_get(x_1, x_2, x_17); +lean_inc(x_1); +x_42 = lean_array_get(x_1, x_2, x_3); +x_43 = lean_nat_dec_lt(x_41, x_42); +lean_dec(x_42); +lean_dec(x_41); +if (x_43 == 0) +{ +x_18 = x_2; +goto block_40; +} +else +{ +lean_object* x_44; +x_44 = lean_array_swap(x_2, x_3, x_17); +x_18 = x_44; +goto block_40; +} +block_40: +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +lean_inc(x_1); +x_19 = lean_array_get(x_1, x_18, x_4); +lean_inc(x_1); +x_20 = lean_array_get(x_1, x_18, x_3); +x_21 = lean_nat_dec_lt(x_19, x_20); +lean_dec(x_20); +if (x_21 == 0) +{ +lean_object* x_22; uint8_t x_23; +lean_inc(x_1); +x_22 = lean_array_get(x_1, x_18, x_17); +x_23 = lean_nat_dec_lt(x_22, x_19); +lean_dec(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +lean_dec(x_17); +x_24 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_25 = l_Array_qpartition_loop___rarg(x_1, x_24, x_4, x_19, x_18, x_3, x_3); +x_5 = x_25; +goto block_13; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_19); +x_26 = lean_array_swap(x_18, x_17, x_4); +lean_dec(x_17); +lean_inc(x_1); +x_27 = lean_array_get(x_1, x_26, x_4); +x_28 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_29 = l_Array_qpartition_loop___rarg(x_1, x_28, x_4, x_27, x_26, x_3, x_3); +x_5 = x_29; +goto block_13; +} +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +lean_dec(x_19); +x_30 = lean_array_swap(x_18, x_3, x_4); +lean_inc(x_1); +x_31 = lean_array_get(x_1, x_30, x_17); +lean_inc(x_1); +x_32 = lean_array_get(x_1, x_30, x_4); +x_33 = lean_nat_dec_lt(x_31, x_32); +lean_dec(x_31); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; +lean_dec(x_17); +x_34 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_35 = l_Array_qpartition_loop___rarg(x_1, x_34, x_4, x_32, x_30, x_3, x_3); +x_5 = x_35; +goto block_13; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_32); +x_36 = lean_array_swap(x_30, x_17, x_4); +lean_dec(x_17); +lean_inc(x_1); +x_37 = lean_array_get(x_1, x_36, x_4); +x_38 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_39 = l_Array_qpartition_loop___rarg(x_1, x_38, x_4, x_37, x_36, x_3, x_3); +x_5 = x_39; +goto block_13; +} +} +} +} +block_13: +{ +lean_object* x_6; lean_object* x_7; uint8_t x_8; +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_5, 1); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_nat_dec_le(x_4, x_6); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_inc(x_1); +x_9 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(x_1, x_7, x_3, x_6); +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_add(x_6, x_10); +lean_dec(x_6); +x_2 = x_9; +x_3 = x_11; +goto _start; +} +else +{ +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_1); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +} +} +static lean_object* _init_l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; size_t x_11; size_t x_12; lean_object* x_13; +x_10 = lean_array_get_size(x_3); +x_11 = lean_usize_of_nat(x_10); +lean_dec(x_10); +x_12 = 0; +lean_inc(x_5); +x_13 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1(x_11, x_12, x_3, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; lean_object* x_18; lean_object* x_19; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_16 = lean_array_get_size(x_1); +x_17 = lean_usize_of_nat(x_16); +lean_dec(x_16); +x_18 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1; +x_19 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8(x_2, x_14, x_1, x_17, x_12, x_18, x_5, x_6, x_7, x_8, x_15); +if (lean_obj_tag(x_19) == 0) +{ +uint8_t x_20; +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_21 = lean_ctor_get(x_19, 0); +x_22 = lean_array_get_size(x_21); +x_23 = lean_unsigned_to_nat(1u); +x_24 = lean_nat_sub(x_22, x_23); +lean_dec(x_22); +x_25 = l_instInhabitedNat; +x_26 = lean_unsigned_to_nat(0u); +x_27 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(x_25, x_21, x_26, x_24); +lean_dec(x_24); +lean_ctor_set(x_19, 0, x_27); +return x_19; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_28 = lean_ctor_get(x_19, 0); +x_29 = lean_ctor_get(x_19, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_19); +x_30 = lean_array_get_size(x_28); +x_31 = lean_unsigned_to_nat(1u); +x_32 = lean_nat_sub(x_30, x_31); +lean_dec(x_30); +x_33 = l_instInhabitedNat; +x_34 = lean_unsigned_to_nat(0u); +x_35 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(x_33, x_28, x_34, x_32); +lean_dec(x_32); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_29); +return x_36; +} +} +else +{ +uint8_t x_37; +x_37 = !lean_is_exclusive(x_19); +if (x_37 == 0) +{ +return x_19; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_19, 0); +x_39 = lean_ctor_get(x_19, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_19); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; +} +} +} +else +{ +uint8_t x_41; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_2); +x_41 = !lean_is_exclusive(x_13); +if (x_41 == 0) +{ +return x_13; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_13, 0); +x_43 = lean_ctor_get(x_13, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_13); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +lean_inc(x_1); +x_9 = l_Lean_getConstInfo___at_Lean_Meta_mkConstWithFreshMVarLevels___spec__1(x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_ConstantInfo_type(x_10); +lean_dec(x_10); +x_13 = lean_alloc_closure((void*)(l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___boxed), 9, 2); +lean_closure_set(x_13, 0, x_2); +lean_closure_set(x_13, 1, x_1); +x_14 = l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(x_12, x_13, x_4, x_5, x_6, x_7, x_11); +return x_14; +} +else +{ +uint8_t x_15; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_15 = !lean_is_exclusive(x_9); +if (x_15 == 0) +{ +return x_9; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_9, 0); +x_17 = lean_ctor_get(x_9, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_9); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +uint8_t x_8; +x_8 = l_Array_isEmpty___rarg(x_2); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_box(0); +x_10 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2(x_1, x_2, x_9, x_3, x_4, x_5, x_6, x_7); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_11 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1; +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_7); +return x_12; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +size_t x_9; size_t x_10; lean_object* x_11; +x_9 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_10 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_11 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__1(x_9, x_10, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___lambda__1(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Array_getIdx_x3f___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__2(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l_Lean_throwErrorAt___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +size_t x_5; size_t x_6; uint8_t x_7; lean_object* x_8; +x_5 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_6 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_7 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__5(x_1, x_2, x_5, x_6); +lean_dec(x_2); +lean_dec(x_1); +x_8 = lean_box(x_7); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Array_contains___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__4(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_throwError___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__7(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__1(x_1, x_2, x_3, 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); +lean_dec(x_3); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +size_t x_12; size_t x_13; lean_object* x_14; +x_12 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_13 = lean_unbox_usize(x_5); +lean_dec(x_5); +x_14 = l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8(x_1, x_2, x_3, x_12, x_13, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_3); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9(x_1, x_2, x_3, x_4); +lean_dec(x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; +x_10 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_4); +lean_dec(x_1); +return x_10; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_3); +return x_9; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1() { +_start: +{ +uint8_t x_1; uint8_t x_2; uint8_t x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = 1; +x_3 = 1; +x_4 = 0; +x_5 = lean_alloc_ctor(0, 0, 14); +lean_ctor_set_uint8(x_5, 0, x_1); +lean_ctor_set_uint8(x_5, 1, x_1); +lean_ctor_set_uint8(x_5, 2, x_1); +lean_ctor_set_uint8(x_5, 3, x_1); +lean_ctor_set_uint8(x_5, 4, x_1); +lean_ctor_set_uint8(x_5, 5, x_2); +lean_ctor_set_uint8(x_5, 6, x_3); +lean_ctor_set_uint8(x_5, 7, x_1); +lean_ctor_set_uint8(x_5, 8, x_3); +lean_ctor_set_uint8(x_5, 9, x_3); +lean_ctor_set_uint8(x_5, 10, x_1); +lean_ctor_set_uint8(x_5, 11, x_3); +lean_ctor_set_uint8(x_5, 12, x_3); +lean_ctor_set_uint8(x_5, 13, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = l_Std_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(32u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7() { +_start: +{ +size_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = 5; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5; +x_4 = lean_unsigned_to_nat(0u); +x_5 = lean_alloc_ctor(0, 4, sizeof(size_t)*1); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_4); +lean_ctor_set(x_5, 3, x_4); +lean_ctor_set_usize(x_5, 4, x_1); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11; +x_5 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_1); +lean_ctor_set(x_5, 2, x_2); +lean_ctor_set(x_5, 3, x_3); +lean_ctor_set(x_5, 4, x_4); +lean_ctor_set(x_5, 5, x_2); +lean_ctor_set(x_5, 6, x_3); +lean_ctor_set(x_5, 7, x_3); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__14() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed), 1, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__17() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Expr_instBEqExpr; +x_2 = lean_alloc_closure((void*)(l_instBEqProd___rarg), 4, 2); +lean_closure_set(x_2, 0, x_1); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__18() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Expr_instHashableExpr; +x_2 = lean_alloc_closure((void*)(l_instHashableProd___rarg___boxed), 3, 2); +lean_closure_set(x_2, 0, x_1); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19; +x_5 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_2); +lean_ctor_set(x_5, 2, x_3); +lean_ctor_set(x_5, 3, x_1); +lean_ctor_set(x_5, 4, x_1); +lean_ctor_set(x_5, 5, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7; +x_5 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_1); +lean_ctor_set(x_5, 3, x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_7 = lean_unsigned_to_nat(1u); +x_8 = l_Lean_Syntax_getArg(x_3, x_7); +x_9 = l_Lean_Syntax_getArgs(x_8); +lean_dec(x_8); +x_10 = lean_box(0); +x_11 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1; +x_12 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8; +x_13 = lean_unsigned_to_nat(0u); +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_11); +lean_ctor_set(x_14, 1, x_12); +lean_ctor_set(x_14, 2, x_1); +lean_ctor_set(x_14, 3, x_10); +lean_ctor_set(x_14, 4, x_13); +lean_ctor_set(x_14, 5, x_10); +x_15 = lean_st_ref_get(x_5, x_6); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21; +x_18 = lean_st_mk_ref(x_17, x_16); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +lean_inc(x_5); +lean_inc(x_19); +x_21 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs(x_2, x_9, x_14, x_19, x_4, x_5, x_20); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = lean_st_ref_get(x_5, x_23); +lean_dec(x_5); +x_25 = lean_ctor_get(x_24, 1); +lean_inc(x_25); +lean_dec(x_24); +x_26 = lean_st_ref_get(x_19, x_25); +lean_dec(x_19); +x_27 = !lean_is_exclusive(x_26); +if (x_27 == 0) +{ +lean_object* x_28; +x_28 = lean_ctor_get(x_26, 0); +lean_dec(x_28); +lean_ctor_set(x_26, 0, x_22); +return x_26; +} +else +{ +lean_object* x_29; lean_object* x_30; +x_29 = lean_ctor_get(x_26, 1); +lean_inc(x_29); +lean_dec(x_26); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_22); +lean_ctor_set(x_30, 1, x_29); +return x_30; +} +} +else +{ +uint8_t x_31; +lean_dec(x_19); +lean_dec(x_5); +x_31 = !lean_is_exclusive(x_21); +if (x_31 == 0) +{ +return x_21; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_21, 0); +x_33 = lean_ctor_get(x_21, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_21); +x_34 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_34, 0, x_32); +lean_ctor_set(x_34, 1, x_33); +return x_34; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; lean_object* x_7; @@ -478,7 +2404,7 @@ lean_ctor_set(x_7, 1, x_5); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; @@ -489,16 +2415,7 @@ lean_ctor_set(x_5, 1, x_3); return x_5; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(0u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1() { _start: { lean_object* x_1; @@ -506,17 +2423,17 @@ x_1 = lean_mk_string_from_bytes("specializeAttr", 14); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_32____closed__6; -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3() { _start: { lean_object* x_1; @@ -524,17 +2441,17 @@ x_1 = lean_mk_string_from_bytes("specialize", 10); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5() { _start: { lean_object* x_1; @@ -542,14 +2459,14 @@ x_1 = lean_mk_string_from_bytes("mark definition to always be specialized", 40); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; -x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3; -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5; -x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6; -x_4 = 2; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5; +x_4 = 0; x_5 = lean_alloc_ctor(0, 3, 1); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_2); @@ -558,32 +2475,32 @@ lean_ctor_set_uint8(x_5, sizeof(void*)*3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2___boxed), 5, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2___boxed), 5, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3___boxed), 3, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3___boxed), 3, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1___boxed), 6, 1); +x_2 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___boxed), 6, 1); lean_closure_set(x_3, 0, x_2); -x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7; -x_5 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8; -x_6 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6; +x_5 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7; +x_6 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8; x_7 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_7, 0, x_4); lean_ctor_set(x_7, 1, x_3); @@ -593,23 +2510,20 @@ x_8 = l_Lean_registerParametricAttribute___rarg(x_2, x_7, x_1); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; -x_7 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); +x_7 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_3); -lean_dec(x_2); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__2(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -617,11 +2531,11 @@ lean_dec(x_1); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____lambda__3(x_1, x_2, x_3); +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__3(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; @@ -639,7 +2553,7 @@ LEAN_EXPORT uint8_t lean_has_specialize_attribute(lean_object* x_1, lean_object* _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1; +x_3 = l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1; x_4 = l_Lean_Compiler_hasSpecializeAttribute___closed__1; lean_inc(x_2); lean_inc(x_1); @@ -852,36 +2766,6 @@ x_2 = l_Std_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_SpecState_specInfo___default___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Std_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_SpecState_specInfo___default___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_SpecState_specInfo___default___closed__1; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_SpecState_specInfo___default___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_SpecState_specInfo___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} static lean_object* _init_l_Lean_Compiler_SpecState_specInfo___default() { _start: { @@ -889,7 +2773,7 @@ lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_1 = lean_unsigned_to_nat(0u); x_2 = l_Std_mkHashMapImp___rarg(x_1); x_3 = 1; -x_4 = l_Lean_Compiler_SpecState_specInfo___default___closed__3; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11; x_5 = lean_alloc_ctor(0, 2, 1); lean_ctor_set(x_5, 0, x_2); lean_ctor_set(x_5, 1, x_4); @@ -914,18 +2798,6 @@ x_2 = l_Std_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_SpecState_cache___default___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_SpecState_specInfo___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} static lean_object* _init_l_Lean_Compiler_SpecState_cache___default() { _start: { @@ -933,7 +2805,7 @@ lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_1 = lean_unsigned_to_nat(0u); x_2 = l_Std_mkHashMapImp___rarg(x_1); x_3 = 1; -x_4 = l_Lean_Compiler_SpecState_cache___default___closed__1; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16; x_5 = lean_alloc_ctor(0, 2, 1); lean_ctor_set(x_5, 0, x_2); lean_ctor_set(x_5, 1, x_4); @@ -965,7 +2837,7 @@ _start: uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = 1; x_2 = l_Lean_Compiler_instInhabitedSpecState___closed__1; -x_3 = l_Lean_Compiler_SpecState_specInfo___default___closed__3; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11; x_4 = lean_alloc_ctor(0, 2, 1); lean_ctor_set(x_4, 0, x_2); lean_ctor_set(x_4, 1, x_3); @@ -979,7 +2851,7 @@ _start: uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = 1; x_2 = l_Lean_Compiler_instInhabitedSpecState___closed__1; -x_3 = l_Lean_Compiler_SpecState_cache___default___closed__1; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16; x_4 = lean_alloc_ctor(0, 2, 1); lean_ctor_set(x_4, 0, x_2); lean_ctor_set(x_4, 1, x_3); @@ -3149,7 +5021,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -3171,7 +5043,7 @@ return x_4; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -3209,7 +5081,7 @@ size_t x_15; size_t x_16; lean_object* x_17; x_15 = 0; x_16 = lean_usize_of_nat(x_7); lean_dec(x_7); -x_17 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2(x_6, x_15, x_16, x_4); +x_17 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2(x_6, x_15, x_16, x_4); lean_dec(x_6); x_2 = x_11; x_4 = x_17; @@ -3223,7 +5095,7 @@ return x_4; } } } -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__1(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; uint8_t x_5; @@ -3252,24 +5124,24 @@ size_t x_7; size_t x_8; lean_object* x_9; x_7 = 0; x_8 = lean_usize_of_nat(x_3); lean_dec(x_3); -x_9 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3(x_2, x_7, x_8, x_1); +x_9 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3(x_2, x_7, x_8, x_1); lean_dec(x_2); return x_9; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____lambda__1(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; x_2 = l_Lean_Compiler_instInhabitedSpecState___closed__4; -x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__1(x_2, x_1); +x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__1(x_2, x_1); x_4 = l_Lean_Compiler_SpecState_switch(x_3); return x_4; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1() { _start: { lean_object* x_1; @@ -3277,17 +5149,17 @@ x_1 = lean_mk_string_from_bytes("specExt", 7); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3() { _start: { lean_object* x_1; @@ -3296,7 +5168,7 @@ lean_closure_set(x_1, 0, lean_box(0)); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4() { _start: { lean_object* x_1; @@ -3304,22 +5176,22 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_SpecState_addEntry), 2, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____lambda__1), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6() { +static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2; -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4; -x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5; -x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3; +x_1 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4; +x_3 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5; +x_4 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3; x_5 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_2); @@ -3328,16 +5200,16 @@ lean_ctor_set(x_5, 3, x_4); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6; +x_2 = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6; x_3 = l_Lean_registerSimplePersistentEnvExtension___rarg(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { size_t x_5; size_t x_6; lean_object* x_7; @@ -3345,12 +5217,12 @@ x_5 = lean_unbox_usize(x_2); lean_dec(x_2); x_6 = lean_unbox_usize(x_3); lean_dec(x_3); -x_7 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__2(x_1, x_5, x_6, x_4); +x_7 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__2(x_1, x_5, x_6, x_4); lean_dec(x_1); return x_7; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { size_t x_5; size_t x_6; lean_object* x_7; @@ -3358,7 +5230,7 @@ x_5 = lean_unbox_usize(x_2); lean_dec(x_2); x_6 = lean_unbox_usize(x_3); lean_dec(x_3); -x_7 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____spec__3(x_1, x_5, x_6, x_4); +x_7 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____spec__3(x_1, x_5, x_6, x_4); lean_dec(x_1); return x_7; } @@ -3970,6 +5842,7 @@ return x_3; } } lean_object* initialize_Init(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Meta_Basic(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Attributes(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_Specialize(uint8_t builtin, lean_object* w) { @@ -3979,6 +5852,9 @@ _G_initialized = true; res = initialize_Init(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Meta_Basic(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = initialize_Lean_Attributes(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); @@ -4014,25 +5890,117 @@ if (lean_io_result_is_error(res)) return res; l_Lean_Compiler_nospecializeAttr = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Compiler_nospecializeAttr); lean_dec_ref(res); -}l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__1); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__2); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__3); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__4); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__5); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__6); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__7); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__8); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58____closed__9); -if (builtin) {res = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_58_(lean_io_mk_world()); +}l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__1); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__2); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__3); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__4); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__5); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__6); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__7); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__2___closed__8); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__1); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__2); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__3); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__4); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__5); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___lambda__3___closed__6); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__1); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__2); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__3); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__4); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__5); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__6); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__7); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__8); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__9); +l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10 = _init_l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10(); +lean_mark_persistent(l_Array_forInUnsafe_loop___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__8___closed__10); +l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1 = _init_l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1(); +lean_mark_persistent(l_Array_qsort_sort___at___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___spec__9___closed__1); +l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1 = _init_l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1(); +lean_mark_persistent(l___private_Lean_Compiler_Specialize_0__Lean_Compiler_elabSpecArgs___lambda__1___closed__1); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__1); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__2); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__3); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__4); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__5); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__6); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__7); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__8); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__9); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__10); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__11); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__12); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__13); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__14 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__14(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__14); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__15); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__16); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__17 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__17(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__17); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__18 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__18(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__18); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__19); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__20); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____lambda__1___closed__21); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__1); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__2); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__3); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__4); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__5); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__6); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__7); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689____closed__8); +if (builtin) {res = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_689_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Compiler_specializeAttr = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Compiler_specializeAttr); @@ -4046,16 +6014,8 @@ l_Lean_Compiler_instInhabitedSpecInfo___closed__1 = _init_l_Lean_Compiler_instIn lean_mark_persistent(l_Lean_Compiler_instInhabitedSpecInfo___closed__1); l_Lean_Compiler_instInhabitedSpecInfo = _init_l_Lean_Compiler_instInhabitedSpecInfo(); lean_mark_persistent(l_Lean_Compiler_instInhabitedSpecInfo); -l_Lean_Compiler_SpecState_specInfo___default___closed__1 = _init_l_Lean_Compiler_SpecState_specInfo___default___closed__1(); -lean_mark_persistent(l_Lean_Compiler_SpecState_specInfo___default___closed__1); -l_Lean_Compiler_SpecState_specInfo___default___closed__2 = _init_l_Lean_Compiler_SpecState_specInfo___default___closed__2(); -lean_mark_persistent(l_Lean_Compiler_SpecState_specInfo___default___closed__2); -l_Lean_Compiler_SpecState_specInfo___default___closed__3 = _init_l_Lean_Compiler_SpecState_specInfo___default___closed__3(); -lean_mark_persistent(l_Lean_Compiler_SpecState_specInfo___default___closed__3); l_Lean_Compiler_SpecState_specInfo___default = _init_l_Lean_Compiler_SpecState_specInfo___default(); lean_mark_persistent(l_Lean_Compiler_SpecState_specInfo___default); -l_Lean_Compiler_SpecState_cache___default___closed__1 = _init_l_Lean_Compiler_SpecState_cache___default___closed__1(); -lean_mark_persistent(l_Lean_Compiler_SpecState_cache___default___closed__1); l_Lean_Compiler_SpecState_cache___default = _init_l_Lean_Compiler_SpecState_cache___default(); lean_mark_persistent(l_Lean_Compiler_SpecState_cache___default); l_Lean_Compiler_instInhabitedSpecState___closed__1 = _init_l_Lean_Compiler_instInhabitedSpecState___closed__1(); @@ -4076,19 +6036,19 @@ l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__ l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__2 = _init_l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__2(); l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__3 = _init_l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__3(); lean_mark_persistent(l_Std_PersistentHashMap_insertAux___at_Lean_Compiler_SpecState_addEntry___spec__3___closed__3); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__1); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__2); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__3); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__4); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__5); -l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6(); -lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386____closed__6); -if (builtin) {res = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_386_(lean_io_mk_world()); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__1); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__2); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__3); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__4); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__5); +l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6 = _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6(); +lean_mark_persistent(l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024____closed__6); +if (builtin) {res = l_Lean_Compiler_initFn____x40_Lean_Compiler_Specialize___hyg_1024_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Compiler_specExtension = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Compiler_specExtension);