From d9243e07f9ba0b3cd2571606edd28fcb305a8b47 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 27 Oct 2022 09:55:09 -0700 Subject: [PATCH] chore: update stage0 --- stage0/src/Lean/Compiler/LCNF/SpecInfo.lean | 31 +- stage0/src/Lean/Environment.lean | 11 +- stage0/stdlib/Lean/Class.c | 404 ++-- stage0/stdlib/Lean/Compiler/ExternAttr.c | 10 +- stage0/stdlib/Lean/Compiler/LCNF/SpecInfo.c | 1769 ++++++----------- stage0/stdlib/Lean/Compiler/LCNF/Specialize.c | 55 +- stage0/stdlib/Lean/Environment.c | 108 +- 7 files changed, 976 insertions(+), 1412 deletions(-) diff --git a/stage0/src/Lean/Compiler/LCNF/SpecInfo.lean b/stage0/src/Lean/Compiler/LCNF/SpecInfo.lean index 9399a45aaf..d0553efe66 100644 --- a/stage0/src/Lean/Compiler/LCNF/SpecInfo.lean +++ b/stage0/src/Lean/Compiler/LCNF/SpecInfo.lean @@ -50,7 +50,7 @@ instance : ToMessageData SpecParamInfo where | .other => "O" structure SpecState where - specInfo : SMap Name (Array SpecParamInfo) := {} + specInfo : PHashMap Name (Array SpecParamInfo) := {} deriving Inhabited structure SpecEntry where @@ -64,11 +64,17 @@ def addEntry (s : SpecState) (e : SpecEntry) : SpecState := match s with | { specInfo } => { specInfo := specInfo.insert e.declName e.paramsInfo } -def switch : SpecState → SpecState - | { specInfo } => { specInfo := specInfo.switch } - end SpecState +private abbrev declLt (a b : SpecEntry) := + Name.quickLt a.declName b.declName + +private abbrev sortEntries (entries : Array SpecEntry) : Array SpecEntry := + entries.qsort declLt + +private abbrev findAtSorted? (entries : Array SpecEntry) (declName : Name) : Option SpecEntry := + entries.binSearch { declName, paramsInfo := #[] } declLt + /-- Extension for storing `SpecParamInfo` for declarations being compiled. Remark: we only store information for declarations that will be specialized. @@ -76,7 +82,8 @@ Remark: we only store information for declarations that will be specialized. builtin_initialize specExtension : SimplePersistentEnvExtension SpecEntry SpecState ← registerSimplePersistentEnvExtension { addEntryFn := SpecState.addEntry - addImportedFn := fun es => mkStateFromImportedEntries SpecState.addEntry {} es |>.switch + addImportedFn := fun _ => {} + toArrayFn := fun s => sortEntries s.toArray } /-- @@ -188,13 +195,19 @@ def saveSpecParamInfo (decls : Array Decl) : CompilerM Unit := do modifyEnv fun env => specExtension.addEntry env { declName := decl.name, paramsInfo } def getSpecParamInfoCore? (env : Environment) (declName : Name) : Option (Array SpecParamInfo) := - (specExtension.getState env).specInfo.find? declName + match env.getModuleIdxFor? declName with + | some modIdx => + if let some entry := findAtSorted? (specExtension.getModuleEntries env modIdx) declName then + some entry.paramsInfo + else + none + | none => (specExtension.getState env).specInfo.find? declName def getSpecParamInfo? [Monad m] [MonadEnv m] (declName : Name) : m (Option (Array SpecParamInfo)) := - return (specExtension.getState (← getEnv)).specInfo.find? declName + return getSpecParamInfoCore? (← getEnv) declName -def isSpecCandidate [Monad m] [MonadEnv m] (declName : Name) : m Bool := - return (specExtension.getState (← getEnv)).specInfo.contains declName +def isSpecCandidate [Monad m] [MonadEnv m] (declName : Name) : m Bool := do + return getSpecParamInfoCore? (← getEnv) declName |>.isSome builtin_initialize registerTraceClass `Compiler.specialize.info diff --git a/stage0/src/Lean/Environment.lean b/stage0/src/Lean/Environment.lean index 30602e9a92..66bfc88dec 100644 --- a/stage0/src/Lean/Environment.lean +++ b/stage0/src/Lean/Environment.lean @@ -792,7 +792,16 @@ Environment extension for tracking all `namespace` declared by users. -/ builtin_initialize namespacesExt : SimplePersistentEnvExtension Name NameSSet ← registerSimplePersistentEnvExtension { - addImportedFn := fun as => mkStateFromImportedEntries NameSSet.insert NameSSet.empty as |>.switch + addImportedFn := fun as => + /- + We compute a `HashMap Name Unit` and then convert to `NameSSet` to improve Lean startup time. + Note: we have used `perf` to profile Lean startup cost when processing a file containing just `import Lean`. + 6.18% of the runtime is here. It was 9.31% before the `HashMap` optimization. + -/ + let capacity := as.foldl (init := 0) fun r e => r + e.size + let map : HashMap Name Unit := mkHashMap capacity + let map := mkStateFromImportedEntries (fun map name => map.insert name ()) map as + SMap.fromHashMap map |>.switch addEntryFn := fun s n => s.insert n } diff --git a/stage0/stdlib/Lean/Class.c b/stage0/stdlib/Lean/Class.c index 713f20dc53..706e6b1a5b 100644 --- a/stage0/stdlib/Lean/Class.c +++ b/stage0/stdlib/Lean/Class.c @@ -13,188 +13,188 @@ #ifdef __cplusplus extern "C" { #endif -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5; LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_ClassState_outParamMap___default___spec__2___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextPartial___at_Lean_Core_instAddMessageContextCoreM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9; size_t lean_usize_add(size_t, size_t); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2; lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_setEnv___at_Lean_registerParametricAttribute___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_ClassState_switch(lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13; uint8_t lean_usize_dec_eq(size_t, size_t); static lean_object* l_Lean_addClass___lambda__2___closed__2; lean_object* lean_array_uget(lean_object*, size_t); LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_ClassState_addEntry___spec__7(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8; LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_contains___at_Lean_isClass___spec__3(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_getOutParamPositions_x3f___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_ClassState_addEntry(lean_object*, lean_object*); uint8_t l_Lean_Name_quickLt(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17; LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_ClassState_addEntry___spec__6(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4; LEAN_EXPORT lean_object* l_Lean_SMap_contains___at_Lean_isClass___spec__1___boxed(lean_object*, lean_object*); static lean_object* l_Lean_addClass___lambda__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_instInhabitedClassState; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5; LEAN_EXPORT lean_object* l_Lean_classExtension; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__3; static lean_object* l_Lean_SMap_empty___at_Lean_ClassState_outParamMap___default___spec__1___closed__2; size_t lean_usize_sub(size_t, size_t); lean_object* lean_environment_find(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_getOutParamPositions_x3f___spec__2(lean_object*, lean_object*); static lean_object* l___private_Lean_Class_0__Lean_checkOutParam___closed__3; lean_object* lean_st_ref_get(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____lambda__1(lean_object*); LEAN_EXPORT uint8_t l_Lean_ClassEntry_lt(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_SMap_switch___at_Lean_ClassState_switch___spec__1(lean_object*); lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); static lean_object* l___private_Lean_Class_0__Lean_checkOutParam___closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6; lean_object* lean_expr_instantiate1(lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8; lean_object* lean_string_append(lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9; +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____lambda__1(lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13; LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_ClassState_addEntry___spec__11(lean_object*, lean_object*, lean_object*); size_t lean_usize_shift_right(size_t, size_t); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6; LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_ClassState_addEntry___spec__9(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_SMap_empty___at_Lean_ClassState_outParamMap___default___spec__1___closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2; -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1; lean_object* lean_nat_add(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_ClassEntry_lt___boxed(lean_object*, lean_object*); static lean_object* l___private_Lean_Class_0__Lean_checkOutParam___closed__4; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2; lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1; size_t lean_uint64_to_usize(uint64_t); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12; static lean_object* l_Lean_addClass___lambda__2___closed__3; LEAN_EXPORT lean_object* l_Lean_addClass___lambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_isClass___spec__2(lean_object*, lean_object*); uint64_t l_Lean_Name_hash___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__11; uint8_t l___private_Lean_Attributes_0__Lean_beqAttributeKind____x40_Lean_Attributes___hyg_366_(uint8_t, uint8_t); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2; LEAN_EXPORT lean_object* l_Lean_SMap_insert___at_Lean_ClassState_addEntry___spec__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Class_0__Lean_checkOutParam(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__3(lean_object*, size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__3(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1; lean_object* l_Lean_Name_toString(lean_object*, uint8_t); lean_object* l_Lean_Name_num___override(lean_object*, lean_object*); uint8_t lean_is_out_param(lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_registerTagAttribute___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_isClass___closed__1; static lean_object* l_Lean_SMap_empty___at_Lean_ClassState_outParamMap___default___spec__1___closed__3; LEAN_EXPORT lean_object* l_Lean_isClass___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__2(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__2(lean_object*, size_t, size_t, lean_object*); lean_object* l_Nat_repr(lean_object*); static lean_object* l___private_Lean_Class_0__Lean_checkOutParam___closed__2; LEAN_EXPORT lean_object* l_Lean_addClass(lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12; LEAN_EXPORT uint8_t l_Lean_Expr_hasAnyFVar_visit___at___private_Lean_Class_0__Lean_checkOutParam___spec__3(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_ClassState_addEntry___spec__7___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2; size_t lean_usize_shift_left(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_getOutParamPositions_x3f___spec__3(lean_object*, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__1(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10; LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_getOutParamPositions_x3f___spec__6___boxed(lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); lean_object* l_Lean_registerBuiltinAttribute(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_SMap_empty___at_Lean_ClassState_outParamMap___default___spec__1; lean_object* l_Lean_throwError___at_Lean_AttributeImpl_erase___default___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_isClass___spec__2___boxed(lean_object*, lean_object*); size_t lean_usize_mul(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_addClass___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_contains___at_Lean_isClass___spec__3___boxed(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16; size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Lean_Expr_hasAnyFVar_visit___at___private_Lean_Class_0__Lean_checkOutParam___spec__3___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_getOutParamPositions_x3f___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_getOutParamPositions_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ConstantInfo_type(lean_object*); lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t lean_usize_land(size_t, size_t); LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAux___at_Lean_isClass___spec__4(lean_object*, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_getOutParamPositions_x3f(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_containsAux___at_Lean_isClass___spec__4___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvar___override(lean_object*); LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAtAux___at_Lean_isClass___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2; static lean_object* l_Lean_instInhabitedClassState___closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15; LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Class_0__Lean_checkOutParam___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_ClassState_outParamMap___default___spec__2(lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16; lean_object* lean_list_to_array(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_ClassState_addEntry___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_getOutParamPositions_x3f___spec__6(lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7; -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120_(lean_object*); static lean_object* l_Lean_instInhabitedClassState___closed__2; -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_addClass___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_ClassState_outParamMap___default; static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__3; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Array_contains___at___private_Lean_Class_0__Lean_checkOutParam___spec__1(lean_object*, lean_object*); static lean_object* l_Lean_addClass___lambda__1___closed__1; lean_object* lean_nat_mul(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__1; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_ClassState_addEntry___spec__8(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_containsAtAux___at_Lean_isClass___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__2; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5; -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Attribute_Builtin_ensureNoArgs(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18; LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Class_0__Lean_checkOutParam___spec__2(lean_object*, lean_object*, size_t, size_t); lean_object* lean_usize_to_nat(size_t); LEAN_EXPORT lean_object* l_Array_contains___at___private_Lean_Class_0__Lean_checkOutParam___spec__1___boxed(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14; static lean_object* l_Lean_addClass___closed__1; -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_hasFVar(lean_object*); -static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6; +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5; LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_getOutParamPositions_x3f___spec__5(lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_SMap_contains___at_Lean_isClass___spec__1(lean_object*, lean_object*); LEAN_EXPORT uint8_t lean_has_out_params(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_hasOutParams___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3; LEAN_EXPORT uint8_t lean_is_class(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_ClassState_addEntry___spec__10(lean_object*, lean_object*); +static lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_ClassState_addEntry___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_SMap_find_x3f___at_Lean_getOutParamPositions_x3f___spec__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_ClassState_addEntry___spec__4(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_ClassState_addEntry___spec__2(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_addClass___lambda__2___closed__4; @@ -1366,7 +1366,7 @@ x_2 = l_Lean_SMap_switch___at_Lean_ClassState_switch___spec__1(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____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_initFn____x40_Lean_Class___hyg_120____spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -1388,7 +1388,7 @@ return x_4; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____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_initFn____x40_Lean_Class___hyg_120____spec__3(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -1426,7 +1426,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_initFn____x40_Lean_Class___hyg_116____spec__2(x_6, x_15, x_16, x_4); +x_17 = l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__2(x_6, x_15, x_16, x_4); lean_dec(x_6); x_2 = x_11; x_4 = x_17; @@ -1440,7 +1440,7 @@ return x_4; } } } -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__1(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; uint8_t x_5; @@ -1469,24 +1469,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_initFn____x40_Lean_Class___hyg_116____spec__3(x_2, x_7, x_8, x_1); +x_9 = l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__3(x_2, x_7, x_8, x_1); lean_dec(x_2); return x_9; } } } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116____lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120____lambda__1(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; x_2 = l_Lean_SMap_empty___at_Lean_ClassState_outParamMap___default___spec__1; -x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_116____spec__1(x_2, x_1); +x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__1(x_2, x_1); x_4 = l_Lean_SMap_switch___at_Lean_ClassState_switch___spec__1(x_3); return x_4; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1() { _start: { lean_object* x_1; @@ -1494,7 +1494,7 @@ x_1 = lean_mk_string_from_bytes("Lean", 4); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2() { _start: { lean_object* x_1; @@ -1502,17 +1502,17 @@ x_1 = lean_mk_string_from_bytes("classExtension", 14); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__3() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4() { _start: { lean_object* x_1; @@ -1521,7 +1521,7 @@ lean_closure_set(x_1, 0, lean_box(0)); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5() { _start: { lean_object* x_1; @@ -1529,22 +1529,22 @@ x_1 = lean_alloc_closure((void*)(l_Lean_ClassState_addEntry), 2, 0); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_116____lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_120____lambda__1), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7() { _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_initFn____x40_Lean_Class___hyg_116____closed__3; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5; -x_3 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6; -x_4 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5; +x_3 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6; +x_4 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4; x_5 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_2); @@ -1553,16 +1553,16 @@ lean_ctor_set(x_5, 3, x_4); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_116_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_120_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7; x_3 = l_Lean_registerSimplePersistentEnvExtension___rarg(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_116____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_initFn____x40_Lean_Class___hyg_120____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; @@ -1570,12 +1570,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_initFn____x40_Lean_Class___hyg_116____spec__2(x_1, x_5, x_6, x_4); +x_7 = l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____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_initFn____x40_Lean_Class___hyg_116____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_initFn____x40_Lean_Class___hyg_120____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; @@ -1583,7 +1583,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_initFn____x40_Lean_Class___hyg_116____spec__3(x_1, x_5, x_6, x_4); +x_7 = l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Class___hyg_120____spec__3(x_1, x_5, x_6, x_4); lean_dec(x_1); return x_7; } @@ -2754,7 +2754,7 @@ lean_dec(x_1); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; @@ -2792,7 +2792,7 @@ return x_13; } } } -LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { if (lean_obj_tag(x_1) == 0) @@ -2805,7 +2805,7 @@ x_6 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_6, 0, x_5); x_7 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_7, 0, x_6); -x_8 = l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2(x_7, x_2, x_3, x_4); +x_8 = l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2(x_7, x_2, x_3, x_4); return x_8; } else @@ -2821,12 +2821,12 @@ return x_10; } } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____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_Lean_initFn____x40_Lean_Class___hyg_748____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; x_7 = l_Lean_addClass(x_1, x_2); -x_8 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_7, x_4, x_5, x_6); +x_8 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_7, x_4, x_5, x_6); if (lean_obj_tag(x_8) == 0) { lean_object* x_9; lean_object* x_10; lean_object* x_11; @@ -2862,7 +2862,7 @@ return x_15; } } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1() { _start: { lean_object* x_1; @@ -2870,16 +2870,16 @@ x_1 = lean_mk_string_from_bytes("invalid attribute 'class', must be global", 41) return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2(lean_object* x_1, lean_object* x_2, uint8_t 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; @@ -2908,7 +2908,7 @@ if (x_14 == 0) lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_dec(x_10); lean_dec(x_1); -x_15 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2; +x_15 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2; x_16 = l_Lean_throwError___at_Lean_registerTagAttribute___spec__1(x_15, x_4, x_5, x_12); lean_dec(x_5); lean_dec(x_4); @@ -2935,7 +2935,7 @@ else { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__1(x_10, x_1, x_21, x_4, x_5, x_12); +x_22 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__1(x_10, x_1, x_21, x_4, x_5, x_12); lean_dec(x_5); lean_dec(x_4); return x_22; @@ -2969,7 +2969,7 @@ return x_26; } } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1() { _start: { lean_object* x_1; @@ -2977,35 +2977,35 @@ x_1 = lean_mk_string_from_bytes("attribute cannot be erased", 26); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2; +x_5 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2; x_6 = l_Lean_throwError___at_Lean_AttributeImpl_erase___default___spec__1(x_5, x_2, x_3, x_4); return x_6; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2() { _start: { lean_object* x_1; @@ -3013,17 +3013,17 @@ x_1 = lean_mk_string_from_bytes("initFn", 6); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4() { _start: { lean_object* x_1; @@ -3031,27 +3031,27 @@ x_1 = lean_mk_string_from_bytes("_@", 2); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7() { _start: { lean_object* x_1; @@ -3059,17 +3059,17 @@ x_1 = lean_mk_string_from_bytes("Class", 5); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9() { _start: { lean_object* x_1; @@ -3077,27 +3077,27 @@ x_1 = lean_mk_string_from_bytes("_hyg", 4); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__11() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10; -x_2 = lean_unsigned_to_nat(744u); +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10; +x_2 = lean_unsigned_to_nat(748u); x_3 = l_Lean_Name_num___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12() { _start: { lean_object* x_1; @@ -3105,17 +3105,17 @@ x_1 = lean_mk_string_from_bytes("class", 5); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14() { _start: { lean_object* x_1; @@ -3123,13 +3123,13 @@ x_1 = lean_mk_string_from_bytes("type class", 10); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15() { _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_initFn____x40_Lean_Class___hyg_744____closed__11; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13; -x_3 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13; +x_3 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14; x_4 = 0; x_5 = lean_alloc_ctor(0, 3, 1); lean_ctor_set(x_5, 0, x_1); @@ -3139,29 +3139,29 @@ lean_ctor_set_uint8(x_5, sizeof(void*)*3, x_4); return x_5; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___boxed), 6, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___boxed), 6, 0); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___boxed), 4, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___boxed), 4, 0); return x_1; } } -static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16; -x_3 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17; +x_1 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16; +x_3 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17; x_4 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -3169,61 +3169,61 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18; +x_2 = l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18; x_3 = l_Lean_registerBuiltinAttribute(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2___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_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Lean_throwError___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__2(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_2); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1___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_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_1, x_2, x_3, x_4); +x_5 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_2); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____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_initFn____x40_Lean_Class___hyg_748____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_initFn____x40_Lean_Class___hyg_744____lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____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_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____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) { _start: { uint8_t x_7; lean_object* x_8; x_7 = lean_unbox(x_3); lean_dec(x_3); -x_8 = l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2(x_1, x_2, x_7, x_4, x_5, x_6); +x_8 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2(x_1, x_2, x_7, x_4, x_5, x_6); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___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_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3(x_1, x_2, x_3, x_4); +x_5 = l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); @@ -3263,21 +3263,21 @@ l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___clo l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__2(); l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__3(); lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_ClassState_addEntry___spec__3___closed__3); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__1); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__2); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__3 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__3(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__3); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__4); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__5); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__6); -l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7 = _init_l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_116____closed__7); -if (builtin) {res = l_Lean_initFn____x40_Lean_Class___hyg_116_(lean_io_mk_world()); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__1); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__2); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__3); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__4); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__5); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__6); +l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7 = _init_l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_120____closed__7); +if (builtin) {res = l_Lean_initFn____x40_Lean_Class___hyg_120_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_classExtension = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_classExtension); @@ -3304,51 +3304,51 @@ l_Lean_addClass___lambda__2___closed__4 = _init_l_Lean_addClass___lambda__2___cl lean_mark_persistent(l_Lean_addClass___lambda__2___closed__4); l_Lean_addClass___closed__1 = _init_l_Lean_addClass___closed__1(); lean_mark_persistent(l_Lean_addClass___closed__1); -l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__1); -l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__2___closed__2); -l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__1); -l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____lambda__3___closed__2); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__1); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__2); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__3); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__4); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__5); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__6); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__7); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__8); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__9); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__10); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__11 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__11(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__11); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__12); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__13); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__14); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__15); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__16); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__17); -l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18 = _init_l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18(); -lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_744____closed__18); -res = l_Lean_initFn____x40_Lean_Class___hyg_744_(lean_io_mk_world()); +l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__1); +l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__2___closed__2); +l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__1); +l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____lambda__3___closed__2); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__1); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__2); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__3); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__4); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__5); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__6); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__7); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__8); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__9); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__10); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__11); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__12); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__13); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__14); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__15); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__16); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__17); +l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18 = _init_l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Class___hyg_748____closed__18); +res = l_Lean_initFn____x40_Lean_Class___hyg_748_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); diff --git a/stage0/stdlib/Lean/Compiler/ExternAttr.c b/stage0/stdlib/Lean/Compiler/ExternAttr.c index c78b599db3..d1b642b432 100644 --- a/stage0/stdlib/Lean/Compiler/ExternAttr.c +++ b/stage0/stdlib/Lean/Compiler/ExternAttr.c @@ -176,11 +176,11 @@ LEAN_EXPORT lean_object* l_Lean_getExternEntryFor___boxed(lean_object*, lean_obj LEAN_EXPORT lean_object* l_Lean_externAttr; lean_object* lean_uint32_to_nat(uint32_t); static lean_object* l_Lean_getExternConstArityExport___closed__7; -lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_ExternAttr_0__Lean_getExternConstArity___closed__10; static lean_object* l___private_Lean_Compiler_ExternAttr_0__Lean_getExternConstArity___closed__20; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_ExternAttr_0__Lean_syntaxToExternAttrData___spec__3___boxed(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_ExternAttr_0__Lean_syntaxToExternAttrData___spec__3___closed__2; +lean_object* l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Compiler_ExternAttr_0__Lean_syntaxToExternAttrData___spec__3___closed__1; uint8_t lean_string_dec_eq(lean_object*, lean_object*); static lean_object* _init_l_Lean_ExternAttrData_arity_x3f___default() { @@ -817,7 +817,7 @@ else lean_object* x_16; lean_object* x_17; lean_free_object(x_6); x_16 = lean_add_extern(x_10, x_1); -x_17 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_16, x_3, x_4, x_9); +x_17 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_16, x_3, x_4, x_9); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -858,7 +858,7 @@ else lean_object* x_25; lean_object* x_26; lean_free_object(x_6); x_25 = lean_add_extern(x_10, x_1); -x_26 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_25, x_3, x_4, x_9); +x_26 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_25, x_3, x_4, x_9); if (lean_obj_tag(x_26) == 0) { lean_object* x_27; lean_object* x_28; lean_object* x_29; @@ -931,7 +931,7 @@ else { lean_object* x_43; lean_object* x_44; x_43 = lean_add_extern(x_36, x_1); -x_44 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_43, x_3, x_4, x_35); +x_44 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_43, x_3, x_4, x_35); if (lean_obj_tag(x_44) == 0) { lean_object* x_45; lean_object* x_46; lean_object* x_47; @@ -973,7 +973,7 @@ else { lean_object* x_52; lean_object* x_53; x_52 = lean_add_extern(x_36, x_1); -x_53 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_744____spec__1(x_52, x_3, x_4, x_35); +x_53 = l_Lean_ofExcept___at_Lean_initFn____x40_Lean_Class___hyg_748____spec__1(x_52, x_3, x_4, x_35); if (lean_obj_tag(x_53) == 0) { lean_object* x_54; lean_object* x_55; lean_object* x_56; diff --git a/stage0/stdlib/Lean/Compiler/LCNF/SpecInfo.c b/stage0/stdlib/Lean/Compiler/LCNF/SpecInfo.c index aaf4a51013..cc952262e2 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/SpecInfo.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/SpecInfo.c @@ -21,123 +21,112 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_noConfusion(lean_obj LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f(lean_object*); size_t lean_usize_add(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__7___boxed(lean_object*, lean_object*); lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____lambda__1(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__26; lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); uint8_t l_Array_contains___at___private_Lean_Meta_FunInfo_0__Lean_Meta_collectDeps_visit___spec__2(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8; +lean_object* lean_nat_div(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_getModuleEntries___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__11; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3___boxed(lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); +uint8_t l_Lean_Name_quickLt(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1; lean_object* l___private_Init_Util_0__outOfBounds___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(lean_object*, lean_object*); static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___spec__1___closed__1; -lean_object* lean_array_uset(lean_object*, size_t, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecState_switch(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__12; +static lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1; size_t lean_usize_sub(size_t, size_t); lean_object* l_Lean_Compiler_LCNF_isArrowClass_x3f(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1(lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__12(lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__2; -LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__10(lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_SMap_switch___at_Lean_Compiler_LCNF_SpecState_switch___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(lean_object*, size_t, lean_object*); lean_object* l_Lean_Compiler_getSpecializationArgs_x3f(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__6; LEAN_EXPORT lean_object* l_Array_zipWithAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__10(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkFixedParamsMap(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__23; -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4(lean_object*, size_t, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__1; LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____boxed(lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__5(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4; lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_MessageData_ofList(lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__12; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__13; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__8; +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); -LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__2(lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__21; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_specExtension; lean_object* lean_nat_add(lean_object*, lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__4; static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__1; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4; static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__13___closed__2; lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__13; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9; +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_uint64_to_usize(uint64_t); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__4; -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_noConfusion___rarg(uint8_t, uint8_t, lean_object*); LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__5(lean_object*, size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); -LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__9(lean_object*, lean_object*, lean_object*); uint64_t l_Lean_Name_hash___override(lean_object*); LEAN_EXPORT lean_object* l_Array_zipWithAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16___closed__6; -LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__8(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2605_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2697_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_inheritedTraceOptions; -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__9; lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); static lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16___closed__4; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__17; extern lean_object* l_Lean_Compiler_LCNF_instInhabitedParam; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate(lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_SpecState_specInfo___default___spec__1(lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__3___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__1; lean_object* lean_nat_sub(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecState; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__22; +static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__1; +lean_object* lean_array_swap(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__27; +static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2; static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___spec__1___closed__2; LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16___closed__1; lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2___boxed(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__6(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__7; lean_object* l_instInhabited___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_toCtorIdx___boxed(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); static lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecState_specInfo___default; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__3___closed__2; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_isNoSpecType(lean_object*, lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__2; static lean_object* l_panic___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__8___closed__2; @@ -153,14 +142,13 @@ static lean_object* l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo(uint8_t); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__3___closed__1; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__5; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__29; -LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__1; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__2(lean_object*, lean_object*, lean_object*, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__2; -LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__8; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_shift_left(size_t, size_t); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__18; lean_object* lean_array_to_list(lean_object*, lean_object*); @@ -168,24 +156,20 @@ static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCN static lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__14___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__15___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__16___closed__3; static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__9; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__15; -static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__3; LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__7(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6; LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___lambda__1___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_SpecState_specInfo___default___spec__1___boxed(lean_object*); -size_t lean_usize_modn(size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6; lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__9___closed__1; LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecEntry; -LEAN_EXPORT uint8_t l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__25; -static lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__1; static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__14; size_t lean_usize_mul(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_isEqvAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__6; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___closed__2; @@ -196,10 +180,13 @@ LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpec static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__6; size_t lean_usize_of_nat(lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__15; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); 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___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__10; lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__32; @@ -207,25 +194,19 @@ static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCN lean_object* l_Lean_PersistentArray_push___rarg(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__3; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__5; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__5; LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___lambda__1(lean_object*); -lean_object* l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(lean_object*); +lean_object* l_List_redLength___rarg(lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__3; LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* lean_list_to_array(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__3___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*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_instInhabitedSpecParamInfo; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___closed__1; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3; uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17(lean_object*, lean_object*, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -236,28 +217,27 @@ uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption(lean_object*, lean_ static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__2; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__3(lean_object*, lean_object*, 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_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(lean_object*, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6___boxed(lean_object*, lean_object*); uint8_t l_Lean_TagAttribute_hasTag(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__13___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_nospecializeAttr; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_toCtorIdx(uint8_t); -LEAN_EXPORT lean_object* l_Lean_SMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f(lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__13___closed__1; LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps(lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Init_Data_Option_Basic_0__beqOption____x40_Init_Data_Option_Basic___hyg_1115____at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__1(lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__8___closed__3; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__3(lean_object*, size_t, size_t, lean_object*); -lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23_(uint8_t, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo___closed__10; +lean_object* l_Lean_Environment_getModuleIdxFor_x3f(lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7; +lean_object* l_List_toArrayAux___rarg(lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__16; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__7; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7; lean_object* lean_panic_fn(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_noConfusion___rarg___lambda__1___boxed(lean_object*); extern lean_object* l_Lean_Compiler_LCNF_instInhabitedDecl; @@ -266,15 +246,14 @@ lean_object* lean_mk_array(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecParamInfo_noConfusion___rarg___lambda__1(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__7; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__24; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveSpecParamInfo(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__4(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__2___closed__1; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(lean_object*, lean_object*); uint8_t l_Lean_Compiler_LCNF_isTypeFormerType(lean_object*); lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__31; static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___closed__3; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__2___closed__2; @@ -286,27 +265,27 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compile lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__2___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*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__2___closed__4; static lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__1; LEAN_EXPORT uint8_t l_Array_isEqvAux___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1___boxed(lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__11; static lean_object* l_Lean_Compiler_LCNF_instReprSpecParamInfo___closed__1; -static lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2; lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecState_addEntry(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_to_int(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_reprSpecParamInfo____x40_Lean_Compiler_LCNF_SpecInfo___hyg_23____closed__19; static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__13___closed__3; extern lean_object* l_instInhabitedPUnit; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instReprSpecParamInfo; LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__5___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_hasFwdDeps___spec__1(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_addTrace___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l_Repr_addAppParen(lean_object*, lean_object*); @@ -1086,14 +1065,6 @@ x_3 = l_Lean_Compiler_LCNF_instToMessageDataSpecParamInfo(x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_SpecState_specInfo___default___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -return x_2; -} -} static lean_object* _init_l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__1() { _start: { @@ -1127,55 +1098,16 @@ return x_3; static lean_object* _init_l_Lean_Compiler_LCNF_SpecState_specInfo___default() { _start: { -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -x_3 = 1; -x_4 = l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3; -x_5 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_5, 0, x_2); -lean_ctor_set(x_5, 1, x_4); -lean_ctor_set_uint8(x_5, sizeof(void*)*2, x_3); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_SpecState_specInfo___default___spec__1___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_SpecState_specInfo___default___spec__1(x_1); -lean_dec(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2() { -_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_LCNF_instInhabitedSpecState___closed__1; -x_3 = l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3; -x_4 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_4, 0, x_2); -lean_ctor_set(x_4, 1, x_3); -lean_ctor_set_uint8(x_4, sizeof(void*)*2, x_1); -return x_4; +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3; +return x_1; } } static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedSpecState() { _start: { lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2; +x_1 = l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3; return x_1; } } @@ -1208,7 +1140,7 @@ x_1 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__2; return x_1; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(size_t 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_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(size_t 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; uint8_t x_8; @@ -1235,7 +1167,7 @@ x_17 = lean_usize_shift_right(x_12, x_16); x_18 = lean_unsigned_to_nat(1u); x_19 = lean_nat_add(x_5, x_18); lean_dec(x_5); -x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_6, x_17, x_1, x_9, x_10); +x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_6, x_17, x_1, x_9, x_10); x_4 = lean_box(0); x_5 = x_19; x_6 = x_20; @@ -1243,7 +1175,7 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; @@ -1335,7 +1267,7 @@ return x_29; } } } -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__1() { +static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__1() { _start: { size_t x_1; size_t x_2; size_t x_3; @@ -1345,17 +1277,17 @@ x_3 = lean_usize_shift_left(x_1, x_2); return x_3; } } -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2() { +static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2() { _start: { size_t x_1; size_t x_2; size_t x_3; x_1 = 1; -x_2 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__1; +x_2 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__1; x_3 = lean_usize_sub(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3() { +static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3() { _start: { lean_object* x_1; @@ -1363,7 +1295,7 @@ x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1376,7 +1308,7 @@ lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_7 = lean_ctor_get(x_1, 0); x_8 = 1; x_9 = 5; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2; +x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2; x_11 = lean_usize_land(x_2, x_10); x_12 = lean_usize_to_nat(x_11); x_13 = lean_array_get_size(x_7); @@ -1476,7 +1408,7 @@ lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_3 x_35 = lean_ctor_get(x_15, 0); x_36 = lean_usize_shift_right(x_2, x_9); x_37 = lean_usize_add(x_3, x_8); -x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_35, x_36, x_37, x_4, x_5); +x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_35, x_36, x_37, x_4, x_5); lean_ctor_set(x_15, 0, x_38); x_39 = lean_array_fset(x_17, x_12, x_15); lean_dec(x_12); @@ -1491,7 +1423,7 @@ lean_inc(x_40); lean_dec(x_15); x_41 = lean_usize_shift_right(x_2, x_9); x_42 = lean_usize_add(x_3, x_8); -x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_40, x_41, x_42, x_4, x_5); +x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_40, x_41, x_42, x_4, x_5); x_44 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_44, 0, x_43); x_45 = lean_array_fset(x_17, x_12, x_44); @@ -1522,7 +1454,7 @@ lean_inc(x_48); lean_dec(x_1); x_49 = 1; x_50 = 5; -x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2; +x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2; x_52 = lean_usize_land(x_2, x_51); x_53 = lean_usize_to_nat(x_52); x_54 = lean_array_get_size(x_48); @@ -1607,7 +1539,7 @@ if (lean_is_exclusive(x_57)) { } x_73 = lean_usize_shift_right(x_2, x_50); x_74 = lean_usize_add(x_3, x_49); -x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_71, x_73, x_74, x_4, x_5); +x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_71, x_73, x_74, x_4, x_5); if (lean_is_scalar(x_72)) { x_76 = lean_alloc_ctor(1, 1, 0); } else { @@ -1644,7 +1576,7 @@ if (x_82 == 0) { lean_object* x_83; lean_object* x_84; size_t x_85; uint8_t x_86; x_83 = lean_unsigned_to_nat(0u); -x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__5(x_1, x_83, x_4, x_5); +x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(x_1, x_83, x_4, x_5); x_85 = 7; x_86 = lean_usize_dec_le(x_85, x_3); if (x_86 == 0) @@ -1662,8 +1594,8 @@ lean_inc(x_90); x_91 = lean_ctor_get(x_84, 1); lean_inc(x_91); lean_dec(x_84); -x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3; -x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(x_3, x_90, x_91, lean_box(0), x_83, x_92); +x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3; +x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_3, x_90, x_91, lean_box(0), x_83, x_92); lean_dec(x_91); lean_dec(x_90); return x_93; @@ -1690,7 +1622,7 @@ x_96 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_96, 0, x_94); lean_ctor_set(x_96, 1, x_95); x_97 = lean_unsigned_to_nat(0u); -x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__5(x_96, x_97, x_4, x_5); +x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(x_96, x_97, x_4, x_5); x_99 = 7; x_100 = lean_usize_dec_le(x_99, x_3); if (x_100 == 0) @@ -1708,8 +1640,8 @@ lean_inc(x_104); x_105 = lean_ctor_get(x_98, 1); lean_inc(x_105); lean_dec(x_98); -x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3; -x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(x_3, x_104, x_105, lean_box(0), x_97, x_106); +x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3; +x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_3, x_104, x_105, lean_box(0), x_97, x_106); lean_dec(x_105); lean_dec(x_104); return x_107; @@ -1727,7 +1659,7 @@ return x_98; } } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -1740,7 +1672,7 @@ x_6 = lean_ctor_get(x_1, 1); x_7 = l_Lean_Name_hash___override(x_2); x_8 = lean_uint64_to_usize(x_7); x_9 = 1; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_5, x_8, x_9, x_2, x_3); +x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_5, x_8, x_9, x_2, x_3); x_11 = lean_unsigned_to_nat(1u); x_12 = lean_nat_add(x_6, x_11); lean_dec(x_6); @@ -1759,7 +1691,7 @@ lean_dec(x_1); x_15 = l_Lean_Name_hash___override(x_2); x_16 = lean_uint64_to_usize(x_15); x_17 = 1; -x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_13, x_16, x_17, x_2, x_3); +x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_13, x_16, x_17, x_2, x_3); x_19 = lean_unsigned_to_nat(1u); x_20 = lean_nat_add(x_14, x_19); lean_dec(x_14); @@ -1770,395 +1702,6 @@ return x_21; } } } -LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -uint8_t x_3; -x_3 = 0; -return x_3; -} -else -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 2); -x_6 = lean_name_eq(x_4, x_1); -if (x_6 == 0) -{ -x_2 = x_5; -goto _start; -} -else -{ -uint8_t x_8; -x_8 = 1; -return x_8; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__10(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -return x_1; -} -else -{ -uint8_t x_3; -x_3 = !lean_is_exclusive(x_2); -if (x_3 == 0) -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 2); -x_6 = lean_array_get_size(x_1); -x_7 = l_Lean_Name_hash___override(x_4); -x_8 = lean_uint64_to_usize(x_7); -x_9 = lean_usize_modn(x_8, x_6); -lean_dec(x_6); -x_10 = lean_array_uget(x_1, x_9); -lean_ctor_set(x_2, 2, x_10); -x_11 = lean_array_uset(x_1, x_9, x_2); -x_1 = x_11; -x_2 = x_5; -goto _start; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint64_t x_17; size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_13 = lean_ctor_get(x_2, 0); -x_14 = lean_ctor_get(x_2, 1); -x_15 = lean_ctor_get(x_2, 2); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_2); -x_16 = lean_array_get_size(x_1); -x_17 = l_Lean_Name_hash___override(x_13); -x_18 = lean_uint64_to_usize(x_17); -x_19 = lean_usize_modn(x_18, x_16); -lean_dec(x_16); -x_20 = lean_array_uget(x_1, x_19); -x_21 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_14); -lean_ctor_set(x_21, 2, x_20); -x_22 = lean_array_uset(x_1, x_19, x_21); -x_1 = x_22; -x_2 = x_15; -goto _start; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; uint8_t x_5; -x_4 = lean_array_get_size(x_2); -x_5 = lean_nat_dec_lt(x_1, x_4); -lean_dec(x_4); -if (x_5 == 0) -{ -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -else -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_6 = lean_array_fget(x_2, x_1); -x_7 = lean_box(0); -x_8 = lean_array_fset(x_2, x_1, x_7); -x_9 = l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__10(x_3, x_6); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_1, x_10); -lean_dec(x_1); -x_1 = x_11; -x_2 = x_8; -x_3 = x_9; -goto _start; -} -} -} -LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__8(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; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_3 = lean_array_get_size(x_2); -x_4 = lean_unsigned_to_nat(2u); -x_5 = lean_nat_mul(x_3, x_4); -lean_dec(x_3); -x_6 = lean_box(0); -x_7 = lean_mk_array(x_5, x_6); -x_8 = lean_unsigned_to_nat(0u); -x_9 = l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__9(x_8, x_2, x_7); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_9); -return x_10; -} -} -LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_object* x_4; -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(0); -return x_4; -} -else -{ -uint8_t x_5; -x_5 = !lean_is_exclusive(x_3); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; -x_6 = lean_ctor_get(x_3, 0); -x_7 = lean_ctor_get(x_3, 1); -x_8 = lean_ctor_get(x_3, 2); -x_9 = lean_name_eq(x_6, x_1); -if (x_9 == 0) -{ -lean_object* x_10; -x_10 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(x_1, x_2, x_8); -lean_ctor_set(x_3, 2, x_10); -return x_3; -} -else -{ -lean_dec(x_7); -lean_dec(x_6); -lean_ctor_set(x_3, 1, x_2); -lean_ctor_set(x_3, 0, x_1); -return x_3; -} -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_11 = lean_ctor_get(x_3, 0); -x_12 = lean_ctor_get(x_3, 1); -x_13 = lean_ctor_get(x_3, 2); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_dec(x_3); -x_14 = lean_name_eq(x_11, x_1); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; -x_15 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(x_1, x_2, x_13); -x_16 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_16, 0, x_11); -lean_ctor_set(x_16, 1, x_12); -lean_ctor_set(x_16, 2, x_15); -return x_16; -} -else -{ -lean_object* x_17; -lean_dec(x_12); -lean_dec(x_11); -x_17 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_17, 0, x_1); -lean_ctor_set(x_17, 1, x_2); -lean_ctor_set(x_17, 2, x_13); -return x_17; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_1); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint64_t x_8; size_t x_9; size_t x_10; lean_object* x_11; uint8_t x_12; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_ctor_get(x_1, 1); -x_7 = lean_array_get_size(x_6); -x_8 = l_Lean_Name_hash___override(x_2); -x_9 = lean_uint64_to_usize(x_8); -x_10 = lean_usize_modn(x_9, x_7); -x_11 = lean_array_uget(x_6, x_10); -x_12 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(x_2, x_11); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_13 = lean_unsigned_to_nat(1u); -x_14 = lean_nat_add(x_5, x_13); -lean_dec(x_5); -x_15 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_15, 0, x_2); -lean_ctor_set(x_15, 1, x_3); -lean_ctor_set(x_15, 2, x_11); -x_16 = lean_array_uset(x_6, x_10, x_15); -x_17 = l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(x_14); -x_18 = lean_nat_dec_le(x_17, x_7); -lean_dec(x_7); -lean_dec(x_17); -if (x_18 == 0) -{ -lean_object* x_19; -lean_free_object(x_1); -x_19 = l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__8(x_14, x_16); -return x_19; -} -else -{ -lean_ctor_set(x_1, 1, x_16); -lean_ctor_set(x_1, 0, x_14); -return x_1; -} -} -else -{ -lean_object* x_20; lean_object* x_21; -lean_dec(x_7); -x_20 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(x_2, x_3, x_11); -x_21 = lean_array_uset(x_6, x_10, x_20); -lean_ctor_set(x_1, 1, x_21); -return x_1; -} -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; uint64_t x_25; size_t x_26; size_t x_27; lean_object* x_28; uint8_t x_29; -x_22 = lean_ctor_get(x_1, 0); -x_23 = lean_ctor_get(x_1, 1); -lean_inc(x_23); -lean_inc(x_22); -lean_dec(x_1); -x_24 = lean_array_get_size(x_23); -x_25 = l_Lean_Name_hash___override(x_2); -x_26 = lean_uint64_to_usize(x_25); -x_27 = lean_usize_modn(x_26, x_24); -x_28 = lean_array_uget(x_23, x_27); -x_29 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(x_2, x_28); -if (x_29 == 0) -{ -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_30 = lean_unsigned_to_nat(1u); -x_31 = lean_nat_add(x_22, x_30); -lean_dec(x_22); -x_32 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_32, 0, x_2); -lean_ctor_set(x_32, 1, x_3); -lean_ctor_set(x_32, 2, x_28); -x_33 = lean_array_uset(x_23, x_27, x_32); -x_34 = l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(x_31); -x_35 = lean_nat_dec_le(x_34, x_24); -lean_dec(x_24); -lean_dec(x_34); -if (x_35 == 0) -{ -lean_object* x_36; -x_36 = l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__8(x_31, x_33); -return x_36; -} -else -{ -lean_object* x_37; -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_31); -lean_ctor_set(x_37, 1, x_33); -return x_37; -} -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -lean_dec(x_24); -x_38 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__11(x_2, x_3, x_28); -x_39 = lean_array_uset(x_23, x_27, x_38); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_22); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_SMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = lean_ctor_get_uint8(x_1, sizeof(void*)*2); -if (x_4 == 0) -{ -uint8_t x_5; -x_5 = !lean_is_exclusive(x_1); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_6 = lean_ctor_get(x_1, 1); -x_7 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_6, x_2, x_3); -x_8 = 0; -lean_ctor_set(x_1, 1, x_7); -lean_ctor_set_uint8(x_1, sizeof(void*)*2, x_8); -return x_1; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; lean_object* x_13; -x_9 = lean_ctor_get(x_1, 0); -x_10 = lean_ctor_get(x_1, 1); -lean_inc(x_10); -lean_inc(x_9); -lean_dec(x_1); -x_11 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_10, x_2, x_3); -x_12 = 0; -x_13 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_13, 0, x_9); -lean_ctor_set(x_13, 1, x_11); -lean_ctor_set_uint8(x_13, sizeof(void*)*2, x_12); -return x_13; -} -} -else -{ -uint8_t x_14; -x_14 = !lean_is_exclusive(x_1); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_15 = lean_ctor_get(x_1, 0); -x_16 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__6(x_15, x_2, x_3); -x_17 = 1; -lean_ctor_set(x_1, 0, x_16); -lean_ctor_set_uint8(x_1, sizeof(void*)*2, x_17); -return x_1; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; -x_18 = lean_ctor_get(x_1, 0); -x_19 = lean_ctor_get(x_1, 1); -lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_1); -x_20 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__6(x_18, x_2, x_3); -x_21 = 1; -x_22 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_19); -lean_ctor_set_uint8(x_22, sizeof(void*)*2, x_21); -return x_22; -} -} -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecState_addEntry(lean_object* x_1, lean_object* x_2) { _start: { @@ -2168,23 +1711,23 @@ lean_inc(x_3); x_4 = lean_ctor_get(x_2, 1); lean_inc(x_4); lean_dec(x_2); -x_5 = l_Lean_SMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(x_1, x_3, x_4); +x_5 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__1(x_1, x_3, x_4); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4___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_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___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) { _start: { size_t x_7; lean_object* x_8; x_7 = lean_unbox_usize(x_1); lean_dec(x_1); -x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__4(x_7, x_2, x_3, x_4, x_5, x_6); +x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_7, x_2, x_3, x_4, x_5, x_6); lean_dec(x_3); lean_dec(x_2); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___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_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { size_t x_6; size_t x_7; lean_object* x_8; @@ -2192,188 +1735,394 @@ x_6 = lean_unbox_usize(x_2); lean_dec(x_2); x_7 = lean_unbox_usize(x_3); lean_dec(x_3); -x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3(x_1, x_6, x_7, x_4, x_5); +x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2(x_1, x_6, x_7, x_4, x_5); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7___boxed(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; uint8_t x_5; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_ctor_get(x_2, 0); +x_5 = l_Lean_Name_quickLt(x_3, x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(x_1, x_2); +x_3 = l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt(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_SMap_switch___at_Lean_Compiler_LCNF_SpecState_switch___spec__1(lean_object* x_1) { +static lean_object* _init_l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1() { _start: { -uint8_t x_2; -x_2 = lean_ctor_get_uint8(x_1, sizeof(void*)*2); -if (x_2 == 0) -{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_declLt___boxed), 2, 0); return x_1; } -else -{ -uint8_t x_3; -x_3 = !lean_is_exclusive(x_1); -if (x_3 == 0) -{ -uint8_t x_4; -x_4 = 0; -lean_ctor_set_uint8(x_1, sizeof(void*)*2, x_4); -return x_1; } -else +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: { -lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_object* x_8; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_ctor_get(x_1, 1); -lean_inc(x_6); -lean_inc(x_5); +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); -x_7 = 0; -x_8 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_8, 0, x_5); -lean_ctor_set(x_8, 1, x_6); -lean_ctor_set_uint8(x_8, sizeof(void*)*2, x_7); +return x_2; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; +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_46 = lean_array_get(x_1, x_2, x_17); +lean_inc(x_1); +x_47 = lean_array_get(x_1, x_2, x_3); +x_48 = lean_ctor_get(x_46, 0); +lean_inc(x_48); +lean_dec(x_46); +x_49 = lean_ctor_get(x_47, 0); +lean_inc(x_49); +lean_dec(x_47); +x_50 = l_Lean_Name_quickLt(x_48, x_49); +lean_dec(x_49); +lean_dec(x_48); +if (x_50 == 0) +{ +x_18 = x_2; +goto block_45; +} +else +{ +lean_object* x_51; +x_51 = lean_array_swap(x_2, x_3, x_17); +x_18 = x_51; +goto block_45; +} +block_45: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +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_ctor_get(x_19, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 0); +lean_inc(x_22); +lean_dec(x_20); +x_23 = l_Lean_Name_quickLt(x_21, x_22); +lean_dec(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +lean_inc(x_1); +x_24 = lean_array_get(x_1, x_18, x_17); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +lean_dec(x_24); +x_26 = l_Lean_Name_quickLt(x_25, x_21); +lean_dec(x_21); +lean_dec(x_25); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_17); +x_27 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_28 = l_Array_qpartition_loop___rarg(x_1, x_27, x_4, x_19, x_18, x_3, x_3); +x_5 = x_28; +goto block_13; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +lean_dec(x_19); +x_29 = lean_array_swap(x_18, x_17, x_4); +lean_dec(x_17); +lean_inc(x_1); +x_30 = lean_array_get(x_1, x_29, x_4); +x_31 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_32 = l_Array_qpartition_loop___rarg(x_1, x_31, x_4, x_30, x_29, x_3, x_3); +x_5 = x_32; +goto block_13; +} +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; +lean_dec(x_21); +lean_dec(x_19); +x_33 = lean_array_swap(x_18, x_3, x_4); +lean_inc(x_1); +x_34 = lean_array_get(x_1, x_33, x_17); +lean_inc(x_1); +x_35 = lean_array_get(x_1, x_33, x_4); +x_36 = lean_ctor_get(x_34, 0); +lean_inc(x_36); +lean_dec(x_34); +x_37 = lean_ctor_get(x_35, 0); +lean_inc(x_37); +x_38 = l_Lean_Name_quickLt(x_36, x_37); +lean_dec(x_37); +lean_dec(x_36); +if (x_38 == 0) +{ +lean_object* x_39; lean_object* x_40; +lean_dec(x_17); +x_39 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_40 = l_Array_qpartition_loop___rarg(x_1, x_39, x_4, x_35, x_33, x_3, x_3); +x_5 = x_40; +goto block_13; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +lean_dec(x_35); +x_41 = lean_array_swap(x_33, x_17, x_4); +lean_dec(x_17); +lean_inc(x_1); +x_42 = lean_array_get(x_1, x_41, x_4); +x_43 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1; +lean_inc_n(x_3, 2); +lean_inc(x_1); +x_44 = l_Array_qpartition_loop___rarg(x_1, x_43, x_4, x_42, x_41, x_3, x_3); +x_5 = x_44; +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_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(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___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries(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; +x_2 = lean_array_get_size(x_1); +x_3 = lean_unsigned_to_nat(1u); +x_4 = lean_nat_sub(x_2, x_3); +lean_dec(x_2); +x_5 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry; +x_6 = lean_unsigned_to_nat(0u); +x_7 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(x_5, x_1, x_6, x_4); +lean_dec(x_4); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___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_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(x_1, x_2, x_3, x_4); +lean_dec(x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__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: +{ +uint8_t x_7; +x_7 = lean_nat_dec_le(x_5, x_6); +if (x_7 == 0) +{ +lean_object* x_8; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_8 = lean_box(0); return x_8; } +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_9 = lean_nat_add(x_5, x_6); +x_10 = lean_unsigned_to_nat(2u); +x_11 = lean_nat_div(x_9, x_10); +lean_dec(x_9); +lean_inc(x_1); +x_12 = lean_array_get(x_1, x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_4, 0); +x_15 = l_Lean_Name_quickLt(x_13, x_14); +if (x_15 == 0) +{ +uint8_t x_16; +lean_dec(x_6); +x_16 = l_Lean_Name_quickLt(x_14, x_13); +lean_dec(x_13); +if (x_16 == 0) +{ +lean_object* x_17; +lean_dec(x_11); +lean_dec(x_5); +lean_dec(x_1); +x_17 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_17, 0, x_12); +return x_17; +} +else +{ +lean_object* x_18; uint8_t x_19; +lean_dec(x_12); +x_18 = lean_unsigned_to_nat(0u); +x_19 = lean_nat_dec_eq(x_11, x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_unsigned_to_nat(1u); +x_21 = lean_nat_sub(x_11, x_20); +lean_dec(x_11); +x_6 = x_21; +goto _start; +} +else +{ +lean_object* x_23; +lean_dec(x_11); +lean_dec(x_5); +lean_dec(x_1); +x_23 = lean_box(0); +return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_SpecState_switch(lean_object* x_1) { +else +{ +lean_object* x_24; lean_object* x_25; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_5); +x_24 = lean_unsigned_to_nat(1u); +x_25 = lean_nat_add(x_11, x_24); +lean_dec(x_11); +x_5 = x_25; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f(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; lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_3 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__1; +x_4 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_4, 0, x_2); +lean_ctor_set(x_4, 1, x_3); +x_5 = lean_array_get_size(x_1); +x_6 = lean_unsigned_to_nat(1u); +x_7 = lean_nat_sub(x_5, x_6); +x_8 = lean_unsigned_to_nat(0u); +x_9 = lean_nat_dec_lt(x_8, x_5); +lean_dec(x_5); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_1); +x_10 = lean_box(0); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_box(0); +x_12 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry; +x_13 = l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1(x_12, x_11, x_1, x_4, x_8, x_7); +lean_dec(x_4); +lean_dec(x_1); +return x_13; +} +} +} +LEAN_EXPORT lean_object* l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_SMap_switch___at_Lean_Compiler_LCNF_SpecState_switch___spec__1(x_1); +x_2 = l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3; return x_2; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__2(lean_object* x_1) { _start: { -uint8_t x_5; -x_5 = lean_usize_dec_eq(x_2, x_3); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; size_t x_8; size_t x_9; -x_6 = lean_array_uget(x_1, x_2); -x_7 = l_Lean_Compiler_LCNF_SpecState_addEntry(x_4, x_6); -x_8 = 1; -x_9 = lean_usize_add(x_2, x_8); -x_2 = x_9; -x_4 = x_7; -goto _start; -} -else -{ -return x_4; -} -} -} -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__3(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { -_start: -{ -uint8_t x_5; -x_5 = lean_usize_dec_eq(x_2, x_3); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; size_t x_10; size_t x_11; -x_6 = lean_array_uget(x_1, x_2); -x_7 = lean_array_get_size(x_6); -x_8 = lean_unsigned_to_nat(0u); -x_9 = lean_nat_dec_lt(x_8, x_7); -x_10 = 1; -x_11 = lean_usize_add(x_2, x_10); -if (x_9 == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -x_2 = x_11; -goto _start; -} -else -{ -uint8_t x_13; -x_13 = lean_nat_dec_le(x_7, x_7); -if (x_13 == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -x_2 = x_11; -goto _start; -} -else -{ -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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2(x_6, x_15, x_16, x_4); -lean_dec(x_6); -x_2 = x_11; -x_4 = x_17; -goto _start; -} -} -} -else -{ -return x_4; -} -} -} -LEAN_EXPORT lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__1(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_2); -x_4 = lean_unsigned_to_nat(0u); -x_5 = lean_nat_dec_lt(x_4, x_3); -if (x_5 == 0) -{ -lean_dec(x_3); +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; +x_2 = l_List_redLength___rarg(x_1); +x_3 = lean_mk_empty_array_with_capacity(x_2); lean_dec(x_2); -return x_1; -} -else -{ -uint8_t x_6; -x_6 = lean_nat_dec_le(x_3, x_3); -if (x_6 == 0) -{ -lean_dec(x_3); -lean_dec(x_2); -return x_1; -} -else -{ -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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__3(x_2, x_7, x_8, x_1); -lean_dec(x_2); -return x_9; +x_4 = l_List_toArrayAux___rarg(x_1, x_3); +x_5 = lean_array_get_size(x_4); +x_6 = lean_unsigned_to_nat(1u); +x_7 = lean_nat_sub(x_5, x_6); +lean_dec(x_5); +x_8 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry; +x_9 = lean_unsigned_to_nat(0u); +x_10 = l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1(x_8, x_4, x_9, x_7); +lean_dec(x_7); +return x_10; } } -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____lambda__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_2 = l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2; -x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__1(x_2, x_1); -x_4 = l_Lean_SMap_switch___at_Lean_Compiler_LCNF_SpecState_switch___spec__1(x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1() { _start: { lean_object* x_1; @@ -2381,7 +2130,7 @@ x_1 = lean_mk_string_from_bytes("Lean", 4); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2() { _start: { lean_object* x_1; @@ -2389,7 +2138,7 @@ x_1 = lean_mk_string_from_bytes("Compiler", 8); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3() { _start: { lean_object* x_1; @@ -2397,7 +2146,7 @@ x_1 = lean_mk_string_from_bytes("LCNF", 4); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4() { _start: { lean_object* x_1; @@ -2405,28 +2154,19 @@ x_1 = lean_mk_string_from_bytes("specExtension", 13); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5() { _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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2; -x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3; -x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2; +x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3; +x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4; x_5 = l_Lean_Name_mkStr4(x_1, x_2, x_3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(lean_list_to_array), 2, 1); -lean_closure_set(x_1, 0, lean_box(0)); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6() { _start: { lean_object* x_1; @@ -2434,22 +2174,30 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_SpecState_addEntry), 2, 0) return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1___boxed), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__2), 1, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9() { _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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7; -x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8; -x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6; +x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7; +x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8; x_5 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_2); @@ -2458,39 +2206,22 @@ lean_ctor_set(x_5, 3, x_4); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9; x_3 = l_Lean_registerSimplePersistentEnvExtension___rarg(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1___boxed(lean_object* x_1) { _start: { -size_t x_5; size_t x_6; lean_object* x_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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__2(x_1, x_5, x_6, x_4); +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____lambda__1(x_1); lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____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; -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_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____spec__3(x_1, x_5, x_6, x_4); -lean_dec(x_1); -return x_7; +return x_2; } } static lean_object* _init_l___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_isNoSpecType___closed__1() { @@ -5136,7 +4867,7 @@ _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_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__1; x_2 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__2; -x_3 = lean_unsigned_to_nat(179u); +x_3 = lean_unsigned_to_nat(186u); x_4 = lean_unsigned_to_nat(43u); x_5 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -5163,7 +4894,7 @@ static lean_object* _init_l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpe _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2; x_2 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__5; x_3 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__6; x_4 = l_Lean_Name_mkStr3(x_1, x_2, x_3); @@ -5919,7 +5650,7 @@ lean_dec(x_1); return x_18; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4(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_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(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; uint8_t x_7; @@ -5961,7 +5692,7 @@ return x_15; } } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(lean_object* x_1, size_t x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -5971,7 +5702,7 @@ x_4 = lean_ctor_get(x_1, 0); lean_inc(x_4); lean_dec(x_1); x_5 = 5; -x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2; +x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2; x_7 = lean_usize_land(x_2, x_6); x_8 = lean_usize_to_nat(x_7); x_9 = lean_box(2); @@ -6032,14 +5763,14 @@ x_21 = lean_ctor_get(x_1, 1); lean_inc(x_21); lean_dec(x_1); x_22 = lean_unsigned_to_nat(0u); -x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4(x_20, x_21, lean_box(0), x_22, x_3); +x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(x_20, x_21, lean_box(0), x_22, x_3); lean_dec(x_21); lean_dec(x_20); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; uint64_t x_4; size_t x_5; lean_object* x_6; @@ -6048,177 +5779,151 @@ lean_inc(x_3); lean_dec(x_1); x_4 = l_Lean_Name_hash___override(x_2); x_5 = lean_uint64_to_usize(x_4); -x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(x_3, x_5, x_2); +x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(x_3, x_5, x_2); lean_dec(x_2); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6(lean_object* x_1, lean_object* x_2) { +static lean_object* _init_l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1() { _start: { -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = lean_box(0); +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_instInhabitedSpecState; +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; } -else -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 1); -x_6 = lean_ctor_get(x_2, 2); -x_7 = lean_name_eq(x_4, x_1); -if (x_7 == 0) -{ -x_2 = x_6; -goto _start; -} -else -{ -lean_object* x_9; -lean_inc(x_5); -x_9 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_9, 0, x_5); -return x_9; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__5(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; uint64_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; -x_3 = lean_ctor_get(x_1, 1); -lean_inc(x_3); -lean_dec(x_1); -x_4 = lean_array_get_size(x_3); -x_5 = l_Lean_Name_hash___override(x_2); -x_6 = lean_uint64_to_usize(x_5); -x_7 = lean_usize_modn(x_6, x_4); -lean_dec(x_4); -x_8 = lean_array_uget(x_3, x_7); -lean_dec(x_3); -x_9 = l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6(x_2, x_8); -lean_dec(x_8); -lean_dec(x_2); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; -x_3 = lean_ctor_get_uint8(x_1, sizeof(void*)*2); -if (x_3 == 0) -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; -x_4 = lean_ctor_get(x_1, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_1, 1); -lean_inc(x_5); -lean_dec(x_1); -lean_inc(x_2); -x_6 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(x_5, x_2); -if (lean_obj_tag(x_6) == 0) -{ -lean_object* x_7; -x_7 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__5(x_4, x_2); -return x_7; -} -else -{ -uint8_t x_8; -lean_dec(x_4); -lean_dec(x_2); -x_8 = !lean_is_exclusive(x_6); -if (x_8 == 0) -{ -return x_6; -} -else -{ -lean_object* x_9; lean_object* x_10; -x_9 = lean_ctor_get(x_6, 0); -lean_inc(x_9); -lean_dec(x_6); -x_10 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_10, 0, x_9); -return x_10; -} -} -} -else -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -lean_dec(x_1); -x_12 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__5(x_11, x_2); -return x_12; -} -} } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(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 = l_Lean_Compiler_LCNF_instInhabitedSpecState; -x_4 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; -x_5 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_3, x_4, x_1); +lean_object* x_3; +lean_inc(x_2); +lean_inc(x_1); +x_3 = l_Lean_Environment_getModuleIdxFor_x3f(x_1, x_2); +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = l_Lean_Compiler_LCNF_instInhabitedSpecState; +x_5 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; +x_6 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_4, x_5, x_1); lean_dec(x_1); -x_6 = l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(x_5, x_2); -return x_6; +x_7 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(x_6, x_2); +return x_7; +} +else +{ +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; uint8_t x_18; +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +lean_dec(x_3); +x_9 = l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1; +x_10 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; +x_11 = l_Lean_PersistentEnvExtension_getModuleEntries___rarg(x_9, x_10, x_1, x_8); +lean_dec(x_8); +lean_dec(x_1); +x_12 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__1; +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_2); +lean_ctor_set(x_13, 1, x_12); +x_14 = lean_array_get_size(x_11); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_sub(x_14, x_15); +x_17 = lean_unsigned_to_nat(0u); +x_18 = lean_nat_dec_lt(x_17, x_14); +lean_dec(x_14); +if (x_18 == 0) +{ +lean_object* x_19; +lean_dec(x_16); +lean_dec(x_13); +lean_dec(x_11); +x_19 = lean_box(0); +return x_19; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_box(0); +x_21 = l_Lean_Compiler_LCNF_instInhabitedSpecEntry; +x_22 = l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1(x_21, x_20, x_11, x_13, x_17, x_16); +lean_dec(x_13); +lean_dec(x_11); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; +x_23 = lean_box(0); +return x_23; +} +else +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_22); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_22, 0); +x_26 = lean_ctor_get(x_25, 1); +lean_inc(x_26); +lean_dec(x_25); +lean_ctor_set(x_22, 0, x_26); +return x_22; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_22, 0); +lean_inc(x_27); +lean_dec(x_22); +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_29, 0, x_28); +return x_29; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4___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_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3___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_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__4(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(x_1, x_2, x_3, x_4, x_5); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { size_t x_4; lean_object* x_5; x_4 = lean_unbox_usize(x_2); lean_dec(x_2); -x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__3(x_1, x_4, x_3); +x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__2(x_1, x_4, x_3); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__6(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -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_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_1, 0); lean_inc(x_4); lean_dec(x_1); x_5 = lean_ctor_get(x_4, 1); lean_inc(x_5); lean_dec(x_4); -x_6 = l_Lean_Compiler_LCNF_instInhabitedSpecState; -x_7 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; -x_8 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_6, x_7, x_3); -x_9 = l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(x_8, x_2); -x_10 = lean_apply_2(x_5, lean_box(0), x_9); -return x_10; +x_6 = l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(x_3, x_2); +x_7 = lean_apply_2(x_5, lean_box(0), x_6); +return x_7; } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -6230,7 +5935,7 @@ lean_inc(x_4); x_5 = lean_ctor_get(x_2, 0); lean_inc(x_5); lean_dec(x_2); -x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1___boxed), 3, 2); +x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1), 3, 2); lean_closure_set(x_6, 0, x_1); lean_closure_set(x_6, 1, x_3); x_7 = lean_apply_4(x_4, lean_box(0), lean_box(0), x_5, x_6); @@ -6245,208 +5950,34 @@ x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rar return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___rarg___lambda__1(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; uint64_t x_5; size_t x_6; size_t x_7; lean_object* x_8; uint8_t x_9; -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_array_get_size(x_3); -x_5 = l_Lean_Name_hash___override(x_2); -x_6 = lean_uint64_to_usize(x_5); -x_7 = lean_usize_modn(x_6, x_4); -lean_dec(x_4); -x_8 = lean_array_uget(x_3, x_7); -x_9 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__7(x_2, x_8); -lean_dec(x_8); -return x_9; -} -} -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5(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; uint8_t x_7; -x_6 = lean_array_get_size(x_1); -x_7 = lean_nat_dec_lt(x_4, x_6); -lean_dec(x_6); -if (x_7 == 0) -{ -uint8_t x_8; -lean_dec(x_4); -x_8 = 0; -return x_8; -} -else -{ -lean_object* x_9; uint8_t x_10; -x_9 = lean_array_fget(x_1, x_4); -x_10 = lean_name_eq(x_5, x_9); -lean_dec(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_4, x_11); -lean_dec(x_4); -x_3 = lean_box(0); -x_4 = x_12; -goto _start; -} -else -{ -uint8_t x_14; -lean_dec(x_4); -x_14 = 1; -return x_14; -} -} -} -} -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4(lean_object* x_1, size_t x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = lean_ctor_get(x_1, 0); -lean_inc(x_4); -lean_dec(x_1); -x_5 = 5; -x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2; -x_7 = lean_usize_land(x_2, x_6); -x_8 = lean_usize_to_nat(x_7); -x_9 = lean_box(2); -x_10 = lean_array_get(x_9, x_4, x_8); -lean_dec(x_8); -lean_dec(x_4); -switch (lean_obj_tag(x_10)) { -case 0: -{ -lean_object* x_11; uint8_t x_12; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_name_eq(x_3, x_11); -lean_dec(x_11); -return x_12; -} -case 1: -{ -lean_object* x_13; size_t x_14; -x_13 = lean_ctor_get(x_10, 0); -lean_inc(x_13); -lean_dec(x_10); -x_14 = lean_usize_shift_right(x_2, x_5); -x_1 = x_13; -x_2 = x_14; -goto _start; -} -default: -{ -uint8_t x_16; -x_16 = 0; -return x_16; -} -} -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_17 = lean_ctor_get(x_1, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_1, 1); -lean_inc(x_18); -lean_dec(x_1); -x_19 = lean_unsigned_to_nat(0u); -x_20 = l_Lean_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5(x_17, x_18, lean_box(0), x_19, x_3); -lean_dec(x_18); -lean_dec(x_17); -return x_20; -} -} -} -LEAN_EXPORT uint8_t l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; uint64_t x_4; size_t x_5; uint8_t x_6; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -lean_dec(x_1); -x_4 = l_Lean_Name_hash___override(x_2); -x_5 = lean_uint64_to_usize(x_4); -x_6 = l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4(x_3, x_5, x_2); -lean_dec(x_2); -return x_6; -} -} -LEAN_EXPORT uint8_t l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; -x_3 = lean_ctor_get_uint8(x_1, sizeof(void*)*2); -if (x_3 == 0) -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_1, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_1, 1); -lean_inc(x_5); -lean_dec(x_1); -x_6 = l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2(x_4, x_2); -lean_dec(x_4); -if (x_6 == 0) -{ -uint8_t x_7; -x_7 = l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3(x_5, x_2); -return x_7; -} -else -{ -uint8_t x_8; -lean_dec(x_5); -lean_dec(x_2); -x_8 = 1; -return x_8; -} -} -else -{ -lean_object* x_9; uint8_t x_10; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -lean_dec(x_1); -x_10 = l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2(x_9, x_2); -lean_dec(x_2); -lean_dec(x_9); -return x_10; -} -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_4; lean_object* x_5; lean_object* x_6; x_4 = lean_ctor_get(x_1, 0); lean_inc(x_4); lean_dec(x_1); x_5 = lean_ctor_get(x_4, 1); lean_inc(x_5); lean_dec(x_4); -x_6 = l_Lean_Compiler_LCNF_instInhabitedSpecState; -x_7 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___lambda__1___closed__1; -x_8 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_6, x_7, x_3); -x_9 = l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1(x_8, x_2); -x_10 = lean_box(x_9); -x_11 = lean_apply_2(x_5, lean_box(0), x_10); -return x_11; +x_6 = l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(x_3, x_2); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; lean_object* x_8; lean_object* x_9; +x_7 = 0; +x_8 = lean_box(x_7); +x_9 = lean_apply_2(x_5, lean_box(0), x_8); +return x_9; +} +else +{ +uint8_t x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_6); +x_10 = 1; +x_11 = lean_box(x_10); +x_12 = lean_apply_2(x_5, lean_box(0), x_11); +return x_12; +} } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -6458,7 +5989,7 @@ lean_inc(x_4); x_5 = lean_ctor_get(x_2, 0); lean_inc(x_5); lean_dec(x_2); -x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1___boxed), 3, 2); +x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1), 3, 2); lean_closure_set(x_6, 0, x_1); lean_closure_set(x_6, 1, x_3); x_7 = lean_apply_4(x_4, lean_box(0), lean_box(0), x_5, x_6); @@ -6473,69 +6004,7 @@ x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_isSpecCandidate___rarg), 3 return x_2; } } -LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__2(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_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -uint8_t x_6; lean_object* x_7; -x_6 = l_Lean_PersistentHashMap_containsAtAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__5(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_7 = lean_box(x_6); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -size_t x_4; uint8_t x_5; lean_object* x_6; -x_4 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_5 = l_Lean_PersistentHashMap_containsAux___at_Lean_Compiler_LCNF_isSpecCandidate___spec__4(x_1, x_4, x_3); -lean_dec(x_3); -x_6 = lean_box(x_5); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_PersistentHashMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__3(x_1, x_2); -x_4 = lean_box(x_3); -return x_4; -} -} -LEAN_EXPORT lean_object* l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_SMap_contains___at_Lean_Compiler_LCNF_isSpecCandidate___spec__1(x_1, x_2); -x_4 = lean_box(x_3); -return x_4; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Compiler_LCNF_isSpecCandidate___rarg___lambda__1(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2605_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2697_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; @@ -6675,10 +6144,6 @@ l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3 = _init_l_Lean_Com lean_mark_persistent(l_Lean_Compiler_LCNF_SpecState_specInfo___default___closed__3); l_Lean_Compiler_LCNF_SpecState_specInfo___default = _init_l_Lean_Compiler_LCNF_SpecState_specInfo___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_SpecState_specInfo___default); -l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__1 = _init_l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__1); -l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2 = _init_l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedSpecState___closed__2); l_Lean_Compiler_LCNF_instInhabitedSpecState = _init_l_Lean_Compiler_LCNF_instInhabitedSpecState(); lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedSpecState); l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__1 = _init_l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__1(); @@ -6687,29 +6152,31 @@ l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__2 = _init_l_Lean_Compiler_ lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedSpecEntry___closed__2); l_Lean_Compiler_LCNF_instInhabitedSpecEntry = _init_l_Lean_Compiler_LCNF_instInhabitedSpecEntry(); lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedSpecEntry); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__1(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__2(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3(); -lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__3___closed__3); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__3); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__4); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__5); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__6); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__7); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__8); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479____closed__9); -if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_479_(lean_io_mk_world()); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__1(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__2(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3(); +lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_SpecState_addEntry___spec__2___closed__3); +l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1 = _init_l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1(); +lean_mark_persistent(l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_SpecInfo_0__Lean_Compiler_LCNF_sortEntries___spec__1___closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__3); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__4); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__5); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__6); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__7); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__8); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501____closed__9); +if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_501_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Compiler_LCNF_specExtension = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Compiler_LCNF_specExtension); @@ -6784,7 +6251,9 @@ l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___cl lean_mark_persistent(l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__6); l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__7 = _init_l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__7(); lean_mark_persistent(l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_saveSpecParamInfo___spec__17___closed__7); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2605_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1 = _init_l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___closed__1); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_SpecInfo___hyg_2697_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c b/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c index dca686f3d4..04f81222b3 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c @@ -42,12 +42,12 @@ LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Spec LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__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_LCNF_Specialize_specializeApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__2___closed__1; -static lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1; LEAN_EXPORT uint8_t l_Lean_Expr_hasAnyFVar_visit___at_Lean_Compiler_LCNF_Specialize_isGround___spec__1(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__3___closed__14; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_withLetDecl___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_shouldSpecialize___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_LCtx_addFunDecl___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_shouldSpecialize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -93,7 +93,6 @@ LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Speciali LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_cacheSpec___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_visitCode___lambda__1(lean_object*, 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_Lean_SMap_switch___at_Lean_Compiler_SpecState_switch___spec__2(lean_object*); -extern lean_object* l_Lean_Compiler_LCNF_specExtension; lean_object* l_Lean_Compiler_LCNF_Code_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_isGround(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -134,7 +133,6 @@ static lean_object* l_Lean_Compiler_LCNF_Specialize_initFn____x40_Lean_Compiler_ static lean_object* l_Lean_Compiler_LCNF_Specialize_Collector_collect___closed__2; LEAN_EXPORT lean_object* l_Array_filterMapM___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__3(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); -extern lean_object* l_Lean_Compiler_LCNF_instInhabitedSpecState; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Specialize_shouldSpecialize___spec__1___closed__1; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Specialize_shouldSpecialize___spec__1___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*); lean_object* l_Lean_Compiler_LCNF_Decl_etaExpand(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -279,7 +277,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_expandCodeDecls___boxed lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Specialize_getRemainingArgs___spec__1(lean_object*, size_t, size_t, lean_object*); lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(lean_object*, lean_object*); lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_Context_scope___default; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Specialize_expandCodeDecls___spec__1(size_t, size_t, lean_object*); @@ -4232,14 +4229,6 @@ lean_dec(x_1); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_specExtension; -return x_1; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__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: { @@ -4248,39 +4237,31 @@ x_9 = lean_st_ref_get(x_7, x_8); x_10 = !lean_is_exclusive(x_9); if (x_10 == 0) { -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_11; lean_object* x_12; lean_object* x_13; x_11 = lean_ctor_get(x_9, 0); x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); lean_dec(x_11); -x_13 = l_Lean_Compiler_LCNF_instInhabitedSpecState; -x_14 = l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1; -x_15 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_13, x_14, x_12); -lean_dec(x_12); -x_16 = l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(x_15, x_1); -lean_ctor_set(x_9, 0, x_16); +x_13 = l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(x_12, x_1); +lean_ctor_set(x_9, 0, x_13); return x_9; } else { -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; -x_17 = lean_ctor_get(x_9, 0); -x_18 = lean_ctor_get(x_9, 1); -lean_inc(x_18); -lean_inc(x_17); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_14 = lean_ctor_get(x_9, 0); +x_15 = lean_ctor_get(x_9, 1); +lean_inc(x_15); +lean_inc(x_14); lean_dec(x_9); -x_19 = lean_ctor_get(x_17, 0); -lean_inc(x_19); -lean_dec(x_17); -x_20 = l_Lean_Compiler_LCNF_instInhabitedSpecState; -x_21 = l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1; -x_22 = l_Lean_SimplePersistentEnvExtension_getState___rarg(x_20, x_21, x_19); -lean_dec(x_19); -x_23 = l_Lean_SMap_find_x3f___at_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f___spec__1(x_22, x_1); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_18); -return x_24; +x_16 = lean_ctor_get(x_14, 0); +lean_inc(x_16); +lean_dec(x_14); +x_17 = l_Lean_Compiler_LCNF_getSpecParamInfoCore_x3f(x_16, x_1); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_15); +return x_18; } } } @@ -9917,8 +9898,6 @@ l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___closed__3 = _init_l_Lean_Compiler_L lean_mark_persistent(l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___closed__3); l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___closed__4 = _init_l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___closed__4(); lean_mark_persistent(l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___closed__4); -l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1 = _init_l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getSpecParamInfo_x3f___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__1___closed__1); l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__2___closed__1 = _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__2___closed__1(); lean_mark_persistent(l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__2___closed__1); l_Lean_addTrace___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__5___closed__1 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___spec__5___closed__1(); diff --git a/stage0/stdlib/Lean/Environment.c b/stage0/stdlib/Lean/Environment.c index 9360e49f95..14ab582ef2 100644 --- a/stage0/stdlib/Lean/Environment.c +++ b/stage0/stdlib/Lean/Environment.c @@ -255,6 +255,7 @@ static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Environment_addAux___ LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Environment_find_x3f___spec__6(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMap_numBuckets___at_Lean_Environment_displayStats___spec__6___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_ModuleIdx_toNat___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_initFn____x40_Lean_Environment___hyg_6641____closed__1; lean_object* lean_st_ref_take(lean_object*, lean_object*); static lean_object* l_Lean_instInhabitedEnvExtensionInterface___closed__4; @@ -368,6 +369,7 @@ lean_object* lean_save_module_data(lean_object*, lean_object*, lean_object*, lea LEAN_EXPORT lean_object* l_Lean_withImportModules___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_ImportState_moduleNames___default; LEAN_EXPORT lean_object* l_Lean_EnvExtension_getState___rarg___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__5(lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_mkMapDeclarationExtension___spec__1___rarg___lambda__1___boxed(lean_object*, lean_object*); static lean_object* l_Lean_mkModuleData___closed__2; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_foldlMAux___at_Lean_mkModuleData___spec__3___rarg(lean_object*, lean_object*, lean_object*); @@ -492,8 +494,8 @@ LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at___private_Lean_Environmen LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_mkMapDeclarationExtension___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at___private_Lean_Environment_0__Lean_mkExtNameMap___spec__4(lean_object*, lean_object*); extern lean_object* l_Id_instMonadId; +lean_object* l_Lean_HashMap_insert___at_Lean_NameSSet_insert___spec__6(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_EnvExtensionInterfaceUnsafe_instInhabitedExt(lean_object*); -extern lean_object* l_Lean_SMap_empty___at_Lean_NameSSet_empty___spec__1; uint8_t lean_nat_dec_le(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1(lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); @@ -12993,7 +12995,7 @@ if (x_5 == 0) lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; x_6 = lean_array_uget(x_1, x_2); x_7 = lean_box(0); -x_8 = l_Lean_SMap_insert___at_Lean_NameSSet_insert___spec__1(x_4, x_6, x_7); +x_8 = l_Lean_HashMap_insert___at_Lean_NameSSet_insert___spec__6(x_4, x_6, x_7); x_9 = 1; x_10 = lean_usize_add(x_2, x_9); x_2 = x_10; @@ -13132,6 +13134,32 @@ return x_8; } } } +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__5(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_eq(x_2, x_3); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; +x_6 = lean_array_uget(x_1, x_2); +x_7 = lean_array_get_size(x_6); +lean_dec(x_6); +x_8 = lean_nat_add(x_4, x_7); +lean_dec(x_7); +lean_dec(x_4); +x_9 = 1; +x_10 = lean_usize_add(x_2, x_9); +x_2 = x_10; +x_4 = x_8; +goto _start; +} +else +{ +return x_4; +} +} +} LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Environment___hyg_6641____lambda__1(lean_object* x_1, lean_object* x_2) { _start: { @@ -13144,11 +13172,64 @@ return x_4; LEAN_EXPORT lean_object* l_Lean_initFn____x40_Lean_Environment___hyg_6641____lambda__2(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_2 = l_Lean_SMap_empty___at_Lean_NameSSet_empty___spec__1; -x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__1(x_2, x_1); -x_4 = l_Lean_SMap_switch___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__4(x_3); -return x_4; +lean_object* x_2; lean_object* x_3; uint8_t x_4; +x_2 = lean_array_get_size(x_1); +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_nat_dec_lt(x_3, x_2); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_2); +x_5 = l_Lean_mkEmptyEnvironment___lambda__1___closed__1; +x_6 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__1(x_5, x_1); +x_7 = 1; +x_8 = l_Lean_instInhabitedEnvironment___closed__3; +x_9 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_9, 0, x_6); +lean_ctor_set(x_9, 1, x_8); +lean_ctor_set_uint8(x_9, sizeof(void*)*2, x_7); +x_10 = l_Lean_SMap_switch___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__4(x_9); +return x_10; +} +else +{ +uint8_t x_11; +x_11 = lean_nat_dec_le(x_2, x_2); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_2); +x_12 = l_Lean_mkEmptyEnvironment___lambda__1___closed__1; +x_13 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__1(x_12, x_1); +x_14 = 1; +x_15 = l_Lean_instInhabitedEnvironment___closed__3; +x_16 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_16, 0, x_13); +lean_ctor_set(x_16, 1, x_15); +lean_ctor_set_uint8(x_16, sizeof(void*)*2, x_14); +x_17 = l_Lean_SMap_switch___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__4(x_16); +return x_17; +} +else +{ +size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_18 = 0; +x_19 = lean_usize_of_nat(x_2); +lean_dec(x_2); +x_20 = l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__5(x_1, x_18, x_19, x_3); +x_21 = l_Lean_mkHashMapImp___rarg(x_20); +lean_dec(x_20); +x_22 = l_Lean_mkStateFromImportedEntries___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__1(x_21, x_1); +x_23 = 1; +x_24 = l_Lean_instInhabitedEnvironment___closed__3; +x_25 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_25, 0, x_22); +lean_ctor_set(x_25, 1, x_24); +lean_ctor_set_uint8(x_25, sizeof(void*)*2, x_23); +x_26 = l_Lean_SMap_switch___at_Lean_initFn____x40_Lean_Environment___hyg_6641____spec__4(x_25); +return x_26; +} +} } } static lean_object* _init_l_Lean_initFn____x40_Lean_Environment___hyg_6641____closed__1() { @@ -13245,6 +13326,19 @@ lean_dec(x_1); return x_7; } } +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_Environment___hyg_6641____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; lean_object* x_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_initFn____x40_Lean_Environment___hyg_6641____spec__5(x_1, x_5, x_6, x_4); +lean_dec(x_1); +return x_7; +} +} static lean_object* _init_l_Lean_Environment_registerNamespace___closed__1() { _start: {