diff --git a/stage0/src/Init/Lean/Attributes.lean b/stage0/src/Init/Lean/Attributes.lean index 1f2475b64c..b374846675 100644 --- a/stage0/src/Init/Lean/Attributes.lean +++ b/stage0/src/Init/Lean/Attributes.lean @@ -12,6 +12,9 @@ namespace Lean inductive AttributeApplicationTime | afterTypeChecking | afterCompilation | beforeElaboration +-- TODO: after we delete the old frontend, we should use `EIO` with a richer exception kind at AttributeImpl. +-- We must perform a similar modification at `PersistentEnvExtension` + structure AttributeImpl := (name : Name) (descr : String) @@ -145,12 +148,13 @@ end Environment is tagged in the environment `env`. -/ structure TagAttribute := (attr : AttributeImpl) -(ext : PersistentEnvExtension Name NameSet) +(ext : PersistentEnvExtension Name Name NameSet) def registerTagAttribute (name : Name) (descr : String) (validate : Environment → Name → Except String Unit := fun _ _ => Except.ok ()) : IO TagAttribute := do -ext : PersistentEnvExtension Name NameSet ← registerPersistentEnvExtension { +ext : PersistentEnvExtension Name Name NameSet ← registerPersistentEnvExtension { name := name, - addImportedFn := fun _ => pure {}, + mkInitial := pure {}, + addImportedFn := fun _ _ => pure {}, addEntryFn := fun (s : NameSet) n => s.insert n, exportEntriesFn := fun es => let r : Array Name := es.fold (fun a e => a.push e) #[]; @@ -191,14 +195,15 @@ end TagAttribute contains the attribute `pAttr` with parameter `p`. -/ structure ParametricAttribute (α : Type) := (attr : AttributeImpl) -(ext : PersistentEnvExtension (Name × α) (NameMap α)) +(ext : PersistentEnvExtension (Name × α) (Name × α) (NameMap α)) def registerParametricAttribute {α : Type} [Inhabited α] (name : Name) (descr : String) (getParam : Environment → Name → Syntax → Except String α) (afterSet : Environment → Name → α → Except String Environment := fun env _ _ => Except.ok env) : IO (ParametricAttribute α) := do -ext : PersistentEnvExtension (Name × α) (NameMap α) ← registerPersistentEnvExtension { +ext : PersistentEnvExtension (Name × α) (Name × α) (NameMap α) ← registerPersistentEnvExtension { name := name, - addImportedFn := fun _ => pure {}, + mkInitial := pure {}, + addImportedFn := fun _ _ => pure {}, addEntryFn := fun (s : NameMap α) (p : Name × α) => s.insert p.1 p.2, exportEntriesFn := fun m => let r : Array (Name × α) := m.fold (fun a n p => a.push (n, p)) #[]; @@ -251,12 +256,13 @@ end ParametricAttribute Note that whenever we register an `EnumAttributes`, we create `n` attributes, but only one environment extension. -/ structure EnumAttributes (α : Type) := (attrs : List AttributeImpl) -(ext : PersistentEnvExtension (Name × α) (NameMap α)) +(ext : PersistentEnvExtension (Name × α) (Name × α) (NameMap α)) def registerEnumAttributes {α : Type} [Inhabited α] (extName : Name) (attrDescrs : List (Name × String × α)) (validate : Environment → Name → α → Except String Unit := fun _ _ _ => Except.ok ()) (applicationTime := AttributeApplicationTime.afterTypeChecking) : IO (EnumAttributes α) := do -ext : PersistentEnvExtension (Name × α) (NameMap α) ← registerPersistentEnvExtension { +ext : PersistentEnvExtension (Name × α) (Name × α) (NameMap α) ← registerPersistentEnvExtension { name := extName, - addImportedFn := fun _ => pure {}, + mkInitial := pure {}, + addImportedFn := fun _ _ => pure {}, addEntryFn := fun (s : NameMap α) (p : Name × α) => s.insert p.1 p.2, exportEntriesFn := fun m => let r : Array (Name × α) := m.fold (fun a n p => a.push (n, p)) #[]; diff --git a/stage0/src/Init/Lean/Elab/Util.lean b/stage0/src/Init/Lean/Elab/Util.lean index acf62a6d0d..416524614e 100644 --- a/stage0/src/Init/Lean/Elab/Util.lean +++ b/stage0/src/Init/Lean/Elab/Util.lean @@ -37,7 +37,7 @@ structure ElabAttributeEntry := structure ElabAttribute (σ : Type) := (attr : AttributeImpl) -(ext : PersistentEnvExtension ElabAttributeEntry σ) +(ext : PersistentEnvExtension ElabAttributeEntry ElabAttributeEntry σ) (kind : String) instance ElabAttribute.inhabited {σ} [Inhabited σ] : Inhabited (ElabAttribute σ) := ⟨{ attr := arbitrary _, ext := arbitrary _, kind := "" }⟩ @@ -49,9 +49,10 @@ The state is initialized using `builtinTable`. The current implementation just uses the bultin elaborators. -/ def mkElabAttribute {σ} [Inhabited σ] (attrName : Name) (kind : String) (builtinTable : IO.Ref σ) : IO (ElabAttribute σ) := do -ext : PersistentEnvExtension ElabAttributeEntry σ ← registerPersistentEnvExtension { +ext : PersistentEnvExtension ElabAttributeEntry ElabAttributeEntry σ ← registerPersistentEnvExtension { name := attrName, - addImportedFn := fun es => do + mkInitial := pure (arbitrary _), + addImportedFn := fun env es => do table ← builtinTable.get; -- TODO: populate table with `es` pure table, diff --git a/stage0/src/Init/Lean/Environment.lean b/stage0/src/Init/Lean/Environment.lean index 385380198b..811413fcef 100644 --- a/stage0/src/Init/Lean/Environment.lean +++ b/stage0/src/Init/Lean/Environment.lean @@ -208,14 +208,25 @@ structure PersistentEnvExtensionState (α : Type) (σ : Type) := (state : σ) /- An environment extension with support for storing/retrieving entries from a .olean file. - - α is the entry type. + - α is the type of the entries that are stored in .olean files. + - β is the type of values used to update the state. - σ is the actual state. - TODO: mark opaque. -/ -structure PersistentEnvExtension (α : Type) (σ : Type) extends EnvExtension (PersistentEnvExtensionState α σ) := + Remark: for most extensions α and β coincide. + + Note that `addEntryFn` is not in `IO`. This is intentional, and allows us to write simple functions such as + ``` + def addAlias (env : Environment) (a : Name) (e : Name) : Environment := + aliasExtension.addEntry env (a, e) + ``` + without using `IO`. We have many functions like `addAlias`. + + `α` and ‵β` do not coincide for extensions where the data used to update the state contains, for example, + closures which we currently cannot store in files. -/ +structure PersistentEnvExtension (α : Type) (β : Type) (σ : Type) extends EnvExtension (PersistentEnvExtensionState α σ) := (name : Name) -(addImportedFn : Array (Array α) → IO σ) -(addEntryFn : σ → α → σ) +(addImportedFn : Environment → Array (Array α) → IO σ) +(addEntryFn : σ → β → σ) (exportEntriesFn : σ → Array α) (statsFn : σ → Format) @@ -228,60 +239,61 @@ instance EnvExtensionEntry.inhabited : Inhabited EnvExtensionEntry := inferInsta instance PersistentEnvExtensionState.inhabited {α σ} [Inhabited σ] : Inhabited (PersistentEnvExtensionState α σ) := ⟨{importedEntries := #[], state := arbitrary _ }⟩ -instance PersistentEnvExtension.inhabited {α σ} [Inhabited σ] : Inhabited (PersistentEnvExtension α σ) := +instance PersistentEnvExtension.inhabited {α β σ} [Inhabited σ] : Inhabited (PersistentEnvExtension α β σ) := ⟨{ toEnvExtension := { idx := 0, stateInh := arbitrary _, mkInitial := arbitrary _ }, name := arbitrary _, - addImportedFn := fun _ => arbitrary _, + addImportedFn := fun _ _ => arbitrary _, addEntryFn := fun s _ => s, exportEntriesFn := fun _ => #[], statsFn := fun _ => Format.nil }⟩ namespace PersistentEnvExtension -def getModuleEntries {α σ : Type} (ext : PersistentEnvExtension α σ) (env : Environment) (m : ModuleIdx) : Array α := +def getModuleEntries {α β σ : Type} (ext : PersistentEnvExtension α β σ) (env : Environment) (m : ModuleIdx) : Array α := (ext.toEnvExtension.getState env).importedEntries.get! m -def addEntry {α σ : Type} (ext : PersistentEnvExtension α σ) (env : Environment) (a : α) : Environment := +def addEntry {α β σ : Type} (ext : PersistentEnvExtension α β σ) (env : Environment) (b : β) : Environment := ext.toEnvExtension.modifyState env $ fun s => - let state := ext.addEntryFn s.state a; + let state := ext.addEntryFn s.state b; { state := state, .. s } -def getState {α σ : Type} (ext : PersistentEnvExtension α σ) (env : Environment) : σ := +def getState {α β σ : Type} (ext : PersistentEnvExtension α β σ) (env : Environment) : σ := (ext.toEnvExtension.getState env).state -def setState {α σ : Type} (ext : PersistentEnvExtension α σ) (env : Environment) (s : σ) : Environment := +def setState {α β σ : Type} (ext : PersistentEnvExtension α β σ) (env : Environment) (s : σ) : Environment := ext.toEnvExtension.modifyState env $ fun ps => { state := s, .. ps } -def modifyState {α σ : Type} (ext : PersistentEnvExtension α σ) (env : Environment) (f : σ → σ) : Environment := +def modifyState {α β σ : Type} (ext : PersistentEnvExtension α β σ) (env : Environment) (f : σ → σ) : Environment := ext.toEnvExtension.modifyState env $ fun ps => { state := f (ps.state), .. ps } end PersistentEnvExtension -private def mkPersistentEnvExtensionsRef : IO (IO.Ref (Array (PersistentEnvExtension EnvExtensionEntry EnvExtensionState))) := +private def mkPersistentEnvExtensionsRef : IO (IO.Ref (Array (PersistentEnvExtension EnvExtensionEntry EnvExtensionEntry EnvExtensionState))) := IO.mkRef #[] @[init mkPersistentEnvExtensionsRef] -private constant persistentEnvExtensionsRef : IO.Ref (Array (PersistentEnvExtension EnvExtensionEntry EnvExtensionState)) := arbitrary _ +private constant persistentEnvExtensionsRef : IO.Ref (Array (PersistentEnvExtension EnvExtensionEntry EnvExtensionEntry EnvExtensionState)) := arbitrary _ -structure PersistentEnvExtensionDescr (α σ : Type) := +structure PersistentEnvExtensionDescr (α β σ : Type) := (name : Name) -(addImportedFn : Array (Array α) → IO σ) -(addEntryFn : σ → α → σ) +(mkInitial : IO σ) +(addImportedFn : Environment → Array (Array α) → IO σ) +(addEntryFn : σ → β → σ) (exportEntriesFn : σ → Array α) (statsFn : σ → Format := fun _ => Format.nil) -unsafe def registerPersistentEnvExtensionUnsafe {α σ : Type} [Inhabited σ] (descr : PersistentEnvExtensionDescr α σ) : IO (PersistentEnvExtension α σ) := do +unsafe def registerPersistentEnvExtensionUnsafe {α β σ : Type} [Inhabited σ] (descr : PersistentEnvExtensionDescr α β σ) : IO (PersistentEnvExtension α β σ) := do pExts ← persistentEnvExtensionsRef.get; when (pExts.any (fun ext => ext.name == descr.name)) $ throw (IO.userError ("invalid environment extension, '" ++ toString descr.name ++ "' has already been used")); ext ← registerEnvExtension $ do { - state ← descr.addImportedFn #[]; + initial ← descr.mkInitial; let s : PersistentEnvExtensionState α σ := { importedEntries := #[], - state := state + state := initial }; pure s }; -let pExt : PersistentEnvExtension α σ := { +let pExt : PersistentEnvExtension α β σ := { toEnvExtension := ext, name := descr.name, addImportedFn := descr.addImportedFn, @@ -293,11 +305,11 @@ persistentEnvExtensionsRef.modify $ fun pExts => pExts.push (unsafeCast pExt); pure pExt @[implementedBy registerPersistentEnvExtensionUnsafe] -constant registerPersistentEnvExtension {α σ : Type} [Inhabited σ] (descr : PersistentEnvExtensionDescr α σ) : IO (PersistentEnvExtension α σ) := arbitrary _ +constant registerPersistentEnvExtension {α β σ : Type} [Inhabited σ] (descr : PersistentEnvExtensionDescr α β σ) : IO (PersistentEnvExtension α β σ) := arbitrary _ /- Simple PersistentEnvExtension that implements exportEntriesFn using a list of entries. -/ -def SimplePersistentEnvExtension (α σ : Type) := PersistentEnvExtension α (List α × σ) +def SimplePersistentEnvExtension (α σ : Type) := PersistentEnvExtension α α (List α × σ) @[specialize] def mkStateFromImportedEntries {α σ : Type} (addEntryFn : σ → α → σ) (initState : σ) (as : Array (Array α)) : σ := as.foldl (fun r es => es.foldl (fun r e => addEntryFn r e) r) initState @@ -310,9 +322,10 @@ structure SimplePersistentEnvExtensionDescr (α σ : Type) := def registerSimplePersistentEnvExtension {α σ : Type} [Inhabited σ] (descr : SimplePersistentEnvExtensionDescr α σ) : IO (SimplePersistentEnvExtension α σ) := registerPersistentEnvExtension { - name := descr.name, - addImportedFn := fun as => pure ([], descr.addImportedFn as), - addEntryFn := fun s e => match s with + name := descr.name, + mkInitial := pure ([], descr.addImportedFn #[]), + addImportedFn := fun _ as => pure ([], descr.addImportedFn as), + addEntryFn := fun s e => match s with | (entries, s) => (e::entries, descr.addEntryFn s e), exportEntriesFn := fun s => descr.toArrayFn s.1.reverse, statsFn := fun s => format "number of local entries: " ++ format s.1.length @@ -321,7 +334,7 @@ registerPersistentEnvExtension { namespace SimplePersistentEnvExtension instance {α σ : Type} [Inhabited σ] : Inhabited (SimplePersistentEnvExtension α σ) := -inferInstanceAs (Inhabited (PersistentEnvExtension α (List α × σ))) +inferInstanceAs (Inhabited (PersistentEnvExtension α α (List α × σ))) def getEntries {α σ : Type} (ext : SimplePersistentEnvExtension α σ) (env : Environment) : List α := (PersistentEnvExtension.getState ext env).1 @@ -491,7 +504,7 @@ private def finalizePersistentExtensions (env : Environment) : IO Environment := pExtDescrs ← persistentEnvExtensionsRef.get; pExtDescrs.iterateM env $ fun _ extDescr env => do let s := extDescr.toEnvExtension.getState env; - newState ← extDescr.addImportedFn s.importedEntries; + newState ← extDescr.addImportedFn env s.importedEntries; pure $ extDescr.toEnvExtension.setState env { state := newState, .. s } @[export lean_import_modules] diff --git a/stage0/src/Init/Lean/Parser/Parser.lean b/stage0/src/Init/Lean/Parser/Parser.lean index 034934425b..812e2f8fb6 100644 --- a/stage0/src/Init/Lean/Parser/Parser.lean +++ b/stage0/src/Init/Lean/Parser/Parser.lean @@ -1315,47 +1315,76 @@ IO.mkRef {} @[init mkBuiltinTokenTable] constant builtinTokenTable : IO.Ref TokenTable := arbitrary _ -def mkImportedTokenTable (es : Array (Array TokenConfig)) : IO TokenTable := do +abbrev TokenTableAttributeExtensionState := List TokenConfig × TokenTable + +abbrev TokenTableAttributeExtension := PersistentEnvExtension TokenConfig TokenConfig TokenTableAttributeExtensionState + +private def addTokenConfig (table : TokenTable) (tk : TokenConfig) : Except String TokenTable := do +table ← insertToken tk.val tk.lbp table; +match tk.lbpNoWs with +| none => pure table +| some _ => insertNoWsToken tk.val tk.lbpNoWs table + +private def mkImportedTokenTable (es : Array (Array TokenConfig)) : IO TokenTableAttributeExtensionState := do table ← builtinTokenTable.get; --- TODO: add `es` to `table` -pure table +table ← es.foldlM + (fun table tokens => + tokens.foldlM + (fun table tk => IO.ofExcept (addTokenConfig table tk)) + table) + table; +pure ([], table) + +private def addTokenTableEntry (s : TokenTableAttributeExtensionState) (tk : TokenConfig) : TokenTableAttributeExtensionState := +match addTokenConfig s.2 tk with +| Except.ok table => (tk :: s.1, table) +| _ => unreachable! /- We use a TokenTable attribute to make sure they are scoped. Users do not directly use this attribute. They use them indirectly when they use parser attributes. -/ structure TokenTableAttribute := (attr : AttributeImpl) -(ext : PersistentEnvExtension TokenConfig TokenTable) +(ext : TokenTableAttributeExtension) instance TokenTableAttribute.inhabited : Inhabited TokenTableAttribute := ⟨{ attr := arbitrary _, ext := arbitrary _ }⟩ -section -set_option compiler.extract_closed false +private def addTokenAux (env : Environment) (ext : TokenTableAttributeExtension) (tk : TokenConfig) : Except String Environment := do +let s := ext.getState env; +-- Recall that addTokenTableEntry is pure, and assumes `addTokenConfig` does not fail. +-- So, we must run it here to handle exception. +addTokenConfig s.2 tk; +pure $ ext.addEntry env tk + def mkTokenTableAttribute : IO TokenTableAttribute := do -ext : PersistentEnvExtension TokenConfig TokenTable ← registerPersistentEnvExtension { +ext : TokenTableAttributeExtension ← registerPersistentEnvExtension { name := `_tokens_, - addImportedFn := fun es => mkImportedTokenTable es, - addEntryFn := fun (s : TokenTable) _ => s, -- TODO - exportEntriesFn := fun _ => #[], -- TODO - statsFn := fun _ => fmt "token table attribute" -- TODO + mkInitial := do table ← builtinTokenTable.get; pure ([], table), + addImportedFn := fun env => mkImportedTokenTable, + addEntryFn := addTokenTableEntry, + exportEntriesFn := fun s => s.1.reverse.toArray, + statsFn := fun s => format "number of local entries: " ++ format s.1.length }; let attrImpl : AttributeImpl := { name := `_tokens_, descr := "internal token table attribute", add := fun env decl args persistent => pure env -- TODO }; +registerAttribute attrImpl; pure { ext := ext, attr := attrImpl } -end @[init mkTokenTableAttribute] constant tokenTableAttribute : TokenTableAttribute := arbitrary _ +def addToken (env : Environment) (tk : TokenConfig) : Except String Environment := +addTokenAux env tokenTableAttribute.2 tk + /- Global table with all SyntaxNodeKind's -/ def mkSyntaxNodeKindSetRef : IO (IO.Ref SyntaxNodeKindSet) := IO.mkRef {} @[init mkSyntaxNodeKindSetRef] constant syntaxNodeKindSetRef : IO.Ref SyntaxNodeKindSet := arbitrary _ -def updateSyntaxNodeKinds (pinfo : ParserInfo) : IO Unit := +def updateBuiltinSyntaxNodeKinds (pinfo : ParserInfo) : IO Unit := syntaxNodeKindSetRef.modify pinfo.updateKindSet def isValidSyntaxNodeKind (k : SyntaxNodeKind) : IO Bool := do @@ -1370,7 +1399,7 @@ def mkParserContextCore (env : Environment) (input : String) (fileName : String) { input := input, fileName := fileName, fileMap := input.toFileMap, - tokens := tokenTableAttribute.ext.getState env } + tokens := (tokenTableAttribute.ext.getState env).2 } @[inline] def ParserContextCore.toParserContext (env : Environment) (ctx : ParserContextCore) : ParserContext := { env := env, toParserContextCore := ctx } @@ -1397,37 +1426,48 @@ IO.mkRef {} @[init mkBuiltinParsingTablesRef] constant builtinTermParsingTable : IO.Ref ParsingTables := arbitrary _ -private def updateTokens (info : ParserInfo) (declName : Name) : IO Unit := do +private def updateBuiltinTokens (info : ParserInfo) (declName : Name) : IO Unit := do tokens ← builtinTokenTable.swap {}; match info.updateTokens tokens with | Except.ok newTokens => builtinTokenTable.set newTokens | Except.error msg => throw (IO.userError ("invalid builtin parser '" ++ toString declName ++ "', " ++ msg)) -def addBuiltinLeadingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser) : IO Unit := do -tables ← tablesRef.get; -tablesRef.reset; -updateTokens p.info declName; -updateSyntaxNodeKinds p.info; -let addTokens (tks : List TokenConfig) : IO Unit := +def addLeadingParser (tables : ParsingTables) (parserName : Name) (p : Parser) : Except String ParsingTables := +let addTokens (tks : List TokenConfig) : ParsingTables := let tks := tks.map $ fun tk => mkNameSimple tk.val; - tablesRef.set $ tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { leadingTable := tables.leadingTable.insert tk p, .. tables }) tables; + tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { leadingTable := tables.leadingTable.insert tk p, .. tables }) tables; match p.info.firstTokens with -| FirstTokens.tokens tks => addTokens tks -| FirstTokens.optTokens tks => addTokens tks -| _ => throw (IO.userError ("invalid builtin parser '" ++ toString declName ++ "', initial token is not statically known")) +| FirstTokens.tokens tks => pure $ addTokens tks +| FirstTokens.optTokens tks => pure $ addTokens tks +| _ => throw ("invalid builtin parser '" ++ toString parserName ++ "', initial token is not statically known") -def addBuiltinTrailingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : TrailingParser) : IO Unit := do -tables ← tablesRef.get; -tablesRef.reset; -updateTokens p.info declName; -updateSyntaxNodeKinds p.info; -let addTokens (tks : List TokenConfig) : IO Unit := +def addTrailingParser (tables : ParsingTables) (p : TrailingParser) : ParsingTables := +let addTokens (tks : List TokenConfig) : ParsingTables := let tks := tks.map $ fun tk => mkNameSimple tk.val; - tablesRef.set $ tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { trailingTable := tables.trailingTable.insert tk p, .. tables }) tables; + tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { trailingTable := tables.trailingTable.insert tk p, .. tables }) tables; match p.info.firstTokens with | FirstTokens.tokens tks => addTokens tks | FirstTokens.optTokens tks => addTokens tks -| _ => tablesRef.set { trailingParsers := p :: tables.trailingParsers, .. tables } +| _ => { trailingParsers := p :: tables.trailingParsers, .. tables } + +def addParser {k} (tables : ParsingTables) (declName : Name) (p : Parser k) : Except String ParsingTables := +match k, p with +| leading, p => addLeadingParser tables declName p +| trailing, p => pure $ addTrailingParser tables p + +def addBuiltinParser {k} (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser k) : IO Unit := do +tables ← tablesRef.get; +tablesRef.reset; +updateBuiltinTokens p.info declName; +updateBuiltinSyntaxNodeKinds p.info; +tables ← IO.ofExcept $ addParser tables declName p; +tablesRef.set tables + +def addBuiltinLeadingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser) : IO Unit := +addBuiltinParser tablesRef declName p + +def addBuiltinTrailingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : TrailingParser) : IO Unit := +addBuiltinParser tablesRef declName p def declareBuiltinParser (env : Environment) (addFnName : Name) (refDeclName : Name) (declName : Name) : IO Environment := let name := `_regBuiltinParser ++ declName; @@ -1478,13 +1518,23 @@ match unsafeIO (do tables ← ref.get; pure $ prattParser kind tables a c s) wit @[implementedBy runBuiltinParserUnsafe] constant runBuiltinParser (kind : String) (ref : IO.Ref ParsingTables) : ParserFn leading := arbitrary _ -inductive ParserAttributeEntry -| leading (n : Name) -| trailing (n : Name) +structure ParserAttributeEntry := +(parserName : Name) +(kind : ParserKind) +(parser : Parser kind) + +structure ParserAttributeExtensionState := +(newEntries : List Name := []) +(tables : ParsingTables := {}) + +instance ParserAttributeExtensionState.inhabited : Inhabited ParserAttributeExtensionState := +⟨{}⟩ + +abbrev ParserAttributeExtension := PersistentEnvExtension Name ParserAttributeEntry ParserAttributeExtensionState structure ParserAttribute := (attr : AttributeImpl) -(ext : PersistentEnvExtension ParserAttributeEntry ParsingTables) +(ext : ParserAttributeExtension) (kind : String) namespace ParserAttribute @@ -1493,7 +1543,7 @@ instance : Inhabited ParserAttribute := ⟨{ attr := arbitrary _, ext := arbitra def runParserFn (attr : ParserAttribute) : ParserFn leading := fun a c s => - let tables : ParsingTables := attr.ext.getState c.env; + let tables : ParsingTables := (attr.ext.getState c.env).tables; prattParser attr.kind tables a c s def mkParser (attr : ParserAttribute) (rbp : Nat) : Parser leading := @@ -1507,9 +1557,9 @@ def mkParserAttributeTable : IO (IO.Ref ParserAttributeTable) := IO.mkRef {} @[init mkParserAttributeTable] -constant parserAttributeTable : IO.Ref ParserAttributeTable := arbitrary _ +constant parserAttributeTableRef : IO.Ref ParserAttributeTable := arbitrary _ -def compileParserDescr (table : ParserAttributeTable) : forall {k : ParserKind}, ParserDescr k → Except String (Parser k) +def compileParserDescr (table : ParserAttributeTable) : forall {k : ParserKind}, ParserDescrCore k → Except String (Parser k) | _, ParserDescr.andthen d₁ d₂ => andthen <$> compileParserDescr d₁ <*> compileParserDescr d₂ | _, ParserDescr.orelse d₁ d₂ => orelse <$> compileParserDescr d₁ <*> compileParserDescr d₂ | _, ParserDescr.optional d => optional <$> compileParserDescr d @@ -1528,38 +1578,103 @@ def compileParserDescr (table : ParserAttributeTable) : forall {k : ParserKind}, | none => throw ("unknow parser kind '" ++ toString n ++ "'") | ParserKind.trailing, ParserDescr.pushLeading => pure $ pushLeading +unsafe def mkParserOfConstantUnsafe (env : Environment) (table : ParserAttributeTable) (constName : Name) + : Except String (Sigma (fun (k : ParserKind) => Parser k)) := +match env.find? constName with +| none => throw ("unknow constant '" ++ toString constName ++ "'") +| some info => + match info.type with + | Expr.const `Lean.Parser.TrailingParser _ _ => do + p ← env.evalConst (Parser trailing) constName; + pure ⟨trailing, p⟩ + | Expr.app (Expr.const `Lean.Parser.Parser _ _) (Expr.const `Lean.ParserKind.leading _ _) _ => do + p ← env.evalConst (Parser leading) constName; + pure ⟨leading, p⟩ + | Expr.const `Lean.ParserDescr _ _ => do + d ← env.evalConst ParserDescr constName; + p ← compileParserDescr table d; + pure ⟨leading, p⟩ + | Expr.const `Lean.TrailingParserDescr _ _ => do + d ← env.evalConst TrailingParserDescr constName; + p ← compileParserDescr table d; + pure ⟨trailing, p⟩ + | _ => throw ("unexpected parser type at '" ++ toString constName ++ "' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected") + +@[implementedBy mkParserOfConstantUnsafe] +constant mkParserOfConstant (env : Environment) (table : ParserAttributeTable) (constName : Name) : Except String (Sigma (fun (k : ParserKind) => Parser k)) := +arbitrary _ + +private def addImportedParsers (builtinTables : Option (IO.Ref ParsingTables)) (env : Environment) (es : Array (Array Name)) : IO ParserAttributeExtensionState := do +tables ← match builtinTables with +| some tables => tables.get +| none => pure {}; +attrTable ← parserAttributeTableRef.get; +tables ← es.foldlM + (fun tables constNames => + constNames.foldlM + (fun tables constName => + match mkParserOfConstant env attrTable constName with + | Except.ok p => + match addParser tables constName p.2 with + | Except.ok tables => pure tables + | Except.error ex => throw (IO.userError ex) + | Except.error ex => throw (IO.userError ex)) + tables) + tables; +pure { tables := tables } + +private def addParserAttributeEntry (s : ParserAttributeExtensionState) (e : ParserAttributeEntry) : ParserAttributeExtensionState := +match e with +| { parserName := parserName, parser := p, .. } => + match addParser s.tables parserName p with + | Except.ok tables => { newEntries := parserName :: s.newEntries, tables := tables } + | Except.error _ => unreachable! + +private def addParserAttribute (env : Environment) (ext : ParserAttributeExtension) (constName : Name) (persistent : Bool) : IO Environment := do +attrTable ← parserAttributeTableRef.get; +match mkParserOfConstant env attrTable constName with +| Except.error ex => throw (IO.userError ex) +| Except.ok p => + -- TODO: register kinds and symbols + let entry : ParserAttributeEntry := { parserName := constName, kind := p.1, parser := p.2 }; + let s : ParserAttributeExtensionState := ext.getState env; + -- Remark: addEntry does not handle exceptions. So, we use `addParser` here to make sure it does not throw an exception. + match addParser s.tables constName p.2 with + | Except.ok _ => pure $ ext.addEntry env entry + | Except.error ex => throw (IO.userError ex) + +private def ParserAttribute.mkInitial (builtinTablesRef : Option (IO.Ref ParsingTables)) : IO (ParserAttributeExtensionState) := +match builtinTablesRef with +| none => pure {} +| some tablesRef => do tables ← tablesRef.get; pure { tables := tables } + /- -This is just the basic skeleton where we create an -extensible/scoped parser attribute that is optionally initialized with +Parser attribute that can be optionally initialized with a builtin parser attribute. -The current implementation just uses the bultin parser. -We still need to: -- Add support for scoped parser extensions. +TODO: support for scoped attributes. -/ -def registerParserAttribute (attrName : Name) (kind : String) (descr : String) (builtinTable : Option (IO.Ref ParsingTables) := none) : IO ParserAttribute := do +def registerParserAttribute (attrName : Name) (kind : String) (descr : String) (builtinTables : Option (IO.Ref ParsingTables) := none) : IO ParserAttribute := do let kindSym := mkNameSimple kind; -attrTable ← parserAttributeTable.get; +attrTable ← parserAttributeTableRef.get; when (attrTable.contains kindSym) $ throw (IO.userError ("parser attribute '" ++ kind ++ "' has already been defined")); -ext : PersistentEnvExtension ParserAttributeEntry ParsingTables ← registerPersistentEnvExtension { +ext : PersistentEnvExtension Name ParserAttributeEntry ParserAttributeExtensionState ← registerPersistentEnvExtension { name := attrName, - addImportedFn := fun es => do - table ← match builtinTable with - | some table => table.get - | none => pure {}; - -- TODO: populate table with `es` - pure table, - addEntryFn := fun (s : ParsingTables) _ => s, -- TODO - exportEntriesFn := fun _ => #[], -- TODO - statsFn := fun _ => fmt "parser attribute" -- TODO + mkInitial := ParserAttribute.mkInitial builtinTables, + addImportedFn := addImportedParsers builtinTables, + addEntryFn := addParserAttributeEntry, + exportEntriesFn := fun s => s.newEntries.reverse.toArray, + statsFn := fun s => format "number of local entries: " ++ format s.newEntries.length }; let attrImpl : AttributeImpl := { - name := attrName, - descr := descr, - add := fun env decl args persistent => pure env -- TODO + name := attrName, + descr := descr, + add := fun env constName _ persistent => addParserAttribute env ext constName persistent, + applicationTime := AttributeApplicationTime.afterCompilation }; let attr : ParserAttribute := { ext := ext, attr := attrImpl, kind := kind }; -parserAttributeTable.modify $ fun table => table.insert kindSym attr; +parserAttributeTableRef.modify $ fun table => table.insert kindSym attr; +registerAttribute attrImpl; pure attr -- declare `termParser` here since it is used everywhere via antiquotations diff --git a/stage0/src/Init/LeanExt.lean b/stage0/src/Init/LeanExt.lean index 8b202643c1..79c201f02b 100644 --- a/stage0/src/Init/LeanExt.lean +++ b/stage0/src/Init/LeanExt.lean @@ -29,20 +29,40 @@ inductive ParserKind /- Small DSL for describing parsers. We implement an interpreter for it at `Parser.lean` -/ -inductive ParserDescr : ParserKind → Type -| andthen {k : ParserKind} : ParserDescr k → ParserDescr k → ParserDescr k -| orelse {k : ParserKind} : ParserDescr k → ParserDescr k → ParserDescr k -| optional {k : ParserKind} : ParserDescr k → ParserDescr k -| lookahead {k : ParserKind} : ParserDescr k → ParserDescr k -| try {k : ParserKind} : ParserDescr k → ParserDescr k -| many {k : ParserKind} : ParserDescr k → ParserDescr k -| many1 {k : ParserKind} : ParserDescr k → ParserDescr k -| sepBy {k : ParserKind} : ParserDescr k → ParserDescr k → ParserDescr k -| sepBy1 {k : ParserKind} : ParserDescr k → ParserDescr k → ParserDescr k -| node {k : ParserKind} : Name → ParserDescr k → ParserDescr k -| symbol {k : ParserKind} : String → Nat → ParserDescr k -| unicodeSymbol {k : ParserKind} : String → String → Nat → ParserDescr k -| pushLeading : ParserDescr ParserKind.trailing -| parser : Name → Nat → ParserDescr ParserKind.leading +inductive ParserDescrCore : ParserKind → Type +| andthen {k : ParserKind} : ParserDescrCore k → ParserDescrCore k → ParserDescrCore k +| orelse {k : ParserKind} : ParserDescrCore k → ParserDescrCore k → ParserDescrCore k +| optional {k : ParserKind} : ParserDescrCore k → ParserDescrCore k +| lookahead {k : ParserKind} : ParserDescrCore k → ParserDescrCore k +| try {k : ParserKind} : ParserDescrCore k → ParserDescrCore k +| many {k : ParserKind} : ParserDescrCore k → ParserDescrCore k +| many1 {k : ParserKind} : ParserDescrCore k → ParserDescrCore k +| sepBy {k : ParserKind} : ParserDescrCore k → ParserDescrCore k → ParserDescrCore k +| sepBy1 {k : ParserKind} : ParserDescrCore k → ParserDescrCore k → ParserDescrCore k +| node {k : ParserKind} : Name → ParserDescrCore k → ParserDescrCore k +| symbol {k : ParserKind} : String → Nat → ParserDescrCore k +| unicodeSymbol {k : ParserKind} : String → String → Nat → ParserDescrCore k +| pushLeading : ParserDescrCore ParserKind.trailing +| parser : Name → Nat → ParserDescrCore ParserKind.leading + +instance ParserDescrCore.inhabited {k} : Inhabited (ParserDescrCore k) := ⟨ParserDescrCore.symbol "" 0⟩ + +abbrev ParserDescr := ParserDescrCore ParserKind.leading +abbrev TrailingParserDescr := ParserDescrCore ParserKind.trailing + +@[matchPattern] abbrev ParserDescr.andthen := @ParserDescrCore.andthen +@[matchPattern] abbrev ParserDescr.orelse := @ParserDescrCore.orelse +@[matchPattern] abbrev ParserDescr.optional := @ParserDescrCore.optional +@[matchPattern] abbrev ParserDescr.lookahead := @ParserDescrCore.lookahead +@[matchPattern] abbrev ParserDescr.try := @ParserDescrCore.try +@[matchPattern] abbrev ParserDescr.many := @ParserDescrCore.many +@[matchPattern] abbrev ParserDescr.many1 := @ParserDescrCore.many1 +@[matchPattern] abbrev ParserDescr.sepBy := @ParserDescrCore.sepBy +@[matchPattern] abbrev ParserDescr.sepBy1 := @ParserDescrCore.sepBy1 +@[matchPattern] abbrev ParserDescr.node := @ParserDescrCore.node +@[matchPattern] abbrev ParserDescr.symbol := @ParserDescrCore.symbol +@[matchPattern] abbrev ParserDescr.unicodeSymbol := @ParserDescrCore.unicodeSymbol +@[matchPattern] abbrev ParserDescr.pushLeading := @ParserDescrCore.pushLeading +@[matchPattern] abbrev ParserDescr.parser := @ParserDescrCore.parser end Lean diff --git a/stage0/src/library/compiler/ir_interpreter.cpp b/stage0/src/library/compiler/ir_interpreter.cpp index e7de45e30f..713856931b 100644 --- a/stage0/src/library/compiler/ir_interpreter.cpp +++ b/stage0/src/library/compiler/ir_interpreter.cpp @@ -275,6 +275,8 @@ class interpreter { }; std::vector m_call_stack; environment const & m_env; + // if we were called within the execution of a different interpreter, restore the value of `g_interpreter` in the end + interpreter * m_prev_interpreter; struct constant_cache_entry { bool m_is_scalar; value m_val; @@ -753,10 +755,10 @@ class interpreter { // closure stub stub static object * stub_m_aux(object ** args) { environment env(args[0]); - if (g_interpreter) { + if (g_interpreter && is_eqp(g_interpreter->m_env, env)) { return g_interpreter->stub_m(args); } else { - // We changed threads or the closure was stored and called after the original interpreter exited. + // We changed threads or the closure was stored and called in a different context. // Create new interpreter with new stacks. return interpreter(env).stub_m(args); } @@ -804,7 +806,7 @@ class interpreter { } public: explicit interpreter(environment const & env) : m_env(env) { - lean_assert(g_interpreter == nullptr); + m_prev_interpreter = g_interpreter; g_interpreter = this; } ~interpreter() { @@ -814,7 +816,7 @@ public: } }); lean_assert(g_interpreter == this); - g_interpreter = nullptr; + g_interpreter = m_prev_interpreter; } /** A variant of `call` designed for external uses. @@ -893,12 +895,7 @@ uint32 run_main(environment const & env, int argv, char * argc[]) { extern "C" object * lean_eval_const(object * /* inh */, object * env, object * c) { try { - if (g_interpreter == nullptr) { - return mk_cnstr(1, run_boxed(TO_REF(environment, env), TO_REF(name, c), 0, 0)).steal(); - } else { - flet reset(g_interpreter, nullptr); - return mk_cnstr(1, run_boxed(TO_REF(environment, env), TO_REF(name, c), 0, 0)).steal(); - } + return mk_cnstr(1, run_boxed(TO_REF(environment, env), TO_REF(name, c), 0, 0)).steal(); } catch (exception & ex) { return mk_cnstr(0, string_ref(ex.what())).steal(); } diff --git a/stage0/stdlib/Init/Lean/Attributes.c b/stage0/stdlib/Init/Lean/Attributes.c index a65df18514..fe7cd5007f 100644 --- a/stage0/stdlib/Init/Lean/Attributes.c +++ b/stage0/stdlib/Init/Lean/Attributes.c @@ -125,7 +125,7 @@ lean_object* l_Lean_TagAttribute_Inhabited; lean_object* l_mkHashMap___at_Lean_mkAttributeMapRef___spec__1(lean_object*); lean_object* l_AssocList_foldlM___main___at_Lean_registerAttribute___spec__6(lean_object*, lean_object*); size_t l_Lean_Name_hash(lean_object*); -lean_object* l_Lean_registerTagAttribute___lambda__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_registerTagAttribute___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Nat_repr(lean_object*); extern lean_object* l_Char_HasRepr___closed__1; lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_registerEnumAttributes___spec__6(lean_object*); @@ -135,7 +135,7 @@ lean_object* l_RBNode_find___main___at_Lean_EnumAttributes_setValue___spec__1___ lean_object* l_RBNode_fold___main___at_Lean_registerEnumAttributes___spec__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_Lean_getAttributeNames___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_ParametricAttribute_setParam(lean_object*); -lean_object* l_Lean_registerTagAttribute___lambda__1(lean_object*, lean_object*); +lean_object* l_Lean_registerTagAttribute___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_fold___main___at_Lean_registerParametricAttribute___spec__1(lean_object*); lean_object* lean_erase_attribute(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_RBNode_find___main___at_Lean_ParametricAttribute_setParam___spec__1___rarg___boxed(lean_object*, lean_object*); @@ -263,6 +263,7 @@ lean_object* l_Array_anyRangeMAux___main___at_Lean_registerTagAttribute___spec__ uint8_t l_Lean_NameSet_contains(lean_object*, lean_object*); lean_object* lean_activate_scoped_attribute(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerParametricAttribute___rarg___lambda__3(lean_object*); +lean_object* l_Lean_registerTagAttribute___closed__4; lean_object* l_Lean_TagAttribute_Inhabited___closed__3; lean_object* l_AssocList_foldlM___main___at_Lean_getAttributeNames___spec__1(lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_registerParametricAttribute___spec__6___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -276,6 +277,7 @@ lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_ lean_object* l_Lean_Environment_addAttribute___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_pushScopeCore(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_RBNode_fold___main___at_Lean_registerEnumAttributes___spec__1___rarg(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Environment_pushScope___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_add_scoped_attribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -2934,456 +2936,459 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__4(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__4(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_registerTagAttribute___spec__3(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_registerTagAttribute___spec__3(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__4(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__4(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } } -lean_object* l_Lean_registerTagAttribute___lambda__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerTagAttribute___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_3; lean_object* x_4; -x_3 = lean_box(0); -x_4 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; +lean_object* x_5; +x_5 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_4); +return x_5; } } lean_object* l_Lean_registerTagAttribute___lambda__2(lean_object* x_1) { @@ -3657,20 +3662,32 @@ return x_12; lean_object* _init_l_Lean_registerTagAttribute___closed__1() { _start: { -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__1___boxed), 2, 0); -return x_1; +lean_object* x_1; lean_object* x_2; +x_1 = lean_box(0); +x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } lean_object* _init_l_Lean_registerTagAttribute___closed__2() { _start: { +lean_object* x_1; lean_object* x_2; +x_1 = lean_box(0); +x_2 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__1___boxed), 4, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_registerTagAttribute___closed__3() { +_start: +{ lean_object* x_1; x_1 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__2), 1, 0); return x_1; } } -lean_object* _init_l_Lean_registerTagAttribute___closed__3() { +lean_object* _init_l_Lean_registerTagAttribute___closed__4() { _start: { lean_object* x_1; @@ -3681,132 +3698,134 @@ return x_1; lean_object* l_Lean_registerTagAttribute(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; lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; x_5 = l_Lean_registerTagAttribute___closed__1; -x_6 = l_Lean_mkTagDeclarationExtension___closed__1; -x_7 = l_Lean_registerTagAttribute___closed__2; +x_6 = l_Lean_registerTagAttribute___closed__2; +x_7 = l_Lean_mkTagDeclarationExtension___closed__1; x_8 = l_Lean_registerTagAttribute___closed__3; +x_9 = l_Lean_registerTagAttribute___closed__4; lean_inc(x_1); -x_9 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set(x_9, 1, x_5); -lean_ctor_set(x_9, 2, x_6); -lean_ctor_set(x_9, 3, x_7); -lean_ctor_set(x_9, 4, x_8); -x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__2(x_9, x_4); -if (lean_obj_tag(x_10) == 0) +x_10 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_10, 0, x_1); +lean_ctor_set(x_10, 1, x_5); +lean_ctor_set(x_10, 2, x_6); +lean_ctor_set(x_10, 3, x_7); +lean_ctor_set(x_10, 4, x_8); +lean_ctor_set(x_10, 5, x_9); +x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerTagAttribute___spec__2(x_10, x_4); +if (lean_obj_tag(x_11) == 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_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -lean_inc(x_11); -lean_inc(x_1); -x_13 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__4___boxed), 8, 3); -lean_closure_set(x_13, 0, x_1); -lean_closure_set(x_13, 1, x_3); -lean_closure_set(x_13, 2, x_11); -lean_inc(x_1); -x_14 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_14, 0, x_1); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -x_16 = l_Lean_AttributeImpl_inhabited___closed__4; -x_17 = l_Lean_AttributeImpl_inhabited___closed__5; -x_18 = 0; -x_19 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_19, 0, x_1); -lean_ctor_set(x_19, 1, x_2); -lean_ctor_set(x_19, 2, x_13); -lean_ctor_set(x_19, 3, x_14); -lean_ctor_set(x_19, 4, x_15); -lean_ctor_set(x_19, 5, x_16); -lean_ctor_set(x_19, 6, x_17); -lean_ctor_set(x_19, 7, x_17); -lean_ctor_set_uint8(x_19, sizeof(void*)*8, x_18); -lean_inc(x_19); -x_20 = l_Lean_registerAttribute(x_19, x_12); -if (lean_obj_tag(x_20) == 0) -{ -uint8_t x_21; -x_21 = !lean_is_exclusive(x_20); -if (x_21 == 0) -{ -lean_object* x_22; lean_object* x_23; -x_22 = lean_ctor_get(x_20, 0); -lean_dec(x_22); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_19); -lean_ctor_set(x_23, 1, x_11); -lean_ctor_set(x_20, 0, x_23); -return x_20; -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_20, 1); -lean_inc(x_24); -lean_dec(x_20); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_19); -lean_ctor_set(x_25, 1, x_11); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_25); -lean_ctor_set(x_26, 1, x_24); -return x_26; -} -} -else -{ -uint8_t x_27; -lean_dec(x_19); +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); lean_dec(x_11); -x_27 = !lean_is_exclusive(x_20); -if (x_27 == 0) +lean_inc(x_12); +lean_inc(x_1); +x_14 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__4___boxed), 8, 3); +lean_closure_set(x_14, 0, x_1); +lean_closure_set(x_14, 1, x_3); +lean_closure_set(x_14, 2, x_12); +lean_inc(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_15, 0, x_1); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +x_17 = l_Lean_AttributeImpl_inhabited___closed__4; +x_18 = l_Lean_AttributeImpl_inhabited___closed__5; +x_19 = 0; +x_20 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_20, 0, x_1); +lean_ctor_set(x_20, 1, x_2); +lean_ctor_set(x_20, 2, x_14); +lean_ctor_set(x_20, 3, x_15); +lean_ctor_set(x_20, 4, x_16); +lean_ctor_set(x_20, 5, x_17); +lean_ctor_set(x_20, 6, x_18); +lean_ctor_set(x_20, 7, x_18); +lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); +lean_inc(x_20); +x_21 = l_Lean_registerAttribute(x_20, x_13); +if (lean_obj_tag(x_21) == 0) { -return x_20; +uint8_t x_22; +x_22 = !lean_is_exclusive(x_21); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; +x_23 = lean_ctor_get(x_21, 0); +lean_dec(x_23); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_20); +lean_ctor_set(x_24, 1, x_12); +lean_ctor_set(x_21, 0, x_24); +return x_21; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_20, 0); -x_29 = lean_ctor_get(x_20, 1); -lean_inc(x_29); -lean_inc(x_28); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_21, 1); +lean_inc(x_25); +lean_dec(x_21); +x_26 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_26, 0, x_20); +lean_ctor_set(x_26, 1, x_12); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_25); +return x_27; +} +} +else +{ +uint8_t x_28; lean_dec(x_20); -x_30 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_30, 0, x_28); -lean_ctor_set(x_30, 1, x_29); -return x_30; +lean_dec(x_12); +x_28 = !lean_is_exclusive(x_21); +if (x_28 == 0) +{ +return x_21; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_21, 0); +x_30 = lean_ctor_get(x_21, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_21); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +return x_31; } } } else { -uint8_t x_31; +uint8_t x_32; lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_31 = !lean_is_exclusive(x_10); -if (x_31 == 0) +x_32 = !lean_is_exclusive(x_11); +if (x_32 == 0) { -return x_10; +return x_11; } else { -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_10, 0); -x_33 = lean_ctor_get(x_10, 1); +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_11, 0); +x_34 = lean_ctor_get(x_11, 1); +lean_inc(x_34); lean_inc(x_33); -lean_inc(x_32); -lean_dec(x_10); -x_34 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_34, 0, x_32); -lean_ctor_set(x_34, 1, x_33); -return x_34; +lean_dec(x_11); +x_35 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_35, 0, x_33); +lean_ctor_set(x_35, 1, x_34); +return x_35; } } } @@ -3824,13 +3843,14 @@ x_7 = lean_box(x_6); return x_7; } } -lean_object* l_Lean_registerTagAttribute___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerTagAttribute___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_3; -x_3 = l_Lean_registerTagAttribute___lambda__1(x_1, x_2); -lean_dec(x_1); -return x_3; +lean_object* x_5; +x_5 = l_Lean_registerTagAttribute___lambda__1(x_1, x_2, x_3, x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_5; } } lean_object* l_Lean_registerTagAttribute___lambda__3___boxed(lean_object* x_1) { @@ -4770,443 +4790,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__9___rarg(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__9___rarg(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_registerParametricAttribute___spec__8___rarg(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_registerParametricAttribute___spec__8___rarg(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__9___rarg(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__9___rarg(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -5461,135 +5485,137 @@ return x_1; lean_object* l_Lean_registerParametricAttribute___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_7 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__2___boxed), 2, 1); lean_closure_set(x_7, 0, x_1); x_8 = l_Lean_registerTagAttribute___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__1; -x_10 = l_Lean_registerParametricAttribute___rarg___closed__2; +x_9 = l_Lean_registerTagAttribute___closed__2; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__1; +x_11 = l_Lean_registerParametricAttribute___rarg___closed__2; lean_inc(x_2); -x_11 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_11, 0, x_2); -lean_ctor_set(x_11, 1, x_8); -lean_ctor_set(x_11, 2, x_9); -lean_ctor_set(x_11, 3, x_7); -lean_ctor_set(x_11, 4, x_10); -x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__7___rarg(x_11, x_6); -if (lean_obj_tag(x_12) == 0) +x_12 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_12, 0, x_2); +lean_ctor_set(x_12, 1, x_8); +lean_ctor_set(x_12, 2, x_9); +lean_ctor_set(x_12, 3, x_10); +lean_ctor_set(x_12, 4, x_7); +lean_ctor_set(x_12, 5, x_11); +x_13 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerParametricAttribute___spec__7___rarg(x_12, x_6); +if (lean_obj_tag(x_13) == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; +x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); -lean_dec(x_12); -lean_inc(x_13); -lean_inc(x_2); -x_15 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); -lean_closure_set(x_15, 0, x_2); -lean_closure_set(x_15, 1, x_4); -lean_closure_set(x_15, 2, x_13); -lean_closure_set(x_15, 3, x_5); -lean_inc(x_2); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_16, 0, x_2); -lean_inc(x_2); -x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_17, 0, x_2); -x_18 = l_Lean_AttributeImpl_inhabited___closed__4; -x_19 = l_Lean_AttributeImpl_inhabited___closed__5; -x_20 = 0; -x_21 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_21, 0, x_2); -lean_ctor_set(x_21, 1, x_3); -lean_ctor_set(x_21, 2, x_15); -lean_ctor_set(x_21, 3, x_16); -lean_ctor_set(x_21, 4, x_17); -lean_ctor_set(x_21, 5, x_18); -lean_ctor_set(x_21, 6, x_19); -lean_ctor_set(x_21, 7, x_19); -lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); -lean_inc(x_21); -x_22 = l_Lean_registerAttribute(x_21, x_14); -if (lean_obj_tag(x_22) == 0) -{ -uint8_t x_23; -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) -{ -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_22, 0); -lean_dec(x_24); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_21); -lean_ctor_set(x_25, 1, x_13); -lean_ctor_set(x_22, 0, x_25); -return x_22; -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_22, 1); -lean_inc(x_26); -lean_dec(x_22); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_21); -lean_ctor_set(x_27, 1, x_13); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_26); -return x_28; -} -} -else -{ -uint8_t x_29; -lean_dec(x_21); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); lean_dec(x_13); -x_29 = !lean_is_exclusive(x_22); -if (x_29 == 0) +lean_inc(x_14); +lean_inc(x_2); +x_16 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); +lean_closure_set(x_16, 0, x_2); +lean_closure_set(x_16, 1, x_4); +lean_closure_set(x_16, 2, x_14); +lean_closure_set(x_16, 3, x_5); +lean_inc(x_2); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_17, 0, x_2); +lean_inc(x_2); +x_18 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_18, 0, x_2); +x_19 = l_Lean_AttributeImpl_inhabited___closed__4; +x_20 = l_Lean_AttributeImpl_inhabited___closed__5; +x_21 = 0; +x_22 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_22, 0, x_2); +lean_ctor_set(x_22, 1, x_3); +lean_ctor_set(x_22, 2, x_16); +lean_ctor_set(x_22, 3, x_17); +lean_ctor_set(x_22, 4, x_18); +lean_ctor_set(x_22, 5, x_19); +lean_ctor_set(x_22, 6, x_20); +lean_ctor_set(x_22, 7, x_20); +lean_ctor_set_uint8(x_22, sizeof(void*)*8, x_21); +lean_inc(x_22); +x_23 = l_Lean_registerAttribute(x_22, x_15); +if (lean_obj_tag(x_23) == 0) { -return x_22; +uint8_t x_24; +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +x_26 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_26, 0, x_22); +lean_ctor_set(x_26, 1, x_14); +lean_ctor_set(x_23, 0, x_26); +return x_23; } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_22, 0); -x_31 = lean_ctor_get(x_22, 1); -lean_inc(x_31); -lean_inc(x_30); +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_23, 1); +lean_inc(x_27); +lean_dec(x_23); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_22); +lean_ctor_set(x_28, 1, x_14); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_27); +return x_29; +} +} +else +{ +uint8_t x_30; lean_dec(x_22); -x_32 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_32, 0, x_30); -lean_ctor_set(x_32, 1, x_31); -return x_32; +lean_dec(x_14); +x_30 = !lean_is_exclusive(x_23); +if (x_30 == 0) +{ +return x_23; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_23, 0); +x_32 = lean_ctor_get(x_23, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_23); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; } } } else { -uint8_t x_33; +uint8_t x_34; lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_33 = !lean_is_exclusive(x_12); -if (x_33 == 0) +x_34 = !lean_is_exclusive(x_13); +if (x_34 == 0) { -return x_12; +return x_13; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_12, 0); -x_35 = lean_ctor_get(x_12, 1); +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_13, 0); +x_36 = lean_ctor_get(x_13, 1); +lean_inc(x_36); lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_12); -x_36 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_36, 0, x_34); -lean_ctor_set(x_36, 1, x_35); -return x_36; +lean_dec(x_13); +x_37 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_37, 0, x_35); +lean_ctor_set(x_37, 1, x_36); +return x_37; } } } @@ -6945,443 +6971,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__9___rarg(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__9___rarg(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_registerEnumAttributes___spec__8___rarg(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_registerEnumAttributes___spec__8___rarg(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__9___rarg(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__9___rarg(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -7761,108 +7791,110 @@ return x_1; lean_object* l_Lean_registerEnumAttributes___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_7 = lean_alloc_closure((void*)(l_Lean_registerEnumAttributes___rarg___lambda__1___boxed), 2, 1); lean_closure_set(x_7, 0, x_1); x_8 = l_Lean_registerTagAttribute___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__1; -x_10 = l_Lean_registerEnumAttributes___rarg___closed__1; -x_11 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_11, 0, x_2); -lean_ctor_set(x_11, 1, x_8); -lean_ctor_set(x_11, 2, x_9); -lean_ctor_set(x_11, 3, x_7); -lean_ctor_set(x_11, 4, x_10); -x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__7___rarg(x_11, x_6); -if (lean_obj_tag(x_12) == 0) +x_9 = l_Lean_registerTagAttribute___closed__2; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__1; +x_11 = l_Lean_registerEnumAttributes___rarg___closed__1; +x_12 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_12, 0, x_2); +lean_ctor_set(x_12, 1, x_8); +lean_ctor_set(x_12, 2, x_9); +lean_ctor_set(x_12, 3, x_10); +lean_ctor_set(x_12, 4, x_7); +lean_ctor_set(x_12, 5, x_11); +x_13 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerEnumAttributes___spec__7___rarg(x_12, x_6); +if (lean_obj_tag(x_13) == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); -lean_dec(x_12); -lean_inc(x_13); -x_15 = l_List_map___main___at_Lean_registerEnumAttributes___spec__10___rarg(x_4, x_5, x_13, x_3); +x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); -x_16 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_15, x_14); -if (lean_obj_tag(x_16) == 0) -{ -uint8_t x_17; -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_15); -lean_ctor_set(x_19, 1, x_13); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); -lean_dec(x_16); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_15); -lean_ctor_set(x_21, 1, x_13); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -uint8_t x_23; -lean_dec(x_15); lean_dec(x_13); -x_23 = !lean_is_exclusive(x_16); -if (x_23 == 0) +lean_inc(x_14); +x_16 = l_List_map___main___at_Lean_registerEnumAttributes___spec__10___rarg(x_4, x_5, x_14, x_3); +lean_inc(x_16); +x_17 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_16, x_15); +if (lean_obj_tag(x_17) == 0) { -return x_16; +uint8_t x_18; +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_17, 0); +lean_dec(x_19); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_16); +lean_ctor_set(x_20, 1, x_14); +lean_ctor_set(x_17, 0, x_20); +return x_17; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_16, 0); -x_25 = lean_ctor_get(x_16, 1); -lean_inc(x_25); -lean_inc(x_24); +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_17, 1); +lean_inc(x_21); +lean_dec(x_17); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_16); +lean_ctor_set(x_22, 1, x_14); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_21); +return x_23; +} +} +else +{ +uint8_t x_24; lean_dec(x_16); -x_26 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_26, 0, x_24); -lean_ctor_set(x_26, 1, x_25); -return x_26; +lean_dec(x_14); +x_24 = !lean_is_exclusive(x_17); +if (x_24 == 0) +{ +return x_17; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_17, 0); +x_26 = lean_ctor_get(x_17, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_17); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; } } } else { -uint8_t x_27; +uint8_t x_28; lean_dec(x_4); lean_dec(x_3); -x_27 = !lean_is_exclusive(x_12); -if (x_27 == 0) +x_28 = !lean_is_exclusive(x_13); +if (x_28 == 0) { -return x_12; +return x_13; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_12, 0); -x_29 = lean_ctor_get(x_12, 1); +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_13, 0); +x_30 = lean_ctor_get(x_13, 1); +lean_inc(x_30); lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_12); -x_30 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_30, 0, x_28); -lean_ctor_set(x_30, 1, x_29); -return x_30; +lean_dec(x_13); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +return x_31; } } } @@ -8590,6 +8622,8 @@ l_Lean_registerTagAttribute___closed__2 = _init_l_Lean_registerTagAttribute___cl lean_mark_persistent(l_Lean_registerTagAttribute___closed__2); l_Lean_registerTagAttribute___closed__3 = _init_l_Lean_registerTagAttribute___closed__3(); lean_mark_persistent(l_Lean_registerTagAttribute___closed__3); +l_Lean_registerTagAttribute___closed__4 = _init_l_Lean_registerTagAttribute___closed__4(); +lean_mark_persistent(l_Lean_registerTagAttribute___closed__4); l_Lean_TagAttribute_Inhabited___closed__1 = _init_l_Lean_TagAttribute_Inhabited___closed__1(); lean_mark_persistent(l_Lean_TagAttribute_Inhabited___closed__1); l_Lean_TagAttribute_Inhabited___closed__2 = _init_l_Lean_TagAttribute_Inhabited___closed__2(); diff --git a/stage0/stdlib/Init/Lean/AuxRecursor.c b/stage0/stdlib/Init/Lean/AuxRecursor.c index d7ab014eba..bc4dc76be6 100644 --- a/stage0/stdlib/Init/Lean/AuxRecursor.c +++ b/stage0/stdlib/Init/Lean/AuxRecursor.c @@ -13,7 +13,7 @@ #ifdef __cplusplus extern "C" { #endif -lean_object* l_Lean_noConfusionExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_noConfusionExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* lean_mark_aux_recursor(lean_object*, lean_object*); lean_object* l_Lean_noConfusionExt; lean_object* l_Lean_noConfusionExt___elambda__2___boxed(lean_object*); @@ -22,7 +22,7 @@ lean_object* l_Lean_noConfusionExt___closed__5; lean_object* l_Lean_auxRecExt___elambda__1___boxed(lean_object*); lean_object* l_Lean_noConfusionExt___closed__3; extern lean_object* l_String_splitAux___main___closed__1; -lean_object* l_Lean_auxRecExt___elambda__4(lean_object*); +lean_object* l_Lean_auxRecExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_auxRecExt; lean_object* l_Lean_auxRecExt___closed__4; lean_object* l_Lean_noConfusionExt___closed__1; @@ -54,13 +54,13 @@ lean_object* l_Lean_noConfusionExt___elambda__1(lean_object*); lean_object* l_Lean_auxRecExt___elambda__3___boxed(lean_object*, lean_object*); uint8_t lean_is_aux_recursor(lean_object*, lean_object*); lean_object* l_Lean_auxRecExt___elambda__2(lean_object*); -lean_object* l_Lean_noConfusionExt___elambda__4(lean_object*); +lean_object* l_Lean_noConfusionExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_mkNoConfusionExtension(lean_object*); lean_object* l_Lean_mkTagDeclarationExtension(lean_object*, lean_object*); uint8_t l_Lean_TagDeclarationExtension_isTagged(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_namespacesExt___closed__1; lean_object* l_Lean_isAuxRecursor___boxed(lean_object*, lean_object*); -lean_object* l_Lean_auxRecExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_auxRecExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_noConfusionExt___elambda__2(lean_object*); lean_object* _init_l_Lean_mkAuxRecursorExtension___closed__1() { _start: @@ -123,19 +123,19 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_auxRecExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_auxRecExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_auxRecExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_auxRecExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_auxRecExt___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_auxRecExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_auxRecExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -211,13 +211,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_auxRecExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_auxRecExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_auxRecExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_auxRecExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_mark_aux_recursor(lean_object* x_1, lean_object* x_2) { @@ -310,19 +311,19 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_noConfusionExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_noConfusionExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_noConfusionExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_noConfusionExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_noConfusionExt___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_noConfusionExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_noConfusionExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -398,13 +399,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_noConfusionExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_noConfusionExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_noConfusionExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_noConfusionExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_mark_no_confusion(lean_object* x_1, lean_object* x_2) { diff --git a/stage0/stdlib/Init/Lean/Class.c b/stage0/stdlib/Init/Lean/Class.c index 885a77badb..fef92dd593 100644 --- a/stage0/stdlib/Init/Lean/Class.c +++ b/stage0/stdlib/Init/Lean/Class.c @@ -157,7 +157,7 @@ lean_object* l_PersistentHashMap_insert___at_Lean_ClassState_addEntry___spec__30 lean_object* l_Array_iterateMAux___main___at_Lean_ClassState_addEntry___spec__33___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_ClassState_addEntry___spec__7(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkClassExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_classExtension___elambda__4___boxed(lean_object*); +lean_object* l_Lean_classExtension___elambda__4___boxed(lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_ClassState_addEntry___spec__24(lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); extern lean_object* l___private_Init_Lean_Environment_5__envExtensionsRef; @@ -182,7 +182,7 @@ lean_object* l_Lean_ConstantInfo_value_x3f(lean_object*); lean_object* lean_add_instance_old(lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at_Lean_ClassState_addEntry___spec__20(lean_object*, size_t, size_t, lean_object*, lean_object*); uint8_t lean_is_instance(lean_object*, lean_object*); -lean_object* l_Lean_classExtension___elambda__4(lean_object*); +lean_object* l_Lean_classExtension___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_ClassState_Inhabited___spec__4; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_land(size_t, size_t); @@ -196,13 +196,13 @@ lean_object* l___private_Init_Lean_Class_1__checkOutParam(lean_object*, lean_obj lean_object* l___private_Init_Lean_Class_1__checkOutParam___main(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isMissing(lean_object*); lean_object* l_HashMapImp_moveEntries___main___at_Lean_ClassState_addEntry___spec__9(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Class_2__consumeNLambdas___main(lean_object*, lean_object*); lean_object* l_HashMapImp_contains___at_Lean_isClass___spec__2___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Array_anyRangeMAux___main___at___private_Init_Lean_Class_1__checkOutParam___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_IO_ofExcept___at_Lean_registerClassAttr___spec__1___boxed(lean_object*, lean_object*); uint8_t l_HashMapImp_contains___at_Lean_isInstance___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at_Lean_ClassState_addEntry___spec__2(lean_object*, lean_object*, uint8_t); uint8_t l_PersistentHashMap_contains___at_Lean_isClass___spec__3(lean_object*, lean_object*); lean_object* l_Lean_registerTagAttribute___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -270,6 +270,7 @@ extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_mkClassExtension___closed__1; lean_object* l_Lean_addClass___closed__1; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_HashMapImp_insert___at_Lean_ClassState_addEntry___spec__34(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_hasFVar(lean_object*); lean_object* l_Lean_SMap_switch___at_Lean_ClassState_switch___spec__2(lean_object*); @@ -4169,443 +4170,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkClassExtension___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkClassExtension___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -4613,26 +4618,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkClassExtension___spec__4(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__5(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkClassExtension___spec__5(x_14, x_2); +return x_15; } } lean_object* l_Lean_mkClassExtension___lambda__1(lean_object* x_1) { @@ -4790,12 +4807,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_classExtension___elambda__4(lean_object* x_1) { +lean_object* l_Lean_classExtension___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_classExtension___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_classExtension___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_classExtension___closed__1() { @@ -4816,7 +4833,7 @@ lean_object* _init_l_Lean_classExtension___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_classExtension___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_classExtension___elambda__4___boxed), 2, 0); return x_1; } } @@ -4892,13 +4909,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_classExtension___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_classExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_classExtension___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_classExtension___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } uint8_t l_HashMapImp_contains___at_Lean_isClass___spec__2(lean_object* x_1, lean_object* x_2) { diff --git a/stage0/stdlib/Init/Lean/Compiler/ClosedTermCache.c b/stage0/stdlib/Init/Lean/Compiler/ClosedTermCache.c index 8aa823f9aa..8b16a9222a 100644 --- a/stage0/stdlib/Init/Lean/Compiler/ClosedTermCache.c +++ b/stage0/stdlib/Init/Lean/Compiler/ClosedTermCache.c @@ -57,7 +57,7 @@ lean_object* l_HashMapImp_expand___at_Lean_mkClosedTermCacheExtension___spec__8( lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__20(lean_object*, lean_object*); lean_object* l_Lean_closedTermCacheExt___elambda__1(lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_mkClosedTermCacheExtension___spec__15(lean_object*, lean_object*); -lean_object* l_Lean_closedTermCacheExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_closedTermCacheExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* lean_cache_closed_term_name(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3(lean_object*, lean_object*); lean_object* l_AssocList_contains___main___at_Lean_mkClosedTermCacheExtension___spec__7___boxed(lean_object*, lean_object*); @@ -87,8 +87,8 @@ size_t l_USize_land(size_t, size_t); lean_object* l_PersistentHashMap_insertAux___main___at_Lean_mkClosedTermCacheExtension___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_expr_eqv(lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_mkClosedTermCacheExtension___spec__15___boxed(lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); @@ -113,7 +113,7 @@ lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_getClosedTermName_x3 lean_object* l_Lean_closedTermCacheExt___closed__2; lean_object* l_Array_iterateMAux___main___at_Lean_mkClosedTermCacheExtension___spec__5(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_find_x3f___at_Lean_getClosedTermName_x3f___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_Lean_closedTermCacheExt___elambda__4(lean_object*); +lean_object* l_Lean_closedTermCacheExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_closedTermCacheExt___elambda__1___boxed(lean_object*); lean_object* l_Lean_mkClosedTermCacheExtension(lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); @@ -137,6 +137,7 @@ lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_closedTermCacheExt___closed__6; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_PersistentHashMap_insert___at_Lean_mkClosedTermCacheExtension___spec__2(lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_find___main___at_Lean_getClosedTermName_x3f___spec__6(lean_object*, lean_object*); @@ -1480,443 +1481,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__22(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__22(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkClosedTermCacheExtension___spec__21(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkClosedTermCacheExtension___spec__21(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__22(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__22(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1924,26 +1929,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkClosedTermCacheExtension___spec__19(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__20(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkClosedTermCacheExtension___spec__20(x_14, x_2); +return x_15; } } lean_object* l_Lean_mkClosedTermCacheExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -2150,12 +2167,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_closedTermCacheExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_closedTermCacheExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_closedTermCacheExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_closedTermCacheExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_closedTermCacheExt___closed__1() { @@ -2214,7 +2231,7 @@ lean_object* _init_l_Lean_closedTermCacheExt___closed__5() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_closedTermCacheExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_closedTermCacheExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -2290,13 +2307,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_closedTermCacheExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_closedTermCacheExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_closedTermCacheExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_closedTermCacheExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_cache_closed_term_name(lean_object* x_1, lean_object* x_2, lean_object* x_3) { diff --git a/stage0/stdlib/Init/Lean/Compiler/ExportAttr.c b/stage0/stdlib/Init/Lean/Compiler/ExportAttr.c index a89cafc58f..11d0277c72 100644 --- a/stage0/stdlib/Init/Lean/Compiler/ExportAttr.c +++ b/stage0/stdlib/Init/Lean/Compiler/ExportAttr.c @@ -51,6 +51,7 @@ lean_object* lean_string_utf8_byte_size(lean_object*); lean_object* l_Lean_mkExportAttr___lambda__1___closed__2; lean_object* lean_nat_add(lean_object*, lean_object*); uint8_t l___private_Init_Lean_Compiler_ExportAttr_2__isValidCppName___main(lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l_Lean_registerParametricAttribute___at_Lean_mkExportAttr___spec__1___lambda__1(lean_object*); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; lean_object* lean_string_utf8_next(lean_object*, lean_object*); @@ -1024,443 +1025,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkExportAttr___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkExportAttr___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1492,134 +1497,136 @@ return x_1; lean_object* l_Lean_registerParametricAttribute___at_Lean_mkExportAttr___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerParametricAttribute___rarg___closed__1; -x_8 = l_Lean_registerParametricAttribute___at_Lean_mkExportAttr___spec__1___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__2; +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerParametricAttribute___rarg___closed__1; +x_9 = l_Lean_registerParametricAttribute___at_Lean_mkExportAttr___spec__1___closed__1; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__2; lean_inc(x_1); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkExportAttr___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -lean_inc(x_1); -x_14 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); -lean_closure_set(x_14, 0, x_1); -lean_closure_set(x_14, 1, x_3); -lean_closure_set(x_14, 2, x_12); -lean_closure_set(x_14, 3, x_4); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__4; -x_18 = l_Lean_AttributeImpl_inhabited___closed__5; -x_19 = 0; -x_20 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_20, 0, x_1); -lean_ctor_set(x_20, 1, x_2); -lean_ctor_set(x_20, 2, x_14); -lean_ctor_set(x_20, 3, x_15); -lean_ctor_set(x_20, 4, x_16); -lean_ctor_set(x_20, 5, x_17); -lean_ctor_set(x_20, 6, x_18); -lean_ctor_set(x_20, 7, x_18); -lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); -lean_inc(x_20); -x_21 = l_Lean_registerAttribute(x_20, x_13); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_21, 0); -lean_dec(x_23); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_20); -lean_ctor_set(x_24, 1, x_12); -lean_ctor_set(x_21, 0, x_24); -return x_21; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_21, 1); -lean_inc(x_25); -lean_dec(x_21); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_20); -lean_ctor_set(x_26, 1, x_12); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_25); -return x_27; -} -} -else -{ -uint8_t x_28; -lean_dec(x_20); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); lean_dec(x_12); -x_28 = !lean_is_exclusive(x_21); -if (x_28 == 0) +lean_inc(x_13); +lean_inc(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); +lean_closure_set(x_15, 0, x_1); +lean_closure_set(x_15, 1, x_3); +lean_closure_set(x_15, 2, x_13); +lean_closure_set(x_15, 3, x_4); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__4; +x_19 = l_Lean_AttributeImpl_inhabited___closed__5; +x_20 = 0; +x_21 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_21, 0, x_1); +lean_ctor_set(x_21, 1, x_2); +lean_ctor_set(x_21, 2, x_15); +lean_ctor_set(x_21, 3, x_16); +lean_ctor_set(x_21, 4, x_17); +lean_ctor_set(x_21, 5, x_18); +lean_ctor_set(x_21, 6, x_19); +lean_ctor_set(x_21, 7, x_19); +lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); +lean_inc(x_21); +x_22 = l_Lean_registerAttribute(x_21, x_14); +if (lean_obj_tag(x_22) == 0) { -return x_21; +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 0); +lean_dec(x_24); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_21); +lean_ctor_set(x_25, 1, x_13); +lean_ctor_set(x_22, 0, x_25); +return x_22; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_21, 0); -x_30 = lean_ctor_get(x_21, 1); -lean_inc(x_30); -lean_inc(x_29); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_22, 1); +lean_inc(x_26); +lean_dec(x_22); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_13); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +return x_28; +} +} +else +{ +uint8_t x_29; lean_dec(x_21); -x_31 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_31, 0, x_29); -lean_ctor_set(x_31, 1, x_30); -return x_31; +lean_dec(x_13); +x_29 = !lean_is_exclusive(x_22); +if (x_29 == 0) +{ +return x_22; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_22, 0); +x_31 = lean_ctor_get(x_22, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_22); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } else { -uint8_t x_32; +uint8_t x_33; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_32 = !lean_is_exclusive(x_11); -if (x_32 == 0) +x_33 = !lean_is_exclusive(x_12); +if (x_33 == 0) { -return x_11; +return x_12; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_11, 0); -x_34 = lean_ctor_get(x_11, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_12, 0); +x_35 = lean_ctor_get(x_12, 1); +lean_inc(x_35); lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_11); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_33); -lean_ctor_set(x_35, 1, x_34); -return x_35; +lean_dec(x_12); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } diff --git a/stage0/stdlib/Init/Lean/Compiler/ExternAttr.c b/stage0/stdlib/Init/Lean/Compiler/ExternAttr.c index 0b7a04c9ec..7578afe3ff 100644 --- a/stage0/stdlib/Init/Lean/Compiler/ExternAttr.c +++ b/stage0/stdlib/Init/Lean/Compiler/ExternAttr.c @@ -54,6 +54,7 @@ lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_ lean_object* l___private_Init_Lean_Compiler_ExternAttr_2__syntaxToExternAttrData___closed__4; uint8_t l_Lean_Environment_isProjectionFn(lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l___private_Init_Lean_Compiler_ExternAttr_1__syntaxToExternEntries___main___closed__7; lean_object* l___private_Init_Lean_Compiler_ExternAttr_2__syntaxToExternAttrData___closed__9; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; @@ -1307,443 +1308,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_System_FilePath_dirName___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_System_FilePath_dirName___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkExternAttr___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkExternAttr___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_System_FilePath_dirName___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_System_FilePath_dirName___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1775,134 +1780,136 @@ return x_1; lean_object* l_Lean_registerParametricAttribute___at_Lean_mkExternAttr___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_mkProjectionFnInfoExtension___closed__3; -x_8 = l_Lean_registerParametricAttribute___at_Lean_mkExternAttr___spec__1___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__2; +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_mkProjectionFnInfoExtension___closed__3; +x_9 = l_Lean_registerParametricAttribute___at_Lean_mkExternAttr___spec__1___closed__1; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__2; lean_inc(x_1); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkExternAttr___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -lean_inc(x_1); -x_14 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); -lean_closure_set(x_14, 0, x_1); -lean_closure_set(x_14, 1, x_3); -lean_closure_set(x_14, 2, x_12); -lean_closure_set(x_14, 3, x_4); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__4; -x_18 = l_Lean_AttributeImpl_inhabited___closed__5; -x_19 = 0; -x_20 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_20, 0, x_1); -lean_ctor_set(x_20, 1, x_2); -lean_ctor_set(x_20, 2, x_14); -lean_ctor_set(x_20, 3, x_15); -lean_ctor_set(x_20, 4, x_16); -lean_ctor_set(x_20, 5, x_17); -lean_ctor_set(x_20, 6, x_18); -lean_ctor_set(x_20, 7, x_18); -lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); -lean_inc(x_20); -x_21 = l_Lean_registerAttribute(x_20, x_13); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_21, 0); -lean_dec(x_23); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_20); -lean_ctor_set(x_24, 1, x_12); -lean_ctor_set(x_21, 0, x_24); -return x_21; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_21, 1); -lean_inc(x_25); -lean_dec(x_21); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_20); -lean_ctor_set(x_26, 1, x_12); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_25); -return x_27; -} -} -else -{ -uint8_t x_28; -lean_dec(x_20); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); lean_dec(x_12); -x_28 = !lean_is_exclusive(x_21); -if (x_28 == 0) +lean_inc(x_13); +lean_inc(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); +lean_closure_set(x_15, 0, x_1); +lean_closure_set(x_15, 1, x_3); +lean_closure_set(x_15, 2, x_13); +lean_closure_set(x_15, 3, x_4); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__4; +x_19 = l_Lean_AttributeImpl_inhabited___closed__5; +x_20 = 0; +x_21 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_21, 0, x_1); +lean_ctor_set(x_21, 1, x_2); +lean_ctor_set(x_21, 2, x_15); +lean_ctor_set(x_21, 3, x_16); +lean_ctor_set(x_21, 4, x_17); +lean_ctor_set(x_21, 5, x_18); +lean_ctor_set(x_21, 6, x_19); +lean_ctor_set(x_21, 7, x_19); +lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); +lean_inc(x_21); +x_22 = l_Lean_registerAttribute(x_21, x_14); +if (lean_obj_tag(x_22) == 0) { -return x_21; +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 0); +lean_dec(x_24); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_21); +lean_ctor_set(x_25, 1, x_13); +lean_ctor_set(x_22, 0, x_25); +return x_22; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_21, 0); -x_30 = lean_ctor_get(x_21, 1); -lean_inc(x_30); -lean_inc(x_29); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_22, 1); +lean_inc(x_26); +lean_dec(x_22); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_13); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +return x_28; +} +} +else +{ +uint8_t x_29; lean_dec(x_21); -x_31 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_31, 0, x_29); -lean_ctor_set(x_31, 1, x_30); -return x_31; +lean_dec(x_13); +x_29 = !lean_is_exclusive(x_22); +if (x_29 == 0) +{ +return x_22; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_22, 0); +x_31 = lean_ctor_get(x_22, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_22); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } else { -uint8_t x_32; +uint8_t x_33; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_32 = !lean_is_exclusive(x_11); -if (x_32 == 0) +x_33 = !lean_is_exclusive(x_12); +if (x_33 == 0) { -return x_11; +return x_12; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_11, 0); -x_34 = lean_ctor_get(x_11, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_12, 0); +x_35 = lean_ctor_get(x_12, 1); +lean_inc(x_35); lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_11); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_33); -lean_ctor_set(x_35, 1, x_34); -return x_35; +lean_dec(x_12); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } diff --git a/stage0/stdlib/Init/Lean/Compiler/IR/CompilerM.c b/stage0/stdlib/Init/Lean/Compiler/IR/CompilerM.c index 6a1313cba9..6fc45c1cad 100644 --- a/stage0/stdlib/Init/Lean/Compiler/IR/CompilerM.c +++ b/stage0/stdlib/Init/Lean/Compiler/IR/CompilerM.c @@ -129,7 +129,7 @@ lean_object* l_Lean_IR_getDecl(lean_object*, lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); extern lean_object* l___private_Init_Lean_Environment_5__envExtensionsRef; extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; -lean_object* l_Lean_IR_declMapExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_IR_declMapExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_mkDeclMapExtension___closed__3; size_t l_USize_mul(size_t, size_t); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15___closed__1; @@ -139,7 +139,7 @@ lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension__ lean_object* l_HashMapImp_contains___at_Lean_IR_containsDecl___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_mkDeclMapExtension___closed__5; lean_object* l_Lean_IR_modifyEnv(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_declMapExt___elambda__4(lean_object*); +lean_object* l_Lean_IR_declMapExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_IR_mkDeclMapExtension___lambda__2___boxed(lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_mkDeclMapExtension___spec__5(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); @@ -155,11 +155,11 @@ lean_object* l_Lean_IR_addDecls(lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_mkDeclMapExtension___spec__14(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_tracePrefixOptionName; extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_IR_declMapExt___closed__2; lean_object* l_Lean_IR_Log_format(lean_object*); lean_object* l_Lean_IR_declMapExt___closed__1; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_insert___at___private_Init_Lean_Compiler_IR_CompilerM_4__mkEntryArray___spec__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_logDecls(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); @@ -215,6 +215,7 @@ lean_object* l_Lean_IR_declMapExt; lean_object* lean_usize_to_nat(size_t); lean_object* l___private_Init_Lean_Compiler_IR_CompilerM_3__logMessageIfAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15(lean_object*, lean_object*); +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at_Lean_IR_findEnvDecl___spec__3___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_Lean_IR_tracePrefixOptionName___closed__2; @@ -2213,443 +2214,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_IR_mkDeclMapExtension___spec__14(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_IR_mkDeclMapExtension___spec__14(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__15(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -2657,26 +2662,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_IR_mkDeclMapExtension___spec__12(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__13(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_IR_mkDeclMapExtension___spec__13(x_14, x_2); +return x_15; } } lean_object* l_Lean_IR_mkDeclMapExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -2876,12 +2893,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_IR_declMapExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_IR_declMapExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_IR_declMapExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_IR_declMapExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_IR_declMapExt___closed__1() { @@ -2902,7 +2919,7 @@ lean_object* _init_l_Lean_IR_declMapExt___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_declMapExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_IR_declMapExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -2978,13 +2995,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_IR_declMapExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_IR_declMapExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_IR_declMapExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_IR_declMapExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_IR_findEnvDecl___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { diff --git a/stage0/stdlib/Init/Lean/Compiler/IR/ElimDeadBranches.c b/stage0/stdlib/Init/Lean/Compiler/IR/ElimDeadBranches.c index d8565b5012..0c5d902e93 100644 --- a/stage0/stdlib/Init/Lean/Compiler/IR/ElimDeadBranches.c +++ b/stage0/stdlib/Init/Lean/Compiler/IR/ElimDeadBranches.c @@ -192,7 +192,7 @@ lean_object* l_Lean_IR_UnreachableBranches_projValue___boxed(lean_object*, lean_ size_t lean_usize_of_nat(lean_object*); uint8_t l_Lean_IR_UnreachableBranches_containsCtor(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_land(size_t, size_t); @@ -212,7 +212,6 @@ lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_interpExpr lean_object* l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__17___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__1; lean_object* l_AssocList_replace___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__7(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; @@ -220,6 +219,7 @@ lean_object* l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1; lean_object* l_mkHashMap___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__13(lean_object*); lean_object* l_HashMapImp_moveEntries___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__5(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_elimDeadBranches(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_beq___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_setBody(lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__22___closed__1; @@ -295,7 +295,7 @@ lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__4; lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat; lean_object* l_Array_findIdxAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentArray_get_x21___at_Lean_IR_UnreachableBranches_interpExpr___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(lean_object*, lean_object*); lean_object* l_AssocList_find___main___at_Lean_IR_UnreachableBranches_findVarValue___spec__2___boxed(lean_object*, lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); @@ -304,6 +304,7 @@ lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__4; lean_object* l_Lean_IR_FnBody_body(lean_object*); +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_Lean_IR_UnreachableBranches_Value_truncate___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__12___closed__2; @@ -3225,443 +3226,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__22(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__22(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__21(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__21(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__22(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__22(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -3669,26 +3674,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__19(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__20(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__20(x_14, x_2); +return x_15; } } lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -3895,12 +3912,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__1() { @@ -3959,7 +3976,7 @@ lean_object* _init_l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__ _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -4035,13 +4052,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* l_Lean_IR_UnreachableBranches_addFunctionSummary(lean_object* x_1, lean_object* x_2, lean_object* x_3) { diff --git a/stage0/stdlib/Init/Lean/Compiler/ImplementedByAttr.c b/stage0/stdlib/Init/Lean/Compiler/ImplementedByAttr.c index e7da7530f8..7d48fddc40 100644 --- a/stage0/stdlib/Init/Lean/Compiler/ImplementedByAttr.c +++ b/stage0/stdlib/Init/Lean/Compiler/ImplementedByAttr.c @@ -39,6 +39,7 @@ extern lean_object* l_Lean_Name_inhabited; lean_object* l_Lean_registerParametricAttribute___at_Lean_Compiler_mkImplementedByAttr___spec__1___lambda__1(lean_object*); lean_object* l_Lean_Compiler_implementedByAttr; lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; lean_object* l_Array_binSearchAux___main___at_Lean_Compiler_getImplementedBy___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__7(lean_object*, lean_object*); @@ -646,443 +647,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkImplementedByAttr___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkImplementedByAttr___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1114,134 +1119,136 @@ return x_1; lean_object* l_Lean_registerParametricAttribute___at_Lean_Compiler_mkImplementedByAttr___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerParametricAttribute___rarg___closed__1; -x_8 = l_Lean_registerParametricAttribute___at_Lean_Compiler_mkImplementedByAttr___spec__1___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__2; +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerParametricAttribute___rarg___closed__1; +x_9 = l_Lean_registerParametricAttribute___at_Lean_Compiler_mkImplementedByAttr___spec__1___closed__1; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__2; lean_inc(x_1); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkImplementedByAttr___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -lean_inc(x_1); -x_14 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); -lean_closure_set(x_14, 0, x_1); -lean_closure_set(x_14, 1, x_3); -lean_closure_set(x_14, 2, x_12); -lean_closure_set(x_14, 3, x_4); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__4; -x_18 = l_Lean_AttributeImpl_inhabited___closed__5; -x_19 = 0; -x_20 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_20, 0, x_1); -lean_ctor_set(x_20, 1, x_2); -lean_ctor_set(x_20, 2, x_14); -lean_ctor_set(x_20, 3, x_15); -lean_ctor_set(x_20, 4, x_16); -lean_ctor_set(x_20, 5, x_17); -lean_ctor_set(x_20, 6, x_18); -lean_ctor_set(x_20, 7, x_18); -lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); -lean_inc(x_20); -x_21 = l_Lean_registerAttribute(x_20, x_13); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_21, 0); -lean_dec(x_23); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_20); -lean_ctor_set(x_24, 1, x_12); -lean_ctor_set(x_21, 0, x_24); -return x_21; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_21, 1); -lean_inc(x_25); -lean_dec(x_21); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_20); -lean_ctor_set(x_26, 1, x_12); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_25); -return x_27; -} -} -else -{ -uint8_t x_28; -lean_dec(x_20); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); lean_dec(x_12); -x_28 = !lean_is_exclusive(x_21); -if (x_28 == 0) +lean_inc(x_13); +lean_inc(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); +lean_closure_set(x_15, 0, x_1); +lean_closure_set(x_15, 1, x_3); +lean_closure_set(x_15, 2, x_13); +lean_closure_set(x_15, 3, x_4); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__4; +x_19 = l_Lean_AttributeImpl_inhabited___closed__5; +x_20 = 0; +x_21 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_21, 0, x_1); +lean_ctor_set(x_21, 1, x_2); +lean_ctor_set(x_21, 2, x_15); +lean_ctor_set(x_21, 3, x_16); +lean_ctor_set(x_21, 4, x_17); +lean_ctor_set(x_21, 5, x_18); +lean_ctor_set(x_21, 6, x_19); +lean_ctor_set(x_21, 7, x_19); +lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); +lean_inc(x_21); +x_22 = l_Lean_registerAttribute(x_21, x_14); +if (lean_obj_tag(x_22) == 0) { -return x_21; +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 0); +lean_dec(x_24); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_21); +lean_ctor_set(x_25, 1, x_13); +lean_ctor_set(x_22, 0, x_25); +return x_22; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_21, 0); -x_30 = lean_ctor_get(x_21, 1); -lean_inc(x_30); -lean_inc(x_29); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_22, 1); +lean_inc(x_26); +lean_dec(x_22); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_13); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +return x_28; +} +} +else +{ +uint8_t x_29; lean_dec(x_21); -x_31 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_31, 0, x_29); -lean_ctor_set(x_31, 1, x_30); -return x_31; +lean_dec(x_13); +x_29 = !lean_is_exclusive(x_22); +if (x_29 == 0) +{ +return x_22; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_22, 0); +x_31 = lean_ctor_get(x_22, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_22); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } else { -uint8_t x_32; +uint8_t x_33; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_32 = !lean_is_exclusive(x_11); -if (x_32 == 0) +x_33 = !lean_is_exclusive(x_12); +if (x_33 == 0) { -return x_11; +return x_12; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_11, 0); -x_34 = lean_ctor_get(x_11, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_12, 0); +x_35 = lean_ctor_get(x_12, 1); +lean_inc(x_35); lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_11); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_33); -lean_ctor_set(x_35, 1, x_34); -return x_35; +lean_dec(x_12); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } diff --git a/stage0/stdlib/Init/Lean/Compiler/InitAttr.c b/stage0/stdlib/Init/Lean/Compiler/InitAttr.c index 60da8cd741..696b14f31c 100644 --- a/stage0/stdlib/Init/Lean/Compiler/InitAttr.c +++ b/stage0/stdlib/Init/Lean/Compiler/InitAttr.c @@ -39,6 +39,7 @@ extern lean_object* l_Lean_Name_inhabited; lean_object* l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1___lambda__1(lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_mkInitAttr___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l_Lean_mkInitAttr___closed__5; lean_object* l_Lean_mkInitAttr___lambda__1___closed__8; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; @@ -851,443 +852,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkInitAttr___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkInitAttr___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1319,134 +1324,136 @@ return x_1; lean_object* l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerParametricAttribute___rarg___closed__1; -x_8 = l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1___closed__1; -x_9 = l_Lean_registerParametricAttribute___rarg___closed__2; +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerParametricAttribute___rarg___closed__1; +x_9 = l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1___closed__1; +x_10 = l_Lean_registerParametricAttribute___rarg___closed__2; lean_inc(x_1); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkInitAttr___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -lean_inc(x_1); -x_14 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); -lean_closure_set(x_14, 0, x_1); -lean_closure_set(x_14, 1, x_3); -lean_closure_set(x_14, 2, x_12); -lean_closure_set(x_14, 3, x_4); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__4; -x_18 = l_Lean_AttributeImpl_inhabited___closed__5; -x_19 = 0; -x_20 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_20, 0, x_1); -lean_ctor_set(x_20, 1, x_2); -lean_ctor_set(x_20, 2, x_14); -lean_ctor_set(x_20, 3, x_15); -lean_ctor_set(x_20, 4, x_16); -lean_ctor_set(x_20, 5, x_17); -lean_ctor_set(x_20, 6, x_18); -lean_ctor_set(x_20, 7, x_18); -lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); -lean_inc(x_20); -x_21 = l_Lean_registerAttribute(x_20, x_13); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_21, 0); -lean_dec(x_23); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_20); -lean_ctor_set(x_24, 1, x_12); -lean_ctor_set(x_21, 0, x_24); -return x_21; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_21, 1); -lean_inc(x_25); -lean_dec(x_21); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_20); -lean_ctor_set(x_26, 1, x_12); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_25); -return x_27; -} -} -else -{ -uint8_t x_28; -lean_dec(x_20); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); lean_dec(x_12); -x_28 = !lean_is_exclusive(x_21); -if (x_28 == 0) +lean_inc(x_13); +lean_inc(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_registerParametricAttribute___rarg___lambda__4___boxed), 9, 4); +lean_closure_set(x_15, 0, x_1); +lean_closure_set(x_15, 1, x_3); +lean_closure_set(x_15, 2, x_13); +lean_closure_set(x_15, 3, x_4); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__4; +x_19 = l_Lean_AttributeImpl_inhabited___closed__5; +x_20 = 0; +x_21 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_21, 0, x_1); +lean_ctor_set(x_21, 1, x_2); +lean_ctor_set(x_21, 2, x_15); +lean_ctor_set(x_21, 3, x_16); +lean_ctor_set(x_21, 4, x_17); +lean_ctor_set(x_21, 5, x_18); +lean_ctor_set(x_21, 6, x_19); +lean_ctor_set(x_21, 7, x_19); +lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); +lean_inc(x_21); +x_22 = l_Lean_registerAttribute(x_21, x_14); +if (lean_obj_tag(x_22) == 0) { -return x_21; +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 0); +lean_dec(x_24); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_21); +lean_ctor_set(x_25, 1, x_13); +lean_ctor_set(x_22, 0, x_25); +return x_22; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_21, 0); -x_30 = lean_ctor_get(x_21, 1); -lean_inc(x_30); -lean_inc(x_29); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_22, 1); +lean_inc(x_26); +lean_dec(x_22); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_13); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +return x_28; +} +} +else +{ +uint8_t x_29; lean_dec(x_21); -x_31 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_31, 0, x_29); -lean_ctor_set(x_31, 1, x_30); -return x_31; +lean_dec(x_13); +x_29 = !lean_is_exclusive(x_22); +if (x_29 == 0) +{ +return x_22; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_22, 0); +x_31 = lean_ctor_get(x_22, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_22); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } else { -uint8_t x_32; +uint8_t x_33; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_32 = !lean_is_exclusive(x_11); -if (x_32 == 0) +x_33 = !lean_is_exclusive(x_12); +if (x_33 == 0) { -return x_11; +return x_12; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_11, 0); -x_34 = lean_ctor_get(x_11, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_12, 0); +x_35 = lean_ctor_get(x_12, 1); +lean_inc(x_35); lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_11); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_33); -lean_ctor_set(x_35, 1, x_34); -return x_35; +lean_dec(x_12); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } diff --git a/stage0/stdlib/Init/Lean/Compiler/InlineAttrs.c b/stage0/stdlib/Init/Lean/Compiler/InlineAttrs.c index 48ccb50f28..217c07c4ce 100644 --- a/stage0/stdlib/Init/Lean/Compiler/InlineAttrs.c +++ b/stage0/stdlib/Init/Lean/Compiler/InlineAttrs.c @@ -50,6 +50,7 @@ lean_object* l_Lean_Compiler_mkInlineAttrs___closed__3; lean_object* l_Lean_Compiler_mkInlineAttrs___closed__14; uint8_t lean_has_macro_inline_attribute(lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l_Lean_Compiler_InlineAttributeKind_HasBeq; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; lean_object* l_Lean_Compiler_mkInlineAttrs___closed__7; @@ -803,443 +804,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkInlineAttrs___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkInlineAttrs___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1501,107 +1506,109 @@ return x_1; lean_object* l_Lean_registerEnumAttributes___at_Lean_Compiler_mkInlineAttrs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkInlineAttrs___spec__1___closed__1; -x_8 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkInlineAttrs___spec__1___closed__2; -x_9 = l_Lean_registerEnumAttributes___rarg___closed__1; -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkInlineAttrs___spec__1___closed__1; +x_9 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkInlineAttrs___spec__1___closed__2; +x_10 = l_Lean_registerEnumAttributes___rarg___closed__1; +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkInlineAttrs___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -x_14 = l_List_map___main___at_Lean_Compiler_mkInlineAttrs___spec__8(x_3, x_4, x_12, x_2); +x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); -x_15 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_14, x_13); -if (lean_obj_tag(x_15) == 0) -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_15, 0); -lean_dec(x_17); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_14); -lean_ctor_set(x_18, 1, x_12); -lean_ctor_set(x_15, 0, x_18); -return x_15; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_15, 1); -lean_inc(x_19); -lean_dec(x_15); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_14); -lean_ctor_set(x_20, 1, x_12); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_19); -return x_21; -} -} -else -{ -uint8_t x_22; -lean_dec(x_14); lean_dec(x_12); -x_22 = !lean_is_exclusive(x_15); -if (x_22 == 0) +lean_inc(x_13); +x_15 = l_List_map___main___at_Lean_Compiler_mkInlineAttrs___spec__8(x_3, x_4, x_13, x_2); +lean_inc(x_15); +x_16 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_15, x_14); +if (lean_obj_tag(x_16) == 0) { -return x_15; +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_15); +lean_ctor_set(x_19, 1, x_13); +lean_ctor_set(x_16, 0, x_19); +return x_16; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_15, 0); -x_24 = lean_ctor_get(x_15, 1); -lean_inc(x_24); -lean_inc(x_23); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_16, 1); +lean_inc(x_20); +lean_dec(x_16); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_15); +lean_ctor_set(x_21, 1, x_13); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +return x_22; +} +} +else +{ +uint8_t x_23; lean_dec(x_15); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_23); -lean_ctor_set(x_25, 1, x_24); -return x_25; +lean_dec(x_13); +x_23 = !lean_is_exclusive(x_16); +if (x_23 == 0) +{ +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 0); +x_25 = lean_ctor_get(x_16, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_16); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; } } } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_3); lean_dec(x_2); -x_26 = !lean_is_exclusive(x_11); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_12); +if (x_27 == 0) { -return x_11; +return x_12; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_11, 0); -x_28 = lean_ctor_get(x_11, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_12, 0); +x_29 = lean_ctor_get(x_12, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_11); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; +lean_dec(x_12); +x_30 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_30, 0, x_28); +lean_ctor_set(x_30, 1, x_29); +return x_30; } } } diff --git a/stage0/stdlib/Init/Lean/Compiler/Specialize.c b/stage0/stdlib/Init/Lean/Compiler/Specialize.c index c37894a8a1..f58dd7a202 100644 --- a/stage0/stdlib/Init/Lean/Compiler/Specialize.c +++ b/stage0/stdlib/Init/Lean/Compiler/Specialize.c @@ -31,7 +31,7 @@ lean_object* l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs_ lean_object* lean_nat_div(lean_object*, lean_object*); lean_object* l_Array_binSearchAux___main___at___private_Init_Lean_Compiler_Specialize_1__hasSpecializeAttrAux___main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_getModuleEntries___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_specExtension___elambda__4(lean_object*); +lean_object* l_Lean_Compiler_specExtension___elambda__4(lean_object*, lean_object*); lean_object* l_PersistentHashMap_empty___at_Lean_Compiler_SpecState_Inhabited___spec__2; lean_object* l_Lean_Compiler_mkSpecExtension___closed__2; lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__7(lean_object*, lean_object*); @@ -89,6 +89,7 @@ lean_object* l___private_Init_Lean_Compiler_Specialize_1__hasSpecializeAttrAux__ lean_object* l_Lean_SMap_switch___at_Lean_Compiler_SpecState_switch___spec__2(lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_Compiler_specExtension___elambda__3___boxed(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l_Lean_SMap_find_x3f___at_Lean_Compiler_getCachedSpecialization___spec__1___boxed(lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Compiler_mkSpecializeAttrs___spec__8(lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Compiler_mkSpecializeAttrs___closed__6; @@ -171,13 +172,13 @@ lean_object* lean_cache_specialization(lean_object*, lean_object*, lean_object*) lean_object* l_Array_iterateMAux___main___at_Lean_Compiler_mkSpecExtension___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; lean_object* l_PersistentHashMap_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_SpecState_Inhabited___closed__5; lean_object* l_Array_iterateMAux___main___at_Lean_Compiler_mkSpecExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; extern lean_object* l_Lean_EnumAttributes_Inhabited___closed__1; lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_Compiler_mkSpecializeAttrs___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_SpecState_Inhabited___closed__3; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_mkSpecExtension(lean_object*); lean_object* l_PersistentHashMap_empty___at_Lean_Compiler_SpecState_Inhabited___spec__4; uint8_t lean_expr_eqv(lean_object*, lean_object*); @@ -241,7 +242,7 @@ lean_object* l_Lean_Compiler_SpecState_switch(lean_object*); extern lean_object* l_Lean_Compiler_checkIsDefinition___closed__5; lean_object* l_Lean_Compiler_SpecState_addEntry(lean_object*, lean_object*); lean_object* l_PersistentHashMap_empty___at_Lean_Compiler_SpecState_Inhabited___spec__4___closed__1; -lean_object* l_Lean_Compiler_specExtension___elambda__4___boxed(lean_object*); +lean_object* l_Lean_Compiler_specExtension___elambda__4___boxed(lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_Compiler_SpecState_addEntry___spec__18(lean_object*, lean_object*); lean_object* l_HashMapImp_find_x3f___at_Lean_Compiler_getSpecializationInfo___spec__5(lean_object*, lean_object*); lean_object* l_HashMapImp_moveEntries___main___at_Lean_Compiler_SpecState_addEntry___spec__9(lean_object*, lean_object*, lean_object*); @@ -255,6 +256,7 @@ lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_EnumAttributes_getValue___at___private_Init_Lean_Compiler_Specialize_1__hasSpecializeAttrAux___main___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__4; uint8_t l_AssocList_contains___main___at_Lean_Compiler_SpecState_addEntry___spec__7(lean_object*, lean_object*); @@ -883,443 +885,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkSpecializeAttrs___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkSpecializeAttrs___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1581,107 +1587,109 @@ return x_1; lean_object* l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs___spec__1___closed__1; -x_8 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs___spec__1___closed__2; -x_9 = l_Lean_registerEnumAttributes___rarg___closed__1; -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs___spec__1___closed__1; +x_9 = l_Lean_registerEnumAttributes___at_Lean_Compiler_mkSpecializeAttrs___spec__1___closed__2; +x_10 = l_Lean_registerEnumAttributes___rarg___closed__1; +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkSpecializeAttrs___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -x_14 = l_List_map___main___at_Lean_Compiler_mkSpecializeAttrs___spec__8(x_3, x_4, x_12, x_2); +x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); -x_15 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_14, x_13); -if (lean_obj_tag(x_15) == 0) -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_15, 0); -lean_dec(x_17); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_14); -lean_ctor_set(x_18, 1, x_12); -lean_ctor_set(x_15, 0, x_18); -return x_15; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_15, 1); -lean_inc(x_19); -lean_dec(x_15); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_14); -lean_ctor_set(x_20, 1, x_12); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_19); -return x_21; -} -} -else -{ -uint8_t x_22; -lean_dec(x_14); lean_dec(x_12); -x_22 = !lean_is_exclusive(x_15); -if (x_22 == 0) +lean_inc(x_13); +x_15 = l_List_map___main___at_Lean_Compiler_mkSpecializeAttrs___spec__8(x_3, x_4, x_13, x_2); +lean_inc(x_15); +x_16 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_15, x_14); +if (lean_obj_tag(x_16) == 0) { -return x_15; +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_15); +lean_ctor_set(x_19, 1, x_13); +lean_ctor_set(x_16, 0, x_19); +return x_16; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_15, 0); -x_24 = lean_ctor_get(x_15, 1); -lean_inc(x_24); -lean_inc(x_23); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_16, 1); +lean_inc(x_20); +lean_dec(x_16); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_15); +lean_ctor_set(x_21, 1, x_13); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +return x_22; +} +} +else +{ +uint8_t x_23; lean_dec(x_15); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_23); -lean_ctor_set(x_25, 1, x_24); -return x_25; +lean_dec(x_13); +x_23 = !lean_is_exclusive(x_16); +if (x_23 == 0) +{ +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 0); +x_25 = lean_ctor_get(x_16, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_16); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; } } } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_3); lean_dec(x_2); -x_26 = !lean_is_exclusive(x_11); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_12); +if (x_27 == 0) { -return x_11; +return x_12; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_11, 0); -x_28 = lean_ctor_get(x_11, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_12, 0); +x_29 = lean_ctor_get(x_12, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_11); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; +lean_dec(x_12); +x_30 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_30, 0, x_28); +lean_ctor_set(x_30, 1, x_29); +return x_30; } } } @@ -4775,443 +4783,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkSpecExtension___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Compiler_mkSpecExtension___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -5219,26 +5231,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_Compiler_mkSpecExtension___spec__4(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__5(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Compiler_mkSpecExtension___spec__5(x_14, x_2); +return x_15; } } lean_object* l_Lean_Compiler_mkSpecExtension___lambda__1(lean_object* x_1) { @@ -5378,12 +5402,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_Compiler_specExtension___elambda__4(lean_object* x_1) { +lean_object* l_Lean_Compiler_specExtension___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_specExtension___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_specExtension___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_Compiler_specExtension___closed__1() { @@ -5404,7 +5428,7 @@ lean_object* _init_l_Lean_Compiler_specExtension___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_specExtension___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_specExtension___elambda__4___boxed), 2, 0); return x_1; } } @@ -5480,13 +5504,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Compiler_specExtension___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_Compiler_specExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_Compiler_specExtension___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_Compiler_specExtension___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_add_specialization_info(lean_object* x_1, lean_object* x_2, lean_object* x_3) { diff --git a/stage0/stdlib/Init/Lean/Elab/Alias.c b/stage0/stdlib/Init/Lean/Elab/Alias.c index 2a5a8dce15..c03c35f74f 100644 --- a/stage0/stdlib/Init/Lean/Elab/Alias.c +++ b/stage0/stdlib/Init/Lean/Elab/Alias.c @@ -30,7 +30,7 @@ uint8_t l_List_elem___main___at_Lean_addAliasEntry___spec__18(lean_object*, lean lean_object* l_Lean_aliasExtension___closed__3; size_t l_USize_sub(size_t, size_t); extern lean_object* l_Array_empty___closed__1; -lean_object* l_Lean_aliasExtension___elambda__4___boxed(lean_object*); +lean_object* l_Lean_aliasExtension___elambda__4___boxed(lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* lean_io_ref_get(lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_addAliasEntry___spec__13(lean_object*, lean_object*); @@ -99,15 +99,15 @@ size_t l_USize_land(size_t, size_t); lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; lean_object* l_PersistentHashMap_empty___at_Lean_mkAliasExtension___spec__3; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_aliasExtension___closed__1; lean_object* l_Lean_SMap_find_x3f___at_Lean_addAliasEntry___spec__1___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_aliasExtension___closed__2; uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t l_USize_decLe(size_t, size_t); lean_object* l_Array_iterateMAux___main___at_Lean_addAliasEntry___spec__11(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_aliasExtension___elambda__4(lean_object*); +lean_object* l_Lean_aliasExtension___elambda__4(lean_object*, lean_object*); extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; lean_object* l_Lean_aliasExtension___closed__9; lean_object* l_Lean_SMap_switch___at_Lean_mkAliasExtension___spec__7(lean_object*); @@ -141,6 +141,7 @@ lean_object* l_PersistentHashMap_findAux___main___at_Lean_addAliasEntry___spec__ lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_aliasExtension___closed__6; @@ -1868,443 +1869,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__11(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__11(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkAliasExtension___spec__10(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkAliasExtension___spec__10(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__11(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__11(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -2312,26 +2317,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkAliasExtension___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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__9(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkAliasExtension___spec__9(x_14, x_2); +return x_15; } } lean_object* l_Lean_mkAliasExtension___lambda__1(lean_object* x_1) { @@ -2489,12 +2506,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_aliasExtension___elambda__4(lean_object* x_1) { +lean_object* l_Lean_aliasExtension___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_aliasExtension___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_aliasExtension___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_aliasExtension___closed__1() { @@ -2553,7 +2570,7 @@ lean_object* _init_l_Lean_aliasExtension___closed__5() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_aliasExtension___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_aliasExtension___elambda__4___boxed), 2, 0); return x_1; } } @@ -2629,13 +2646,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_aliasExtension___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_aliasExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_aliasExtension___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_aliasExtension___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* l_Lean_addAlias(lean_object* x_1, lean_object* x_2, lean_object* x_3) { diff --git a/stage0/stdlib/Init/Lean/Elab/Command.c b/stage0/stdlib/Init/Lean/Elab/Command.c index 57d92f449b..55c057cd9f 100644 --- a/stage0/stdlib/Init/Lean/Elab/Command.c +++ b/stage0/stdlib/Init/Lean/Elab/Command.c @@ -20,6 +20,7 @@ lean_object* l_Lean_Elab_Command_elabVariable(lean_object*, lean_object*, lean_o extern lean_object* l_Lean_Name_toString___closed__1; lean_object* l_Lean_Elab_Command_getUniverseNames___rarg(lean_object*); lean_object* l_Lean_Elab_Command_addUniverse___closed__4; +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_registerBuiltinCommandElabAttr___closed__4; lean_object* l_Lean_Elab_Command_elabSection(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNamespace(lean_object*); @@ -41,7 +42,7 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNamespace___closed_ lean_object* l_Lean_Elab_Command_getUniverseNames(lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabInitQuot___closed__3; lean_object* l_Lean_Elab_Command_addUniverse___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNotation(lean_object*); lean_object* l_Lean_Elab_Term_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabReserve(lean_object*); @@ -189,6 +190,7 @@ lean_object* l_Lean_Elab_Command_CommandElabM_monadLog___closed__2; extern lean_object* l_Lean_Elab_Term_elabTerm___closed__6; lean_object* l_EStateM_bind___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNotation___closed__2; +extern lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; lean_object* l_Lean_Elab_Command_elabExport___closed__3; extern lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__4; lean_object* l_Lean_SMap_find_x3f___at_Lean_Elab_Command_elabCommand___spec__5(lean_object*, lean_object*); @@ -218,7 +220,6 @@ lean_object* l_Lean_Elab_Command_elabSection___boxed(lean_object*, lean_object*, lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Elab_Command_elabUniverses___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariables___closed__1; lean_object* l_Lean_Elab_Command_CommandElabM_monadLog___closed__4; -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed(lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); uint8_t l_HashMapImp_contains___at_Lean_Elab_Command_addBuiltinCommandElab___spec__2(lean_object*, lean_object*); extern lean_object* l___private_Init_Lean_Meta_ExprDefEq_17__checkTypesAndAssign___closed__7; @@ -239,6 +240,7 @@ lean_object* l___private_Init_Lean_Elab_Command_1__mkTermContext___boxed(lean_ob size_t l_Lean_Name_hash(lean_object*); extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_Elab_Command_modifyScope___at_Lean_Elab_Command_addOpenDecl___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1; lean_object* l_Lean_Elab_Command_registerBuiltinCommandElabAttr___lambda__1___closed__4; lean_object* l_PersistentHashMap_findAux___main___at_Lean_Elab_Command_elabCommand___spec__7(lean_object*, size_t, lean_object*); lean_object* l_ReaderT_lift___at_Lean_Elab_Command_CommandElabM_monadLog___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*); @@ -265,7 +267,6 @@ lean_object* l_Lean_Elab_Command_elabCheck___lambda__1(lean_object*, lean_object extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__7; lean_object* l_Lean_Elab_Command_elabOpenOnly(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Options_empty; -extern lean_object* l_Lean_Parser_registerParserAttribute___closed__3; extern lean_object* l_Lean_Parser_Command_variable___elambda__1___closed__2; lean_object* l_ReaderT_read___at_Lean_Elab_Command_CommandElabM_monadLog___spec__1(lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabExport___closed__1; @@ -283,6 +284,7 @@ lean_object* l_Lean_Elab_Command_CommandElabM_monadLog___lambda__1___boxed(lean_ extern lean_object* l_List_head_x21___rarg___closed__2; lean_object* l_PersistentHashMap_containsAux___main___at_Lean_Elab_Command_addBuiltinCommandElab___spec__5___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariable___closed__2; +extern lean_object* l_Lean_Parser_registerParserAttribute___closed__5; extern lean_object* l_Lean_Parser_Command_open___elambda__1___closed__2; lean_object* l_Lean_Elab_Command_elabEnd___closed__2; lean_object* l_Lean_Elab_Command_elabCommand(lean_object*, lean_object*, lean_object*); @@ -302,6 +304,7 @@ lean_object* l_Lean_Elab_Command_modifyScope___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabCheck(lean_object*); uint8_t l___private_Init_Lean_Elab_Command_8__checkEndHeader___main(lean_object*, lean_object*); uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Elab_Command_addBuiltinCommandElab___spec__5(lean_object*, size_t, lean_object*); +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); uint8_t l___private_Init_Lean_Elab_Command_8__checkEndHeader(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_declareBuiltinCommandElab___closed__6; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabEnd(lean_object*); @@ -416,7 +419,6 @@ extern lean_object* l_Lean_Parser_Command_export___elambda__1___closed__2; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabEnd___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabSection___closed__3; lean_object* l_Lean_Elab_throwErrorUsingCmdPos___at_Lean_Elab_Command_resolveNamespace___spec__1(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1; lean_object* l_Lean_Elab_Command_getEnv(lean_object*); extern lean_object* l_Lean_TraceState_Inhabited___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabUniverse___closed__1; @@ -478,6 +480,7 @@ lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_addClass___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariable___closed__1; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_HashMapImp_find_x3f___at_Lean_Elab_Command_elabCommand___spec__9(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_commandElabAttribute___closed__1; @@ -497,7 +500,6 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNamespace___closed_ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabSection___closed__1; lean_object* l_Lean_Elab_Command_getOptions___boxed(lean_object*); lean_object* l_HashMapImp_insert___at_Lean_Elab_Command_addBuiltinCommandElab___spec__11(lean_object*, lean_object*, lean_object*); -uint8_t l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_getOptions___rarg(lean_object*); extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; extern lean_object* l_Lean_initAttr; @@ -2111,7 +2113,7 @@ x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_1); x_28 = l_Lean_Elab_Command_addBuiltinCommandElab___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); -x_30 = l_Lean_Parser_registerParserAttribute___closed__3; +x_30 = l_Lean_Parser_registerParserAttribute___closed__5; x_31 = lean_string_append(x_29, x_30); lean_ctor_set_tag(x_6, 1); lean_ctor_set(x_6, 0, x_31); @@ -2214,7 +2216,7 @@ x_51 = l_Lean_Name_toStringWithSep___main(x_50, x_1); x_52 = l_Lean_Elab_Command_addBuiltinCommandElab___closed__1; x_53 = lean_string_append(x_52, x_51); lean_dec(x_51); -x_54 = l_Lean_Parser_registerParserAttribute___closed__3; +x_54 = l_Lean_Parser_registerParserAttribute___closed__5; x_55 = lean_string_append(x_53, x_54); x_56 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_56, 0, x_55); @@ -3221,563 +3223,103 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; -lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) -{ -return x_32; -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -} -else -{ -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -else -{ -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) -{ -return x_16; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); -lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); -lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); -return x_4; -} -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); -lean_inc(x_60); -lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Elab_Command_mkCommandElabAttribute___spec__3(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) -{ -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_65 = lean_ctor_get(x_1, 1); -lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4(x_69, x_61); -if (lean_obj_tag(x_70) == 0) -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); -lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) -{ -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) -{ -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; -lean_dec(x_79); -lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; -} else { - lean_dec_ref(x_81); - x_96 = lean_box(0); -} -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); -} else { - x_97 = x_96; -} -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; -} -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; -} else { - lean_dec_ref(x_78); - x_100 = lean_box(0); -} -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); -} else { - x_101 = x_100; -} -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; -} -} -else -{ -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); -lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; -} -} -} -else -{ -uint8_t x_114; -lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) -{ -return x_4; -} -else -{ -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); -lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; -} -} -} -} -lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___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; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_5 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 3, 1); -lean_closure_set(x_5, 0, x_3); -lean_inc(x_2); -x_6 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed), 2, 1); -lean_closure_set(x_6, 0, x_2); -x_7 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1; -x_8 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -lean_inc(x_1); -x_9 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set(x_9, 1, x_5); -lean_ctor_set(x_9, 2, x_7); -lean_ctor_set(x_9, 3, x_8); -lean_ctor_set(x_9, 4, x_6); -x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__2(x_9, x_4); -if (lean_obj_tag(x_10) == 0) -{ -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; -x_12 = lean_ctor_get(x_10, 0); -x_13 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; -lean_inc(x_2); -x_14 = lean_string_append(x_2, x_13); -lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__1; -x_18 = l_Lean_AttributeImpl_inhabited___closed__4; -x_19 = l_Lean_AttributeImpl_inhabited___closed__5; -x_20 = 0; -x_21 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_21, 0, x_1); -lean_ctor_set(x_21, 1, x_14); -lean_ctor_set(x_21, 2, x_17); -lean_ctor_set(x_21, 3, x_15); -lean_ctor_set(x_21, 4, x_16); -lean_ctor_set(x_21, 5, x_18); -lean_ctor_set(x_21, 6, x_19); -lean_ctor_set(x_21, 7, x_19); -lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); -x_22 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_12); -lean_ctor_set(x_22, 2, x_2); -lean_ctor_set(x_10, 0, x_22); -return x_10; -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_23 = lean_ctor_get(x_10, 0); -x_24 = lean_ctor_get(x_10, 1); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_10); -x_25 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; -lean_inc(x_2); -x_26 = lean_string_append(x_2, x_25); -lean_inc(x_1); -x_27 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_27, 0, x_1); -lean_inc(x_1); -x_28 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_28, 0, x_1); -x_29 = l_Lean_AttributeImpl_inhabited___closed__1; -x_30 = l_Lean_AttributeImpl_inhabited___closed__4; -x_31 = l_Lean_AttributeImpl_inhabited___closed__5; -x_32 = 0; -x_33 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_33, 0, x_1); -lean_ctor_set(x_33, 1, x_26); -lean_ctor_set(x_33, 2, x_29); -lean_ctor_set(x_33, 3, x_27); -lean_ctor_set(x_33, 4, x_28); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set(x_33, 7, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*8, x_32); -x_34 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_23); -lean_ctor_set(x_34, 2, x_2); +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; +} +else +{ +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_34); -lean_ctor_set(x_35, 1, x_24); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); return x_35; } } else { uint8_t x_36; -lean_dec(x_2); -lean_dec(x_1); -x_36 = !lean_is_exclusive(x_10); +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); if (x_36 == 0) { -return x_10; +return x_31; } else { lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_10, 0); -x_38 = lean_ctor_get(x_10, 1); +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); lean_inc(x_37); -lean_dec(x_10); +lean_dec(x_31); x_39 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_39, 0, x_37); lean_ctor_set(x_39, 1, x_38); @@ -3785,6 +3327,482 @@ return x_39; } } } +else +{ +uint8_t x_40; +lean_dec(x_24); +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; +} +} +} +else +{ +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) +{ +return x_23; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; +} +} +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); +lean_ctor_set_tag(x_4, 1); +lean_ctor_set(x_4, 0, x_58); +return x_4; +} +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_4); +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Elab_Command_mkCommandElabAttribute___spec__3(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_1, 1); +lean_inc(x_65); +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4(x_71, x_60); +if (lean_obj_tag(x_72) == 0) +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); +lean_inc(x_73); +x_74 = lean_ctor_get(x_72, 1); +lean_inc(x_74); +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) +{ +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); +lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; +lean_dec(x_77); +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; +} else { + lean_dec_ref(x_79); + x_94 = lean_box(0); +} +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); +} else { + x_95 = x_94; +} +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; +} +} +else +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; +} else { + lean_dec_ref(x_76); + x_98 = lean_box(0); +} +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); +} else { + x_99 = x_98; +} +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; +} +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); +lean_dec(x_1); +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; +} +} +} +else +{ +uint8_t x_112; +lean_dec(x_1); +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) +{ +return x_4; +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_4); +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; +} +} +} +} +lean_object* _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4___closed__1; +x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___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; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_5 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 4, 1); +lean_closure_set(x_5, 0, x_3); +lean_inc(x_2); +x_6 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1___boxed), 2, 1); +lean_closure_set(x_6, 0, x_2); +x_7 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1; +x_8 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; +x_9 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; +lean_inc(x_1); +x_10 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_10, 0, x_1); +lean_ctor_set(x_10, 1, x_7); +lean_ctor_set(x_10, 2, x_5); +lean_ctor_set(x_10, 3, x_8); +lean_ctor_set(x_10, 4, x_9); +lean_ctor_set(x_10, 5, x_6); +x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__2(x_10, x_4); +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(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; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; +x_13 = lean_ctor_get(x_11, 0); +x_14 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_inc(x_2); +x_15 = lean_string_append(x_2, x_14); +lean_inc(x_1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_16, 0, x_1); +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__1; +x_19 = l_Lean_AttributeImpl_inhabited___closed__4; +x_20 = l_Lean_AttributeImpl_inhabited___closed__5; +x_21 = 0; +x_22 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_22, 0, x_1); +lean_ctor_set(x_22, 1, x_15); +lean_ctor_set(x_22, 2, x_18); +lean_ctor_set(x_22, 3, x_16); +lean_ctor_set(x_22, 4, x_17); +lean_ctor_set(x_22, 5, x_19); +lean_ctor_set(x_22, 6, x_20); +lean_ctor_set(x_22, 7, x_20); +lean_ctor_set_uint8(x_22, sizeof(void*)*8, x_21); +x_23 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_13); +lean_ctor_set(x_23, 2, x_2); +lean_ctor_set(x_11, 0, x_23); +return x_11; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_24 = lean_ctor_get(x_11, 0); +x_25 = lean_ctor_get(x_11, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_11); +x_26 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_inc(x_2); +x_27 = lean_string_append(x_2, x_26); +lean_inc(x_1); +x_28 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_28, 0, x_1); +lean_inc(x_1); +x_29 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_29, 0, x_1); +x_30 = l_Lean_AttributeImpl_inhabited___closed__1; +x_31 = l_Lean_AttributeImpl_inhabited___closed__4; +x_32 = l_Lean_AttributeImpl_inhabited___closed__5; +x_33 = 0; +x_34 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_34, 0, x_1); +lean_ctor_set(x_34, 1, x_27); +lean_ctor_set(x_34, 2, x_30); +lean_ctor_set(x_34, 3, x_28); +lean_ctor_set(x_34, 4, x_29); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set(x_34, 7, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*8, x_33); +x_35 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_35, 0, x_34); +lean_ctor_set(x_35, 1, x_24); +lean_ctor_set(x_35, 2, x_2); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_25); +return x_36; +} +} +else +{ +uint8_t x_37; +lean_dec(x_2); +lean_dec(x_1); +x_37 = !lean_is_exclusive(x_11); +if (x_37 == 0) +{ +return x_11; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_11, 0); +x_39 = lean_ctor_get(x_11, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_11); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; +} +} +} } lean_object* _init_l_Lean_Elab_Command_mkCommandElabAttribute___closed__1() { _start: @@ -3849,7 +3867,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_obj x_1 = l_Lean_Elab_Command_commandElabAttribute___closed__1; x_2 = lean_box(0); x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; -x_4 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1; +x_4 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; x_5 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; x_6 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; x_7 = lean_alloc_ctor(0, 6, 0); @@ -6600,7 +6618,7 @@ lean_inc(x_6); x_7 = lean_ctor_get(x_5, 1); lean_inc(x_7); lean_dec(x_5); -x_8 = l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(x_4, x_6); +x_8 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_4, x_6); lean_dec(x_6); if (x_8 == 0) { @@ -10007,6 +10025,8 @@ l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute_ lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4___closed__1); l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4___closed__2 = _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4___closed__2(); lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Command_mkCommandElabAttribute___spec__4___closed__2); +l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1 = _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1(); +lean_mark_persistent(l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Command_mkCommandElabAttribute___spec__1___closed__1); l_Lean_Elab_Command_mkCommandElabAttribute___closed__1 = _init_l_Lean_Elab_Command_mkCommandElabAttribute___closed__1(); lean_mark_persistent(l_Lean_Elab_Command_mkCommandElabAttribute___closed__1); l_Lean_Elab_Command_mkCommandElabAttribute___closed__2 = _init_l_Lean_Elab_Command_mkCommandElabAttribute___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Elab/ElabStrategyAttrs.c b/stage0/stdlib/Init/Lean/Elab/ElabStrategyAttrs.c index 00ce1e11c7..2fc1806dab 100644 --- a/stage0/stdlib/Init/Lean/Elab/ElabStrategyAttrs.c +++ b/stage0/stdlib/Init/Lean/Elab/ElabStrategyAttrs.c @@ -45,6 +45,7 @@ lean_object* l_RBNode_find___main___at_Lean_getElaboratorStrategy___spec__2___bo lean_object* l_Lean_elaboratorStrategyAttrs; lean_object* l_Lean_mkElaboratorStrategyAttrs___closed__21; lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; lean_object* l_List_map___main___at_Lean_mkElaboratorStrategyAttrs___spec__8___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__3; @@ -671,443 +672,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkElaboratorStrategyAttrs___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkElaboratorStrategyAttrs___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1369,107 +1374,109 @@ return x_1; lean_object* l_Lean_registerEnumAttributes___at_Lean_mkElaboratorStrategyAttrs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerEnumAttributes___at_Lean_mkElaboratorStrategyAttrs___spec__1___closed__1; -x_8 = l_Lean_registerEnumAttributes___at_Lean_mkElaboratorStrategyAttrs___spec__1___closed__2; -x_9 = l_Lean_registerEnumAttributes___rarg___closed__1; -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerEnumAttributes___at_Lean_mkElaboratorStrategyAttrs___spec__1___closed__1; +x_9 = l_Lean_registerEnumAttributes___at_Lean_mkElaboratorStrategyAttrs___spec__1___closed__2; +x_10 = l_Lean_registerEnumAttributes___rarg___closed__1; +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkElaboratorStrategyAttrs___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -x_14 = l_List_map___main___at_Lean_mkElaboratorStrategyAttrs___spec__8(x_3, x_4, x_12, x_2); +x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); -x_15 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_14, x_13); -if (lean_obj_tag(x_15) == 0) -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_15, 0); -lean_dec(x_17); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_14); -lean_ctor_set(x_18, 1, x_12); -lean_ctor_set(x_15, 0, x_18); -return x_15; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_15, 1); -lean_inc(x_19); -lean_dec(x_15); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_14); -lean_ctor_set(x_20, 1, x_12); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_19); -return x_21; -} -} -else -{ -uint8_t x_22; -lean_dec(x_14); lean_dec(x_12); -x_22 = !lean_is_exclusive(x_15); -if (x_22 == 0) +lean_inc(x_13); +x_15 = l_List_map___main___at_Lean_mkElaboratorStrategyAttrs___spec__8(x_3, x_4, x_13, x_2); +lean_inc(x_15); +x_16 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_15, x_14); +if (lean_obj_tag(x_16) == 0) { -return x_15; +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_15); +lean_ctor_set(x_19, 1, x_13); +lean_ctor_set(x_16, 0, x_19); +return x_16; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_15, 0); -x_24 = lean_ctor_get(x_15, 1); -lean_inc(x_24); -lean_inc(x_23); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_16, 1); +lean_inc(x_20); +lean_dec(x_16); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_15); +lean_ctor_set(x_21, 1, x_13); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +return x_22; +} +} +else +{ +uint8_t x_23; lean_dec(x_15); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_23); -lean_ctor_set(x_25, 1, x_24); -return x_25; +lean_dec(x_13); +x_23 = !lean_is_exclusive(x_16); +if (x_23 == 0) +{ +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 0); +x_25 = lean_ctor_get(x_16, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_16); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; } } } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_3); lean_dec(x_2); -x_26 = !lean_is_exclusive(x_11); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_12); +if (x_27 == 0) { -return x_11; +return x_12; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_11, 0); -x_28 = lean_ctor_get(x_11, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_12, 0); +x_29 = lean_ctor_get(x_12, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_11); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; +lean_dec(x_12); +x_30 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_30, 0, x_28); +lean_ctor_set(x_30, 1, x_29); +return x_30; } } } diff --git a/stage0/stdlib/Init/Lean/Elab/Level.c b/stage0/stdlib/Init/Lean/Elab/Level.c index a9d251f198..7ac188cbd5 100644 --- a/stage0/stdlib/Init/Lean/Elab/Level.c +++ b/stage0/stdlib/Init/Lean/Elab/Level.c @@ -67,6 +67,7 @@ lean_object* l_Lean_Elab_Level_mkFreshId___rarg(lean_object*); lean_object* l_Lean_Elab_Level_elabLevel___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__1; +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_mkLevelMVar(lean_object*); lean_object* l_Lean_Elab_Level_LevelElabM_MonadLog; extern lean_object* l_Lean_Parser_Level_hole___elambda__1___closed__2; @@ -89,7 +90,6 @@ lean_object* l_Lean_mkLevelParam(lean_object*); lean_object* l___private_Init_Data_Array_Basic_4__foldrRangeMAux___main___at_Lean_Elab_Level_elabLevel___main___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Level_LevelElabM_MonadLog___lambda__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_throwError___at_Lean_Elab_Level_elabLevel___main___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__4; lean_object* lean_name_mk_numeral(lean_object*, lean_object*); lean_object* l_Lean_Elab_Level_elabLevel___main___closed__4; @@ -1122,7 +1122,7 @@ lean_dec(x_4); x_50 = lean_unsigned_to_nat(0u); x_51 = l_Lean_Syntax_getIdAt(x_1, x_50); x_52 = lean_ctor_get(x_2, 3); -x_53 = l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(x_51, x_52); +x_53 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_51, x_52); if (x_53 == 0) { lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; diff --git a/stage0/stdlib/Init/Lean/Elab/Term.c b/stage0/stdlib/Init/Lean/Elab/Term.c index eb8d9b5f1f..db790e56f5 100644 --- a/stage0/stdlib/Init/Lean/Elab/Term.c +++ b/stage0/stdlib/Init/Lean/Elab/Term.c @@ -23,6 +23,7 @@ lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabNum___closed__1; lean_object* l_Lean_Elab_Term_getEnv___rarg(lean_object*); extern lean_object* l_Lean_Name_toString___closed__1; lean_object* l___private_Init_Lean_Elab_Term_6__expandCDotInApp(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1___boxed(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Term_20__resolveLocalName___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_mkForall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_synthesizeInstMVarCore___closed__1; @@ -37,6 +38,7 @@ lean_object* l___private_Init_Lean_Elab_Term_21__mkFreshLevelMVars___boxed(lean_ lean_object* l_Lean_SMap_empty___at_Lean_Elab_Term_mkBuiltinTermElabTable___spec__1___closed__2; lean_object* l_Lean_Expr_mvarId_x21(lean_object*); lean_object* l_Lean_Elab_Term_elabArrayLit___closed__8; +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); lean_object* l_Lean_Syntax_isNatLitAux(lean_object*, lean_object*); lean_object* l_PersistentArray_foldlMAux___main___at___private_Init_Lean_Elab_Term_3__fromMetaState___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); @@ -45,7 +47,7 @@ extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__8; lean_object* l_Lean_Elab_Term_State_inhabited; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_mkSort(lean_object*); -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Term_17__mkPairsAux___main___closed__8; lean_object* l_Lean_Elab_Term_synthesizeInstMVarCore___closed__9; @@ -291,6 +293,7 @@ lean_object* l_Lean_Elab_Term_decLevel_x3f(lean_object*, lean_object*, lean_obje extern lean_object* l_Lean_numLitKind; lean_object* l_Lean_Elab_Term_elabTerm___closed__6; lean_object* l_EStateM_bind___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; lean_object* l___private_Init_Lean_Elab_Term_5__expandCDot(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_mkLambda___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getLevel(lean_object*, lean_object*, lean_object*, lean_object*); @@ -330,7 +333,6 @@ lean_object* l_Lean_Elab_Term_TermElabM_inhabited(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_TermElabM_MonadLog___lambda__3___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_mkInstMVar(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_declareBuiltinTermElab___closed__6; -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed(lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getMVarDecl___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_setTraceState___boxed(lean_object*, lean_object*, lean_object*); @@ -386,6 +388,7 @@ lean_object* l_Lean_Elab_log___at_Lean_Elab_Term_logTrace___spec__1___boxed(lean lean_object* l_Lean_Elab_Term_mkExplicitBinder___closed__5; extern lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__2; lean_object* l_Lean_Elab_Term_elabTypeStx___rarg___closed__1; +extern lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2___closed__1; extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; extern lean_object* l_PersistentArray_empty___closed__3; lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Elab_Term_elabTerm___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -409,7 +412,6 @@ lean_object* l_Lean_Elab_Term_mkAppM___boxed(lean_object*, lean_object*, lean_ob lean_object* l_Lean_Elab_Term_getCurrMacroScope___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__1; extern lean_object* l_Lean_Options_empty; -extern lean_object* l_Lean_Parser_registerParserAttribute___closed__3; lean_object* l_Lean_Elab_Term_mkConst___closed__7; lean_object* l___private_Init_Lean_Elab_Term_17__mkPairsAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabTypeStx___closed__3; @@ -427,6 +429,7 @@ lean_object* l_Lean_Elab_Term_liftLevelM(lean_object*); lean_object* l_Lean_Elab_Term_elabProp(lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_expand___at_Lean_Elab_Term_addBuiltinTermElab___spec__13(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_resolveName___closed__8; +extern lean_object* l_Lean_Parser_registerParserAttribute___closed__5; lean_object* l_Lean_LocalDecl_toExpr(lean_object*); lean_object* l_Lean_Elab_Term_ensureHasType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrayLit___closed__3; @@ -728,6 +731,7 @@ uint8_t l_Array_isEqvAux___main___at_Lean_Elab_Term_withMVarContext___spec__1(le lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabBadCDot___closed__2; extern lean_object* l_Lean_levelOne; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); extern lean_object* l_HashMap_Inhabited___closed__1; lean_object* l_Lean_Message_toString(lean_object*); lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*); @@ -2945,7 +2949,7 @@ x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_1); x_28 = l_Lean_Elab_Term_addBuiltinTermElab___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); -x_30 = l_Lean_Parser_registerParserAttribute___closed__3; +x_30 = l_Lean_Parser_registerParserAttribute___closed__5; x_31 = lean_string_append(x_29, x_30); lean_ctor_set_tag(x_6, 1); lean_ctor_set(x_6, 0, x_31); @@ -3048,7 +3052,7 @@ x_51 = l_Lean_Name_toStringWithSep___main(x_50, x_1); x_52 = l_Lean_Elab_Term_addBuiltinTermElab___closed__1; x_53 = lean_string_append(x_52, x_51); lean_dec(x_51); -x_54 = l_Lean_Parser_registerParserAttribute___closed__3; +x_54 = l_Lean_Parser_registerParserAttribute___closed__5; x_55 = lean_string_append(x_53, x_54); x_56 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_56, 0, x_55); @@ -4076,450 +4080,475 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Elab_Term_mkTermElabAttribute___spec__3(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Elab_Term_mkTermElabAttribute___spec__3(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } } +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = l_Lean_Elab_mkElabAttribute___rarg___lambda__2___closed__1; +x_4 = lean_string_append(x_1, x_3); +x_5 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_5, 0, x_4); +return x_5; +} +} lean_object* _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1() { _start: { +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4___closed__1; +x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2() { +_start: +{ lean_object* x_1; x_1 = lean_alloc_closure((void*)(l_fix1___rarg___lambda__1___boxed), 2, 0); return x_1; @@ -4528,123 +4557,125 @@ return x_1; lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___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; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_5 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 3, 1); +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_5 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 4, 1); lean_closure_set(x_5, 0, x_3); lean_inc(x_2); -x_6 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed), 2, 1); +x_6 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1___boxed), 2, 1); lean_closure_set(x_6, 0, x_2); x_7 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1; -x_8 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; +x_8 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; +x_9 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; lean_inc(x_1); -x_9 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set(x_9, 1, x_5); -lean_ctor_set(x_9, 2, x_7); -lean_ctor_set(x_9, 3, x_8); -lean_ctor_set(x_9, 4, x_6); -x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__2(x_9, x_4); -if (lean_obj_tag(x_10) == 0) +x_10 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_10, 0, x_1); +lean_ctor_set(x_10, 1, x_7); +lean_ctor_set(x_10, 2, x_5); +lean_ctor_set(x_10, 3, x_8); +lean_ctor_set(x_10, 4, x_9); +lean_ctor_set(x_10, 5, x_6); +x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__2(x_10, x_4); +if (lean_obj_tag(x_11) == 0) { -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) +uint8_t x_12; +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; -x_12 = lean_ctor_get(x_10, 0); -x_13 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; +x_13 = lean_ctor_get(x_11, 0); +x_14 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; lean_inc(x_2); -x_14 = lean_string_append(x_2, x_13); +x_15 = lean_string_append(x_2, x_14); lean_inc(x_1); -x_15 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_15, 0, x_1); -lean_inc(x_1); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); lean_closure_set(x_16, 0, x_1); -x_17 = l_Lean_AttributeImpl_inhabited___closed__1; -x_18 = l_Lean_AttributeImpl_inhabited___closed__4; -x_19 = l_Lean_AttributeImpl_inhabited___closed__5; -x_20 = 0; -x_21 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_21, 0, x_1); -lean_ctor_set(x_21, 1, x_14); -lean_ctor_set(x_21, 2, x_17); -lean_ctor_set(x_21, 3, x_15); -lean_ctor_set(x_21, 4, x_16); -lean_ctor_set(x_21, 5, x_18); -lean_ctor_set(x_21, 6, x_19); -lean_ctor_set(x_21, 7, x_19); -lean_ctor_set_uint8(x_21, sizeof(void*)*8, x_20); -x_22 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_12); -lean_ctor_set(x_22, 2, x_2); -lean_ctor_set(x_10, 0, x_22); -return x_10; +lean_inc(x_1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_17, 0, x_1); +x_18 = l_Lean_AttributeImpl_inhabited___closed__1; +x_19 = l_Lean_AttributeImpl_inhabited___closed__4; +x_20 = l_Lean_AttributeImpl_inhabited___closed__5; +x_21 = 0; +x_22 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_22, 0, x_1); +lean_ctor_set(x_22, 1, x_15); +lean_ctor_set(x_22, 2, x_18); +lean_ctor_set(x_22, 3, x_16); +lean_ctor_set(x_22, 4, x_17); +lean_ctor_set(x_22, 5, x_19); +lean_ctor_set(x_22, 6, x_20); +lean_ctor_set(x_22, 7, x_20); +lean_ctor_set_uint8(x_22, sizeof(void*)*8, x_21); +x_23 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_13); +lean_ctor_set(x_23, 2, x_2); +lean_ctor_set(x_11, 0, x_23); +return x_11; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_23 = lean_ctor_get(x_10, 0); -x_24 = lean_ctor_get(x_10, 1); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_24 = lean_ctor_get(x_11, 0); +x_25 = lean_ctor_get(x_11, 1); +lean_inc(x_25); lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_10); -x_25 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_dec(x_11); +x_26 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; lean_inc(x_2); -x_26 = lean_string_append(x_2, x_25); +x_27 = lean_string_append(x_2, x_26); lean_inc(x_1); -x_27 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_27, 0, x_1); -lean_inc(x_1); -x_28 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +x_28 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); lean_closure_set(x_28, 0, x_1); -x_29 = l_Lean_AttributeImpl_inhabited___closed__1; -x_30 = l_Lean_AttributeImpl_inhabited___closed__4; -x_31 = l_Lean_AttributeImpl_inhabited___closed__5; -x_32 = 0; -x_33 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_33, 0, x_1); -lean_ctor_set(x_33, 1, x_26); -lean_ctor_set(x_33, 2, x_29); -lean_ctor_set(x_33, 3, x_27); -lean_ctor_set(x_33, 4, x_28); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set(x_33, 7, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*8, x_32); -x_34 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_23); -lean_ctor_set(x_34, 2, x_2); -x_35 = lean_alloc_ctor(0, 2, 0); +lean_inc(x_1); +x_29 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_29, 0, x_1); +x_30 = l_Lean_AttributeImpl_inhabited___closed__1; +x_31 = l_Lean_AttributeImpl_inhabited___closed__4; +x_32 = l_Lean_AttributeImpl_inhabited___closed__5; +x_33 = 0; +x_34 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_34, 0, x_1); +lean_ctor_set(x_34, 1, x_27); +lean_ctor_set(x_34, 2, x_30); +lean_ctor_set(x_34, 3, x_28); +lean_ctor_set(x_34, 4, x_29); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set(x_34, 7, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*8, x_33); +x_35 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_35, 0, x_34); lean_ctor_set(x_35, 1, x_24); -return x_35; +lean_ctor_set(x_35, 2, x_2); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_25); +return x_36; } } else { -uint8_t x_36; +uint8_t x_37; lean_dec(x_2); lean_dec(x_1); -x_36 = !lean_is_exclusive(x_10); -if (x_36 == 0) +x_37 = !lean_is_exclusive(x_11); +if (x_37 == 0) { -return x_10; +return x_11; } else { -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_10, 0); -x_38 = lean_ctor_get(x_10, 1); +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_11, 0); +x_39 = lean_ctor_get(x_11, 1); +lean_inc(x_39); lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_10); -x_39 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_39, 0, x_37); -lean_ctor_set(x_39, 1, x_38); -return x_39; +lean_dec(x_11); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; } } } @@ -4691,6 +4722,15 @@ x_7 = lean_box(x_6); return x_7; } } +lean_object* l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___lambda__1(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} lean_object* _init_l_Lean_Elab_Term_termElabAttribute___closed__1() { _start: { @@ -4712,7 +4752,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_obj x_1 = l_Lean_Elab_Term_termElabAttribute___closed__1; x_2 = lean_box(0); x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; -x_4 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1; +x_4 = l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2; x_5 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; x_6 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; x_7 = lean_alloc_ctor(0, 6, 0); @@ -22250,6 +22290,8 @@ l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Elab_Term_mkTermElabAttribute___spec__4___closed__2); l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1 = _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1(); lean_mark_persistent(l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__1); +l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2 = _init_l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2(); +lean_mark_persistent(l_Lean_Elab_mkElabAttribute___at_Lean_Elab_Term_mkTermElabAttribute___spec__1___closed__2); l_Lean_Elab_Term_mkTermElabAttribute___closed__1 = _init_l_Lean_Elab_Term_mkTermElabAttribute___closed__1(); lean_mark_persistent(l_Lean_Elab_Term_mkTermElabAttribute___closed__1); l_Lean_Elab_Term_mkTermElabAttribute___closed__2 = _init_l_Lean_Elab_Term_mkTermElabAttribute___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Elab/Util.c b/stage0/stdlib/Init/Lean/Elab/Util.c index 124d9bf803..afa9762663 100644 --- a/stage0/stdlib/Init/Lean/Elab/Util.c +++ b/stage0/stdlib/Init/Lean/Elab/Util.c @@ -13,9 +13,10 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_fmt___at_Lean_Elab_mkElabAttribute___spec__1(lean_object*); extern lean_object* l_Lean_Name_toString___closed__1; lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Array_empty___closed__1; lean_object* lean_io_ref_get(lean_object*, lean_object*); lean_object* lean_get_namespaces(lean_object*); @@ -38,7 +39,7 @@ extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2___closed__1; -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_attrParamSyntaxToIdentifier(lean_object*); lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; @@ -59,6 +60,7 @@ lean_object* l_Lean_Elab_checkSyntaxNodeKind(lean_object*, lean_object*); lean_object* l_Lean_Elab_checkSyntaxNodeKindAtNamespaces___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Util_1__regTraceClasses___closed__3; extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; lean_object* l_Lean_Elab_syntaxNodeKindOfAttrParam(lean_object*, lean_object*, lean_object*, lean_object*); @@ -392,53 +394,62 @@ x_2 = lean_alloc_closure((void*)(l_Lean_Elab_ElabAttribute_inhabited___rarg), 1, return x_2; } } -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_fmt___at_Lean_Elab_mkElabAttribute___spec__1(lean_object* x_1) { _start: { -lean_object* x_4; -x_4 = lean_io_ref_get(x_1, x_3); -if (lean_obj_tag(x_4) == 0) +lean_object* x_2; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: { -uint8_t x_5; -x_5 = !lean_is_exclusive(x_4); -if (x_5 == 0) +lean_object* x_5; +x_5 = lean_io_ref_get(x_1, x_4); +if (lean_obj_tag(x_5) == 0) { -return x_4; +uint8_t x_6; +x_6 = !lean_is_exclusive(x_5); +if (x_6 == 0) +{ +return x_5; } else { -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_4, 0); -x_7 = lean_ctor_get(x_4, 1); +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_ctor_get(x_5, 0); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -lean_dec(x_4); -x_8 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_8, 0, x_6); -lean_ctor_set(x_8, 1, x_7); -return x_8; +lean_dec(x_5); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_7); +lean_ctor_set(x_9, 1, x_8); +return x_9; } } else { -uint8_t x_9; -x_9 = !lean_is_exclusive(x_4); -if (x_9 == 0) +uint8_t x_10; +x_10 = !lean_is_exclusive(x_5); +if (x_10 == 0) { -return x_4; +return x_5; } else { -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_ctor_get(x_4, 0); -x_11 = lean_ctor_get(x_4, 1); +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_5, 0); +x_12 = lean_ctor_get(x_5, 1); +lean_inc(x_12); lean_inc(x_11); -lean_inc(x_10); -lean_dec(x_4); -x_12 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_12, 0, x_10); -lean_ctor_set(x_12, 1, x_11); -return x_12; +lean_dec(x_5); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_11); +lean_ctor_set(x_13, 1, x_12); +return x_13; } } } @@ -473,123 +484,127 @@ return x_1; lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_6 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 3, 1); -lean_closure_set(x_6, 0, x_4); +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_6, 0, x_1); +x_7 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed), 4, 1); +lean_closure_set(x_7, 0, x_4); lean_inc(x_3); -x_7 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed), 2, 1); -lean_closure_set(x_7, 0, x_3); -x_8 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -x_9 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; +x_8 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed), 2, 1); +lean_closure_set(x_8, 0, x_3); +x_9 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; +x_10 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; lean_inc(x_2); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_2); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_8); -lean_ctor_set(x_10, 3, x_9); -lean_ctor_set(x_10, 4, x_7); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg(x_1, x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_2); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_9); +lean_ctor_set(x_11, 4, x_10); +lean_ctor_set(x_11, 5, x_8); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg(x_1, x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -uint8_t x_12; -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; -x_13 = lean_ctor_get(x_11, 0); -x_14 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; +x_14 = lean_ctor_get(x_12, 0); +x_15 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; lean_inc(x_3); -x_15 = lean_string_append(x_3, x_14); +x_16 = lean_string_append(x_3, x_15); lean_inc(x_2); -x_16 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_16, 0, x_2); -lean_inc(x_2); -x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +x_17 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); lean_closure_set(x_17, 0, x_2); -x_18 = l_Lean_AttributeImpl_inhabited___closed__1; -x_19 = l_Lean_AttributeImpl_inhabited___closed__4; -x_20 = l_Lean_AttributeImpl_inhabited___closed__5; -x_21 = 0; -x_22 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_22, 0, x_2); -lean_ctor_set(x_22, 1, x_15); -lean_ctor_set(x_22, 2, x_18); -lean_ctor_set(x_22, 3, x_16); -lean_ctor_set(x_22, 4, x_17); -lean_ctor_set(x_22, 5, x_19); -lean_ctor_set(x_22, 6, x_20); -lean_ctor_set(x_22, 7, x_20); -lean_ctor_set_uint8(x_22, sizeof(void*)*8, x_21); -x_23 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_13); -lean_ctor_set(x_23, 2, x_3); -lean_ctor_set(x_11, 0, x_23); -return x_11; +lean_inc(x_2); +x_18 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_18, 0, x_2); +x_19 = l_Lean_AttributeImpl_inhabited___closed__1; +x_20 = l_Lean_AttributeImpl_inhabited___closed__4; +x_21 = l_Lean_AttributeImpl_inhabited___closed__5; +x_22 = 0; +x_23 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_23, 0, x_2); +lean_ctor_set(x_23, 1, x_16); +lean_ctor_set(x_23, 2, x_19); +lean_ctor_set(x_23, 3, x_17); +lean_ctor_set(x_23, 4, x_18); +lean_ctor_set(x_23, 5, x_20); +lean_ctor_set(x_23, 6, x_21); +lean_ctor_set(x_23, 7, x_21); +lean_ctor_set_uint8(x_23, sizeof(void*)*8, x_22); +x_24 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_14); +lean_ctor_set(x_24, 2, x_3); +lean_ctor_set(x_12, 0, x_24); +return x_12; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_24 = lean_ctor_get(x_11, 0); -x_25 = lean_ctor_get(x_11, 1); +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_25 = lean_ctor_get(x_12, 0); +x_26 = lean_ctor_get(x_12, 1); +lean_inc(x_26); lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_11); -x_26 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; +lean_dec(x_12); +x_27 = l_Lean_Elab_mkElabAttribute___rarg___closed__1; lean_inc(x_3); -x_27 = lean_string_append(x_3, x_26); +x_28 = lean_string_append(x_3, x_27); lean_inc(x_2); -x_28 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_28, 0, x_2); -lean_inc(x_2); -x_29 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +x_29 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); lean_closure_set(x_29, 0, x_2); -x_30 = l_Lean_AttributeImpl_inhabited___closed__1; -x_31 = l_Lean_AttributeImpl_inhabited___closed__4; -x_32 = l_Lean_AttributeImpl_inhabited___closed__5; -x_33 = 0; -x_34 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_34, 0, x_2); -lean_ctor_set(x_34, 1, x_27); -lean_ctor_set(x_34, 2, x_30); -lean_ctor_set(x_34, 3, x_28); -lean_ctor_set(x_34, 4, x_29); -lean_ctor_set(x_34, 5, x_31); -lean_ctor_set(x_34, 6, x_32); -lean_ctor_set(x_34, 7, x_32); -lean_ctor_set_uint8(x_34, sizeof(void*)*8, x_33); -x_35 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_35, 0, x_34); -lean_ctor_set(x_35, 1, x_24); -lean_ctor_set(x_35, 2, x_3); -x_36 = lean_alloc_ctor(0, 2, 0); +lean_inc(x_2); +x_30 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_30, 0, x_2); +x_31 = l_Lean_AttributeImpl_inhabited___closed__1; +x_32 = l_Lean_AttributeImpl_inhabited___closed__4; +x_33 = l_Lean_AttributeImpl_inhabited___closed__5; +x_34 = 0; +x_35 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_35, 0, x_2); +lean_ctor_set(x_35, 1, x_28); +lean_ctor_set(x_35, 2, x_31); +lean_ctor_set(x_35, 3, x_29); +lean_ctor_set(x_35, 4, x_30); +lean_ctor_set(x_35, 5, x_32); +lean_ctor_set(x_35, 6, x_33); +lean_ctor_set(x_35, 7, x_33); +lean_ctor_set_uint8(x_35, sizeof(void*)*8, x_34); +x_36 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_36, 0, x_35); lean_ctor_set(x_36, 1, x_25); -return x_36; +lean_ctor_set(x_36, 2, x_3); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_36); +lean_ctor_set(x_37, 1, x_26); +return x_37; } } else { -uint8_t x_37; +uint8_t x_38; lean_dec(x_3); lean_dec(x_2); -x_37 = !lean_is_exclusive(x_11); -if (x_37 == 0) +x_38 = !lean_is_exclusive(x_12); +if (x_38 == 0) { -return x_11; +return x_12; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_11, 0); -x_39 = lean_ctor_get(x_11, 1); +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_12, 0); +x_40 = lean_ctor_get(x_12, 1); +lean_inc(x_40); lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_11); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_dec(x_12); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_39); +lean_ctor_set(x_41, 1, x_40); +return x_41; } } } @@ -602,14 +617,15 @@ x_2 = lean_alloc_closure((void*)(l_Lean_Elab_mkElabAttribute___rarg), 5, 0); return x_2; } } -lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_4; -x_4 = l_Lean_Elab_mkElabAttribute___rarg___lambda__1(x_1, x_2, x_3); +lean_object* x_5; +x_5 = l_Lean_Elab_mkElabAttribute___rarg___lambda__1(x_1, x_2, x_3, x_4); +lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -return x_4; +return x_5; } } lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2___boxed(lean_object* x_1, lean_object* x_2) { diff --git a/stage0/stdlib/Init/Lean/Environment.c b/stage0/stdlib/Init/Lean/Environment.c index 80c884e651..cdfa704993 100644 --- a/stage0/stdlib/Init/Lean/Environment.c +++ b/stage0/stdlib/Init/Lean/Environment.c @@ -125,17 +125,17 @@ uint8_t l_HashMapImp_contains___at_Lean_Environment_contains___spec__2(lean_obje lean_object* l_Lean_namespacesExt___closed__2; lean_object* l_Lean_namespacesExt___elambda__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4(lean_object*); -lean_object* l_Lean_PersistentEnvExtension_inhabited(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_inhabited(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_LocalContext_Inhabited___closed__1; lean_object* l_Lean_SimplePersistentEnvExtension_modifyState(lean_object*, lean_object*); lean_object* l_Lean_findOLean(lean_object*, lean_object*); -lean_object* l_Lean_namespacesExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_namespacesExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_contains___boxed(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtensionState_inhabited(lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_setState(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_setState(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_find_x3f___at_Lean_Environment_find_x3f___spec__4(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_LocalContext_contains___spec__3(lean_object*, lean_object*, lean_object*); @@ -156,7 +156,7 @@ lean_object* l_Lean_SimplePersistentEnvExtension_getEntries(lean_object*, lean_o lean_object* l_Lean_EnvExtension_modifyStateUnsafe___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_foldlM___at_Lean_mkModuleData___spec__2___boxed(lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SimplePersistentEnvExtension_modifyState___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg(lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); @@ -195,7 +195,7 @@ lean_object* l_Lean_SMap_size___at_Lean_Environment_displayStats___spec__3___box lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2___boxed(lean_object*); -lean_object* l_Lean_PersistentEnvExtension_addEntry(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_addEntry(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_HasToString(lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__1(lean_object*, lean_object*); lean_object* l_Lean_namespacesExt___elambda__1(lean_object*); @@ -216,7 +216,7 @@ lean_object* l_Array_iterateMAux___main___rarg(lean_object*, lean_object*, lean_ lean_object* l_Array_iterateMAux___main___at_Lean_Environment_addAux___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_regNamespacesExtension___spec__1___boxed(lean_object*, lean_object*); extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3; -lean_object* l_Lean_registerPersistentEnvExtension(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerPersistentEnvExtension(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_displayStats___closed__3; lean_object* l_HashMapImp_expand___at_Lean_Environment_addAux___spec__8(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_importModules___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -261,7 +261,7 @@ lean_object* l_Lean_modListExtension___closed__1; uint8_t l_AssocList_contains___main___at_Lean_Environment_addAux___spec__7(lean_object*, lean_object*); lean_object* l_Array_forMAux___main___at_Lean_Environment_displayStats___spec__9___closed__3; lean_object* l_Lean_modListExtension___closed__2; -lean_object* l_Lean_PersistentEnvExtension_modifyState(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_modifyState(lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_find___main___at_Lean_Environment_find_x3f___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_ModuleIdx_inhabited; lean_object* l_Array_forMAux___main___at_Lean_Environment_displayStats___spec__9(lean_object*, lean_object*, lean_object*, lean_object*); @@ -274,7 +274,7 @@ lean_object* l_Lean_registerEnvExtension(lean_object*, lean_object*, lean_object lean_object* l_Lean_importModules___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_EnvExtension_Inhabited___rarg(lean_object*); lean_object* l_mkHashMapImp___rarg(lean_object*); -lean_object* l_Lean_PersistentEnvExtension_getState(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_getState(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_importModules___closed__1; lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6___closed__1; lean_object* l_Lean_Environment_addDecl___boxed(lean_object*, lean_object*); @@ -283,7 +283,7 @@ lean_object* l_RBNode_insert___at_Lean_NameSet_insert___spec__1(lean_object*, le lean_object* l_Array_forMAux___main___at_Lean_Environment_displayStats___spec__9___closed__1; extern lean_object* l_NonScalar_Inhabited; lean_object* l_mkHashMap___at_Lean_Environment_Inhabited___spec__3(lean_object*); -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1(lean_object*, lean_object*); uint8_t l_Lean_Format_isNil(lean_object*); lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; lean_object* l_Lean_ModuleData_inhabited; @@ -311,12 +311,13 @@ lean_object* l_PersistentHashMap_insert___at_Lean_Environment_addAux___spec__2(l lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Environment_10__setImportedEntries___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_regNamespacesExtension(lean_object*); lean_object* lean_mk_empty_environment(uint32_t, lean_object*); -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_Inhabited; lean_object* lean_import_modules(lean_object*, uint32_t, lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -lean_object* l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1(lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Environment_9__getEntriesFor(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_find___main___at_Lean_Environment_find_x3f___spec__3(lean_object*, lean_object*); lean_object* lean_environment_main_module(lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___closed__2; @@ -325,7 +326,7 @@ uint8_t l_USize_decLe(size_t, size_t); lean_object* l_Array_iterateMAux___main___at_Lean_mkModuleData___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_Environment_Inhabited___spec__2; lean_object* l_Array_iterateMAux___main___at_Lean_importModules___spec__8(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_getModuleEntries(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_getModuleEntries(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_modifyState___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries(lean_object*, lean_object*); lean_object* l_Lean_EnvExtension_setState___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -363,7 +364,7 @@ lean_object* l_Lean_regNamespacesExtension___closed__3; lean_object* l_PersistentHashMap_insertAux___main___at_Lean_Environment_addAux___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_regNamespacesExtension___closed__5; lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6(lean_object*, lean_object*); -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe(lean_object*, lean_object*); +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_getModuleIdxFor_x3f(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Environment_9__getEntriesFor___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SMap_find_x3f_x27___at_Lean_Environment_find_x3f___spec__1___boxed(lean_object*, lean_object*); @@ -386,14 +387,14 @@ lean_object* l_HashMapImp_find_x3f___at_Lean_Environment_getModuleIdxFor_x3f___s uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Environment_contains___spec__4(lean_object*, size_t, lean_object*); lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_Environment_Inhabited___spec__2___closed__2; -lean_object* l_Lean_namespacesExt___elambda__4(lean_object*); +lean_object* l_Lean_namespacesExt___elambda__4(lean_object*, lean_object*); lean_object* l_HashMapImp_insert___at_Lean_Environment_addAux___spec__6(lean_object*, lean_object*, lean_object*); lean_object* lean_io_initializing(lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_EnvExtension_getStateUnsafe___rarg(lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_importModules___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_regNamespacesExtension___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_modListExtension; lean_object* l___private_Init_Lean_Environment_3__getTrustLevel___boxed(lean_object*); @@ -444,7 +445,7 @@ lean_object* l_Lean_mkTagDeclarationExtension___lambda__3(lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__3(lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_mkTagDeclarationExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_registerPersistentEnvExtension___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerPersistentEnvExtension___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_contains___at_Lean_Environment_contains___spec__2___boxed(lean_object*, lean_object*); uint8_t l_Lean_isNamespace(lean_object*, lean_object*); lean_object* lean_uint32_to_nat(uint32_t); @@ -3375,15 +3376,15 @@ x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtensionState_inhabited___ return x_3; } } -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; lean_object* x_4; -x_3 = l_String_splitAux___main___closed__1; -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; +lean_object* x_4; lean_object* x_5; +x_4 = l_String_splitAux___main___closed__1; +x_5 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_5, 0, x_4); +lean_ctor_set(x_5, 1, x_3); +return x_5; } } lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2(lean_object* x_1) { @@ -3406,7 +3407,7 @@ lean_object* _init_l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1() _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed), 2, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed), 3, 0); return x_1; } } @@ -3463,21 +3464,22 @@ lean_ctor_set(x_12, 5, x_11); return x_12; } } -lean_object* l_Lean_PersistentEnvExtension_inhabited(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_inhabited(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_inhabited___rarg), 1, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_inhabited___rarg), 1, 0); +return x_4; } } -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(x_1, x_2); +lean_object* x_4; +x_4 = l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__1(x_1, x_2, x_3); +lean_dec(x_2); lean_dec(x_1); -return x_3; +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2___boxed(lean_object* x_1) { @@ -3513,12 +3515,12 @@ lean_dec(x_6); return x_8; } } -lean_object* l_Lean_PersistentEnvExtension_getModuleEntries(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_getModuleEntries(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_getModuleEntries___rarg___boxed), 3, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_getModuleEntries___rarg___boxed), 3, 0); +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_getModuleEntries___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -3684,12 +3686,12 @@ return x_51; } } } -lean_object* l_Lean_PersistentEnvExtension_addEntry(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_addEntry(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_addEntry___rarg), 3, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_addEntry___rarg), 3, 0); +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object* x_1, lean_object* x_2) { @@ -3704,12 +3706,12 @@ lean_dec(x_4); return x_5; } } -lean_object* l_Lean_PersistentEnvExtension_getState(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_getState(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_getState___rarg___boxed), 2, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_getState___rarg___boxed), 2, 0); +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_getState___rarg___boxed(lean_object* x_1, lean_object* x_2) { @@ -3845,12 +3847,12 @@ return x_45; } } } -lean_object* l_Lean_PersistentEnvExtension_setState(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_setState(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_setState___rarg___boxed), 3, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_setState___rarg___boxed), 3, 0); +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_setState___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -3991,12 +3993,12 @@ return x_50; } } } -lean_object* l_Lean_PersistentEnvExtension_modifyState(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_PersistentEnvExtension_modifyState(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_modifyState___rarg___boxed), 3, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_modifyState___rarg___boxed), 3, 0); +return x_4; } } lean_object* l_Lean_PersistentEnvExtension_modifyState___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -4056,12 +4058,12 @@ return x_11; } } } -lean_object* l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1___rarg___boxed), 5, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1___rarg___boxed), 5, 0); +return x_4; } } lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -4309,27 +4311,26 @@ x_3 = lean_alloc_closure((void*)(l_Lean_registerEnvExtensionUnsafe___at_Lean_reg return x_3; } } -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_4; lean_object* x_5; +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = l_Array_empty___closed__1; x_4 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_1); x_5 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 1, x_2); return x_5; } } lean_object* _init_l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Array_empty___closed__1; -x_2 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1), 2, 0); +return x_1; } } lean_object* _init_l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2() { @@ -4379,456 +4380,460 @@ lean_dec(x_9); lean_dec(x_7); if (x_11 == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_free_object(x_5); -x_12 = lean_ctor_get(x_2, 1); +x_12 = lean_ctor_get(x_2, 0); lean_inc(x_12); -x_13 = l_Array_empty___closed__1; -lean_inc(x_12); -x_14 = lean_apply_1(x_12, x_13); -x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_16 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_16, 0, x_14); -lean_closure_set(x_16, 1, x_15); -x_17 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2___rarg(x_1, x_16, x_8); -if (lean_obj_tag(x_17) == 0) +x_13 = lean_ctor_get(x_2, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_2, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_2, 3); +lean_inc(x_15); +x_16 = lean_ctor_get(x_2, 4); +lean_inc(x_16); +x_17 = lean_ctor_get(x_2, 5); +lean_inc(x_17); +lean_dec(x_2); +x_18 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_19 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_19, 0, x_13); +lean_closure_set(x_19, 1, x_18); +x_20 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2___rarg(x_1, x_19, x_8); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_ctor_get(x_2, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_2, 2); +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -x_22 = lean_ctor_get(x_2, 3); +x_22 = lean_ctor_get(x_20, 1); lean_inc(x_22); -x_23 = lean_ctor_get(x_2, 4); -lean_inc(x_23); -lean_dec(x_2); -x_24 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_24, 0, x_18); -lean_ctor_set(x_24, 1, x_20); -lean_ctor_set(x_24, 2, x_12); -lean_ctor_set(x_24, 3, x_21); -lean_ctor_set(x_24, 4, x_22); -lean_ctor_set(x_24, 5, x_23); -x_25 = lean_io_ref_get(x_4, x_19); -if (lean_obj_tag(x_25) == 0) +lean_dec(x_20); +x_23 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_12); +lean_ctor_set(x_23, 2, x_14); +lean_ctor_set(x_23, 3, x_15); +lean_ctor_set(x_23, 4, x_16); +lean_ctor_set(x_23, 5, x_17); +x_24 = lean_io_ref_get(x_4, x_22); +if (lean_obj_tag(x_24) == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_25, 0); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -lean_dec(x_25); -x_28 = lean_io_ref_reset(x_4, x_27); -if (lean_obj_tag(x_28) == 0) -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); -lean_dec(x_28); -x_30 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_24); -x_31 = x_24; -x_32 = lean_array_push(x_26, x_31); -x_33 = lean_io_ref_set(x_4, x_32, x_29); -if (lean_obj_tag(x_33) == 0) -{ -uint8_t x_34; -x_34 = !lean_is_exclusive(x_33); -if (x_34 == 0) -{ -lean_object* x_35; -x_35 = lean_ctor_get(x_33, 0); -lean_dec(x_35); -lean_ctor_set(x_33, 0, x_24); -return x_33; -} -else -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_33, 1); -lean_inc(x_36); -lean_dec(x_33); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_24); -lean_ctor_set(x_37, 1, x_36); -return x_37; -} -} -else -{ -uint8_t x_38; lean_dec(x_24); -x_38 = !lean_is_exclusive(x_33); -if (x_38 == 0) +x_27 = lean_io_ref_reset(x_4, x_26); +if (lean_obj_tag(x_27) == 0) { -return x_33; +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_23); +x_30 = x_23; +x_31 = lean_array_push(x_25, x_30); +x_32 = lean_io_ref_set(x_4, x_31, x_28); +if (lean_obj_tag(x_32) == 0) +{ +uint8_t x_33; +x_33 = !lean_is_exclusive(x_32); +if (x_33 == 0) +{ +lean_object* x_34; +x_34 = lean_ctor_get(x_32, 0); +lean_dec(x_34); +lean_ctor_set(x_32, 0, x_23); +return x_32; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_33, 0); -x_40 = lean_ctor_get(x_33, 1); -lean_inc(x_40); +lean_object* x_35; lean_object* x_36; +x_35 = lean_ctor_get(x_32, 1); +lean_inc(x_35); +lean_dec(x_32); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_23); +lean_ctor_set(x_36, 1, x_35); +return x_36; +} +} +else +{ +uint8_t x_37; +lean_dec(x_23); +x_37 = !lean_is_exclusive(x_32); +if (x_37 == 0) +{ +return x_32; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_32, 0); +x_39 = lean_ctor_get(x_32, 1); lean_inc(x_39); -lean_dec(x_33); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; +lean_inc(x_38); +lean_dec(x_32); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; } } } else { -uint8_t x_42; -lean_dec(x_26); -lean_dec(x_24); -x_42 = !lean_is_exclusive(x_28); -if (x_42 == 0) -{ -return x_28; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_28, 0); -x_44 = lean_ctor_get(x_28, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_28); -x_45 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_45, 0, x_43); -lean_ctor_set(x_45, 1, x_44); -return x_45; -} -} -} -else -{ -uint8_t x_46; -lean_dec(x_24); -x_46 = !lean_is_exclusive(x_25); -if (x_46 == 0) -{ -return x_25; -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_47 = lean_ctor_get(x_25, 0); -x_48 = lean_ctor_get(x_25, 1); -lean_inc(x_48); -lean_inc(x_47); +uint8_t x_41; lean_dec(x_25); -x_49 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_49, 0, x_47); -lean_ctor_set(x_49, 1, x_48); -return x_49; +lean_dec(x_23); +x_41 = !lean_is_exclusive(x_27); +if (x_41 == 0) +{ +return x_27; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_27, 0); +x_43 = lean_ctor_get(x_27, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_27); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; } } } else { -uint8_t x_50; -lean_dec(x_12); -lean_dec(x_2); -x_50 = !lean_is_exclusive(x_17); -if (x_50 == 0) +uint8_t x_45; +lean_dec(x_23); +x_45 = !lean_is_exclusive(x_24); +if (x_45 == 0) { -return x_17; +return x_24; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_17, 0); -x_52 = lean_ctor_get(x_17, 1); -lean_inc(x_52); -lean_inc(x_51); +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_24, 0); +x_47 = lean_ctor_get(x_24, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_24); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +else +{ +uint8_t x_49; lean_dec(x_17); -x_53 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_53, 0, x_51); -lean_ctor_set(x_53, 1, x_52); -return x_53; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +x_49 = !lean_is_exclusive(x_20); +if (x_49 == 0) +{ +return x_20; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_20, 0); +x_51 = lean_ctor_get(x_20, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_20); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; } } } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_dec(x_1); -x_54 = lean_ctor_get(x_2, 0); -lean_inc(x_54); +x_53 = lean_ctor_get(x_2, 0); +lean_inc(x_53); lean_dec(x_2); -x_55 = l_Lean_Name_toString___closed__1; -x_56 = l_Lean_Name_toStringWithSep___main(x_55, x_54); -x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_58 = lean_string_append(x_57, x_56); -lean_dec(x_56); -x_59 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_60 = lean_string_append(x_58, x_59); +x_54 = l_Lean_Name_toString___closed__1; +x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); +x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_57 = lean_string_append(x_56, x_55); +lean_dec(x_55); +x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_59 = lean_string_append(x_57, x_58); lean_ctor_set_tag(x_5, 1); -lean_ctor_set(x_5, 0, x_60); +lean_ctor_set(x_5, 0, x_59); return x_5; } } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; -x_61 = lean_ctor_get(x_5, 0); -x_62 = lean_ctor_get(x_5, 1); -lean_inc(x_62); +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; +x_60 = lean_ctor_get(x_5, 0); +x_61 = lean_ctor_get(x_5, 1); lean_inc(x_61); +lean_inc(x_60); lean_dec(x_5); -x_63 = lean_array_get_size(x_61); -x_64 = lean_unsigned_to_nat(0u); -x_65 = l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1___rarg(x_2, x_61, x_61, x_63, x_64); -lean_dec(x_63); -lean_dec(x_61); -if (x_65 == 0) +x_62 = lean_array_get_size(x_60); +x_63 = lean_unsigned_to_nat(0u); +x_64 = l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1___rarg(x_2, x_60, x_60, x_62, x_63); +lean_dec(x_62); +lean_dec(x_60); +if (x_64 == 0) { -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_65 = lean_ctor_get(x_2, 0); +lean_inc(x_65); x_66 = lean_ctor_get(x_2, 1); lean_inc(x_66); -x_67 = l_Array_empty___closed__1; -lean_inc(x_66); -x_68 = lean_apply_1(x_66, x_67); -x_69 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_70 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_70, 0, x_68); -lean_closure_set(x_70, 1, x_69); -x_71 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2___rarg(x_1, x_70, x_62); -if (lean_obj_tag(x_71) == 0) +x_67 = lean_ctor_get(x_2, 2); +lean_inc(x_67); +x_68 = lean_ctor_get(x_2, 3); +lean_inc(x_68); +x_69 = lean_ctor_get(x_2, 4); +lean_inc(x_69); +x_70 = lean_ctor_get(x_2, 5); +lean_inc(x_70); +lean_dec(x_2); +x_71 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_72 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_72, 0, x_66); +lean_closure_set(x_72, 1, x_71); +x_73 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerPersistentEnvExtensionUnsafe___spec__2___rarg(x_1, x_72, x_61); +if (lean_obj_tag(x_73) == 0) { -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_2, 0); +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -x_75 = lean_ctor_get(x_2, 2); +x_75 = lean_ctor_get(x_73, 1); lean_inc(x_75); -x_76 = lean_ctor_get(x_2, 3); -lean_inc(x_76); -x_77 = lean_ctor_get(x_2, 4); -lean_inc(x_77); -lean_dec(x_2); -x_78 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_78, 0, x_72); -lean_ctor_set(x_78, 1, x_74); -lean_ctor_set(x_78, 2, x_66); -lean_ctor_set(x_78, 3, x_75); -lean_ctor_set(x_78, 4, x_76); -lean_ctor_set(x_78, 5, x_77); -x_79 = lean_io_ref_get(x_4, x_73); -if (lean_obj_tag(x_79) == 0) +lean_dec(x_73); +x_76 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_76, 0, x_74); +lean_ctor_set(x_76, 1, x_65); +lean_ctor_set(x_76, 2, x_67); +lean_ctor_set(x_76, 3, x_68); +lean_ctor_set(x_76, 4, x_69); +lean_ctor_set(x_76, 5, x_70); +x_77 = lean_io_ref_get(x_4, x_75); +if (lean_obj_tag(x_77) == 0) { -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_79, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); -lean_dec(x_79); -x_82 = lean_io_ref_reset(x_4, x_81); -if (lean_obj_tag(x_82) == 0) -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -lean_dec(x_82); -x_84 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_77, 0); lean_inc(x_78); -x_85 = x_78; -x_86 = lean_array_push(x_80, x_85); -x_87 = lean_io_ref_set(x_4, x_86, x_83); -if (lean_obj_tag(x_87) == 0) +x_79 = lean_ctor_get(x_77, 1); +lean_inc(x_79); +lean_dec(x_77); +x_80 = lean_io_ref_reset(x_4, x_79); +if (lean_obj_tag(x_80) == 0) { -lean_object* x_88; lean_object* x_89; lean_object* x_90; -x_88 = lean_ctor_get(x_87, 1); -lean_inc(x_88); -if (lean_is_exclusive(x_87)) { - lean_ctor_release(x_87, 0); - lean_ctor_release(x_87, 1); - x_89 = x_87; -} else { - lean_dec_ref(x_87); - x_89 = lean_box(0); -} -if (lean_is_scalar(x_89)) { - x_90 = lean_alloc_ctor(0, 2, 0); -} else { - x_90 = x_89; -} -lean_ctor_set(x_90, 0, x_78); -lean_ctor_set(x_90, 1, x_88); -return x_90; -} -else -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; -lean_dec(x_78); -x_91 = lean_ctor_get(x_87, 0); -lean_inc(x_91); -x_92 = lean_ctor_get(x_87, 1); -lean_inc(x_92); -if (lean_is_exclusive(x_87)) { - lean_ctor_release(x_87, 0); - lean_ctor_release(x_87, 1); - x_93 = x_87; -} else { - lean_dec_ref(x_87); - x_93 = lean_box(0); -} -if (lean_is_scalar(x_93)) { - x_94 = lean_alloc_ctor(1, 2, 0); -} else { - x_94 = x_93; -} -lean_ctor_set(x_94, 0, x_91); -lean_ctor_set(x_94, 1, x_92); -return x_94; -} -} -else -{ -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_81 = lean_ctor_get(x_80, 1); +lean_inc(x_81); lean_dec(x_80); +x_82 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_76); +x_83 = x_76; +x_84 = lean_array_push(x_78, x_83); +x_85 = lean_io_ref_set(x_4, x_84, x_81); +if (lean_obj_tag(x_85) == 0) +{ +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_85, 1); +lean_inc(x_86); +if (lean_is_exclusive(x_85)) { + lean_ctor_release(x_85, 0); + lean_ctor_release(x_85, 1); + x_87 = x_85; +} else { + lean_dec_ref(x_85); + x_87 = lean_box(0); +} +if (lean_is_scalar(x_87)) { + x_88 = lean_alloc_ctor(0, 2, 0); +} else { + x_88 = x_87; +} +lean_ctor_set(x_88, 0, x_76); +lean_ctor_set(x_88, 1, x_86); +return x_88; +} +else +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_76); +x_89 = lean_ctor_get(x_85, 0); +lean_inc(x_89); +x_90 = lean_ctor_get(x_85, 1); +lean_inc(x_90); +if (lean_is_exclusive(x_85)) { + lean_ctor_release(x_85, 0); + lean_ctor_release(x_85, 1); + x_91 = x_85; +} else { + lean_dec_ref(x_85); + x_91 = lean_box(0); +} +if (lean_is_scalar(x_91)) { + x_92 = lean_alloc_ctor(1, 2, 0); +} else { + x_92 = x_91; +} +lean_ctor_set(x_92, 0, x_89); +lean_ctor_set(x_92, 1, x_90); +return x_92; +} +} +else +{ +lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_dec(x_78); -x_95 = lean_ctor_get(x_82, 0); -lean_inc(x_95); -x_96 = lean_ctor_get(x_82, 1); -lean_inc(x_96); -if (lean_is_exclusive(x_82)) { - lean_ctor_release(x_82, 0); - lean_ctor_release(x_82, 1); - x_97 = x_82; +lean_dec(x_76); +x_93 = lean_ctor_get(x_80, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_80, 1); +lean_inc(x_94); +if (lean_is_exclusive(x_80)) { + lean_ctor_release(x_80, 0); + lean_ctor_release(x_80, 1); + x_95 = x_80; } else { - lean_dec_ref(x_82); - x_97 = lean_box(0); + lean_dec_ref(x_80); + x_95 = lean_box(0); } -if (lean_is_scalar(x_97)) { - x_98 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_95)) { + x_96 = lean_alloc_ctor(1, 2, 0); } else { - x_98 = x_97; + x_96 = x_95; } -lean_ctor_set(x_98, 0, x_95); -lean_ctor_set(x_98, 1, x_96); -return x_98; +lean_ctor_set(x_96, 0, x_93); +lean_ctor_set(x_96, 1, x_94); +return x_96; } } else { -lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; -lean_dec(x_78); -x_99 = lean_ctor_get(x_79, 0); -lean_inc(x_99); -x_100 = lean_ctor_get(x_79, 1); -lean_inc(x_100); -if (lean_is_exclusive(x_79)) { - lean_ctor_release(x_79, 0); - lean_ctor_release(x_79, 1); - x_101 = x_79; +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_76); +x_97 = lean_ctor_get(x_77, 0); +lean_inc(x_97); +x_98 = lean_ctor_get(x_77, 1); +lean_inc(x_98); +if (lean_is_exclusive(x_77)) { + lean_ctor_release(x_77, 0); + lean_ctor_release(x_77, 1); + x_99 = x_77; } else { - lean_dec_ref(x_79); - x_101 = lean_box(0); + lean_dec_ref(x_77); + x_99 = lean_box(0); } -if (lean_is_scalar(x_101)) { - x_102 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_99)) { + x_100 = lean_alloc_ctor(1, 2, 0); } else { - x_102 = x_101; + x_100 = x_99; } -lean_ctor_set(x_102, 0, x_99); -lean_ctor_set(x_102, 1, x_100); -return x_102; +lean_ctor_set(x_100, 0, x_97); +lean_ctor_set(x_100, 1, x_98); +return x_100; } } else { -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; -lean_dec(x_66); -lean_dec(x_2); -x_103 = lean_ctor_get(x_71, 0); -lean_inc(x_103); -x_104 = lean_ctor_get(x_71, 1); -lean_inc(x_104); -if (lean_is_exclusive(x_71)) { - lean_ctor_release(x_71, 0); - lean_ctor_release(x_71, 1); - x_105 = x_71; +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; +lean_dec(x_70); +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_65); +x_101 = lean_ctor_get(x_73, 0); +lean_inc(x_101); +x_102 = lean_ctor_get(x_73, 1); +lean_inc(x_102); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + lean_ctor_release(x_73, 1); + x_103 = x_73; } else { - lean_dec_ref(x_71); - x_105 = lean_box(0); + lean_dec_ref(x_73); + x_103 = lean_box(0); } -if (lean_is_scalar(x_105)) { - x_106 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_103)) { + x_104 = lean_alloc_ctor(1, 2, 0); } else { - x_106 = x_105; + x_104 = x_103; } -lean_ctor_set(x_106, 0, x_103); -lean_ctor_set(x_106, 1, x_104); -return x_106; +lean_ctor_set(x_104, 0, x_101); +lean_ctor_set(x_104, 1, x_102); +return x_104; } } else { -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_dec(x_1); -x_107 = lean_ctor_get(x_2, 0); -lean_inc(x_107); +x_105 = lean_ctor_get(x_2, 0); +lean_inc(x_105); lean_dec(x_2); -x_108 = l_Lean_Name_toString___closed__1; -x_109 = l_Lean_Name_toStringWithSep___main(x_108, x_107); -x_110 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_111 = lean_string_append(x_110, x_109); -lean_dec(x_109); -x_112 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_113 = lean_string_append(x_111, x_112); -x_114 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_114, 0, x_113); -lean_ctor_set(x_114, 1, x_62); -return x_114; +x_106 = l_Lean_Name_toString___closed__1; +x_107 = l_Lean_Name_toStringWithSep___main(x_106, x_105); +x_108 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_109 = lean_string_append(x_108, x_107); +lean_dec(x_107); +x_110 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_111 = lean_string_append(x_109, x_110); +x_112 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_112, 0, x_111); +lean_ctor_set(x_112, 1, x_61); +return x_112; } } } else { -uint8_t x_115; +uint8_t x_113; lean_dec(x_2); lean_dec(x_1); -x_115 = !lean_is_exclusive(x_5); -if (x_115 == 0) +x_113 = !lean_is_exclusive(x_5); +if (x_113 == 0) { return x_5; } else { -lean_object* x_116; lean_object* x_117; lean_object* x_118; -x_116 = lean_ctor_get(x_5, 0); -x_117 = lean_ctor_get(x_5, 1); -lean_inc(x_117); -lean_inc(x_116); +lean_object* x_114; lean_object* x_115; lean_object* x_116; +x_114 = lean_ctor_get(x_5, 0); +x_115 = lean_ctor_get(x_5, 1); +lean_inc(x_115); +lean_inc(x_114); lean_dec(x_5); -x_118 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_118, 0, x_116); -lean_ctor_set(x_118, 1, x_117); -return x_118; +x_116 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_116, 0, x_114); +lean_ctor_set(x_116, 1, x_115); +return x_116; } } } } -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg), 3, 0); -return x_3; +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg), 3, 0); +return x_4; } } lean_object* l_Array_anyRangeMAux___main___at_Lean_registerPersistentEnvExtensionUnsafe___spec__1___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -4855,22 +4860,22 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_registerPersistentEnvExtension(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_registerPersistentEnvExtension(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_5; -x_5 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtension___rarg), 1, 0); -return x_5; +lean_object* x_6; +x_6 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtension___rarg), 1, 0); +return x_6; } } -lean_object* l_Lean_registerPersistentEnvExtension___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_registerPersistentEnvExtension___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_5; -x_5 = l_Lean_registerPersistentEnvExtension(x_1, x_2, x_3, x_4); +lean_object* x_6; +x_6 = l_Lean_registerPersistentEnvExtension(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); lean_dec(x_4); -lean_dec(x_3); -return x_5; +return x_6; } } lean_object* l_Lean_mkStateFromImportedEntries___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -5232,446 +5237,450 @@ lean_dec(x_9); lean_dec(x_7); if (x_11 == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_free_object(x_5); -x_12 = lean_ctor_get(x_2, 1); +x_12 = lean_ctor_get(x_2, 0); lean_inc(x_12); -x_13 = l_Array_empty___closed__1; -lean_inc(x_12); -x_14 = lean_apply_1(x_12, x_13); -x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_16 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_16, 0, x_14); -lean_closure_set(x_16, 1, x_15); -x_17 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__3___rarg(x_1, x_16, x_8); -if (lean_obj_tag(x_17) == 0) +x_13 = lean_ctor_get(x_2, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_2, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_2, 3); +lean_inc(x_15); +x_16 = lean_ctor_get(x_2, 4); +lean_inc(x_16); +x_17 = lean_ctor_get(x_2, 5); +lean_inc(x_17); +lean_dec(x_2); +x_18 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_19 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_19, 0, x_13); +lean_closure_set(x_19, 1, x_18); +x_20 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__3___rarg(x_1, x_19, x_8); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_ctor_get(x_2, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_2, 2); +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -x_22 = lean_ctor_get(x_2, 3); +x_22 = lean_ctor_get(x_20, 1); lean_inc(x_22); -x_23 = lean_ctor_get(x_2, 4); -lean_inc(x_23); -lean_dec(x_2); -x_24 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_24, 0, x_18); -lean_ctor_set(x_24, 1, x_20); -lean_ctor_set(x_24, 2, x_12); -lean_ctor_set(x_24, 3, x_21); -lean_ctor_set(x_24, 4, x_22); -lean_ctor_set(x_24, 5, x_23); -x_25 = lean_io_ref_get(x_4, x_19); -if (lean_obj_tag(x_25) == 0) +lean_dec(x_20); +x_23 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_12); +lean_ctor_set(x_23, 2, x_14); +lean_ctor_set(x_23, 3, x_15); +lean_ctor_set(x_23, 4, x_16); +lean_ctor_set(x_23, 5, x_17); +x_24 = lean_io_ref_get(x_4, x_22); +if (lean_obj_tag(x_24) == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_25, 0); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -lean_dec(x_25); -x_28 = lean_io_ref_reset(x_4, x_27); -if (lean_obj_tag(x_28) == 0) -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); -lean_dec(x_28); -x_30 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_24); -x_31 = x_24; -x_32 = lean_array_push(x_26, x_31); -x_33 = lean_io_ref_set(x_4, x_32, x_29); -if (lean_obj_tag(x_33) == 0) -{ -uint8_t x_34; -x_34 = !lean_is_exclusive(x_33); -if (x_34 == 0) -{ -lean_object* x_35; -x_35 = lean_ctor_get(x_33, 0); -lean_dec(x_35); -lean_ctor_set(x_33, 0, x_24); -return x_33; -} -else -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_33, 1); -lean_inc(x_36); -lean_dec(x_33); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_24); -lean_ctor_set(x_37, 1, x_36); -return x_37; -} -} -else -{ -uint8_t x_38; lean_dec(x_24); -x_38 = !lean_is_exclusive(x_33); -if (x_38 == 0) +x_27 = lean_io_ref_reset(x_4, x_26); +if (lean_obj_tag(x_27) == 0) { -return x_33; +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_23); +x_30 = x_23; +x_31 = lean_array_push(x_25, x_30); +x_32 = lean_io_ref_set(x_4, x_31, x_28); +if (lean_obj_tag(x_32) == 0) +{ +uint8_t x_33; +x_33 = !lean_is_exclusive(x_32); +if (x_33 == 0) +{ +lean_object* x_34; +x_34 = lean_ctor_get(x_32, 0); +lean_dec(x_34); +lean_ctor_set(x_32, 0, x_23); +return x_32; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_33, 0); -x_40 = lean_ctor_get(x_33, 1); -lean_inc(x_40); +lean_object* x_35; lean_object* x_36; +x_35 = lean_ctor_get(x_32, 1); +lean_inc(x_35); +lean_dec(x_32); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_23); +lean_ctor_set(x_36, 1, x_35); +return x_36; +} +} +else +{ +uint8_t x_37; +lean_dec(x_23); +x_37 = !lean_is_exclusive(x_32); +if (x_37 == 0) +{ +return x_32; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_32, 0); +x_39 = lean_ctor_get(x_32, 1); lean_inc(x_39); -lean_dec(x_33); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; +lean_inc(x_38); +lean_dec(x_32); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; } } } else { -uint8_t x_42; -lean_dec(x_26); -lean_dec(x_24); -x_42 = !lean_is_exclusive(x_28); -if (x_42 == 0) -{ -return x_28; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_28, 0); -x_44 = lean_ctor_get(x_28, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_28); -x_45 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_45, 0, x_43); -lean_ctor_set(x_45, 1, x_44); -return x_45; -} -} -} -else -{ -uint8_t x_46; -lean_dec(x_24); -x_46 = !lean_is_exclusive(x_25); -if (x_46 == 0) -{ -return x_25; -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_47 = lean_ctor_get(x_25, 0); -x_48 = lean_ctor_get(x_25, 1); -lean_inc(x_48); -lean_inc(x_47); +uint8_t x_41; lean_dec(x_25); -x_49 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_49, 0, x_47); -lean_ctor_set(x_49, 1, x_48); -return x_49; +lean_dec(x_23); +x_41 = !lean_is_exclusive(x_27); +if (x_41 == 0) +{ +return x_27; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_27, 0); +x_43 = lean_ctor_get(x_27, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_27); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; } } } else { -uint8_t x_50; -lean_dec(x_12); -lean_dec(x_2); -x_50 = !lean_is_exclusive(x_17); -if (x_50 == 0) +uint8_t x_45; +lean_dec(x_23); +x_45 = !lean_is_exclusive(x_24); +if (x_45 == 0) { -return x_17; +return x_24; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_17, 0); -x_52 = lean_ctor_get(x_17, 1); -lean_inc(x_52); -lean_inc(x_51); +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_24, 0); +x_47 = lean_ctor_get(x_24, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_24); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +else +{ +uint8_t x_49; lean_dec(x_17); -x_53 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_53, 0, x_51); -lean_ctor_set(x_53, 1, x_52); -return x_53; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +x_49 = !lean_is_exclusive(x_20); +if (x_49 == 0) +{ +return x_20; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_20, 0); +x_51 = lean_ctor_get(x_20, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_20); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; } } } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_dec(x_1); -x_54 = lean_ctor_get(x_2, 0); -lean_inc(x_54); +x_53 = lean_ctor_get(x_2, 0); +lean_inc(x_53); lean_dec(x_2); -x_55 = l_Lean_Name_toString___closed__1; -x_56 = l_Lean_Name_toStringWithSep___main(x_55, x_54); -x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_58 = lean_string_append(x_57, x_56); -lean_dec(x_56); -x_59 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_60 = lean_string_append(x_58, x_59); +x_54 = l_Lean_Name_toString___closed__1; +x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); +x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_57 = lean_string_append(x_56, x_55); +lean_dec(x_55); +x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_59 = lean_string_append(x_57, x_58); lean_ctor_set_tag(x_5, 1); -lean_ctor_set(x_5, 0, x_60); +lean_ctor_set(x_5, 0, x_59); return x_5; } } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; -x_61 = lean_ctor_get(x_5, 0); -x_62 = lean_ctor_get(x_5, 1); -lean_inc(x_62); +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; +x_60 = lean_ctor_get(x_5, 0); +x_61 = lean_ctor_get(x_5, 1); lean_inc(x_61); +lean_inc(x_60); lean_dec(x_5); -x_63 = lean_array_get_size(x_61); -x_64 = lean_unsigned_to_nat(0u); -x_65 = l_Array_anyRangeMAux___main___at_Lean_registerSimplePersistentEnvExtension___spec__2___rarg(x_2, x_61, x_61, x_63, x_64); -lean_dec(x_63); -lean_dec(x_61); -if (x_65 == 0) +x_62 = lean_array_get_size(x_60); +x_63 = lean_unsigned_to_nat(0u); +x_64 = l_Array_anyRangeMAux___main___at_Lean_registerSimplePersistentEnvExtension___spec__2___rarg(x_2, x_60, x_60, x_62, x_63); +lean_dec(x_62); +lean_dec(x_60); +if (x_64 == 0) { -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_65 = lean_ctor_get(x_2, 0); +lean_inc(x_65); x_66 = lean_ctor_get(x_2, 1); lean_inc(x_66); -x_67 = l_Array_empty___closed__1; -lean_inc(x_66); -x_68 = lean_apply_1(x_66, x_67); -x_69 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_70 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_70, 0, x_68); -lean_closure_set(x_70, 1, x_69); -x_71 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__3___rarg(x_1, x_70, x_62); -if (lean_obj_tag(x_71) == 0) +x_67 = lean_ctor_get(x_2, 2); +lean_inc(x_67); +x_68 = lean_ctor_get(x_2, 3); +lean_inc(x_68); +x_69 = lean_ctor_get(x_2, 4); +lean_inc(x_69); +x_70 = lean_ctor_get(x_2, 5); +lean_inc(x_70); +lean_dec(x_2); +x_71 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_72 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_72, 0, x_66); +lean_closure_set(x_72, 1, x_71); +x_73 = l_Lean_registerEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__3___rarg(x_1, x_72, x_61); +if (lean_obj_tag(x_73) == 0) { -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_2, 0); +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -x_75 = lean_ctor_get(x_2, 2); +x_75 = lean_ctor_get(x_73, 1); lean_inc(x_75); -x_76 = lean_ctor_get(x_2, 3); -lean_inc(x_76); -x_77 = lean_ctor_get(x_2, 4); -lean_inc(x_77); -lean_dec(x_2); -x_78 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_78, 0, x_72); -lean_ctor_set(x_78, 1, x_74); -lean_ctor_set(x_78, 2, x_66); -lean_ctor_set(x_78, 3, x_75); -lean_ctor_set(x_78, 4, x_76); -lean_ctor_set(x_78, 5, x_77); -x_79 = lean_io_ref_get(x_4, x_73); -if (lean_obj_tag(x_79) == 0) +lean_dec(x_73); +x_76 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_76, 0, x_74); +lean_ctor_set(x_76, 1, x_65); +lean_ctor_set(x_76, 2, x_67); +lean_ctor_set(x_76, 3, x_68); +lean_ctor_set(x_76, 4, x_69); +lean_ctor_set(x_76, 5, x_70); +x_77 = lean_io_ref_get(x_4, x_75); +if (lean_obj_tag(x_77) == 0) { -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_79, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); -lean_dec(x_79); -x_82 = lean_io_ref_reset(x_4, x_81); -if (lean_obj_tag(x_82) == 0) -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -lean_dec(x_82); -x_84 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_77, 0); lean_inc(x_78); -x_85 = x_78; -x_86 = lean_array_push(x_80, x_85); -x_87 = lean_io_ref_set(x_4, x_86, x_83); -if (lean_obj_tag(x_87) == 0) +x_79 = lean_ctor_get(x_77, 1); +lean_inc(x_79); +lean_dec(x_77); +x_80 = lean_io_ref_reset(x_4, x_79); +if (lean_obj_tag(x_80) == 0) { -lean_object* x_88; lean_object* x_89; lean_object* x_90; -x_88 = lean_ctor_get(x_87, 1); -lean_inc(x_88); -if (lean_is_exclusive(x_87)) { - lean_ctor_release(x_87, 0); - lean_ctor_release(x_87, 1); - x_89 = x_87; -} else { - lean_dec_ref(x_87); - x_89 = lean_box(0); -} -if (lean_is_scalar(x_89)) { - x_90 = lean_alloc_ctor(0, 2, 0); -} else { - x_90 = x_89; -} -lean_ctor_set(x_90, 0, x_78); -lean_ctor_set(x_90, 1, x_88); -return x_90; -} -else -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; -lean_dec(x_78); -x_91 = lean_ctor_get(x_87, 0); -lean_inc(x_91); -x_92 = lean_ctor_get(x_87, 1); -lean_inc(x_92); -if (lean_is_exclusive(x_87)) { - lean_ctor_release(x_87, 0); - lean_ctor_release(x_87, 1); - x_93 = x_87; -} else { - lean_dec_ref(x_87); - x_93 = lean_box(0); -} -if (lean_is_scalar(x_93)) { - x_94 = lean_alloc_ctor(1, 2, 0); -} else { - x_94 = x_93; -} -lean_ctor_set(x_94, 0, x_91); -lean_ctor_set(x_94, 1, x_92); -return x_94; -} -} -else -{ -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_81 = lean_ctor_get(x_80, 1); +lean_inc(x_81); lean_dec(x_80); +x_82 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_76); +x_83 = x_76; +x_84 = lean_array_push(x_78, x_83); +x_85 = lean_io_ref_set(x_4, x_84, x_81); +if (lean_obj_tag(x_85) == 0) +{ +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_85, 1); +lean_inc(x_86); +if (lean_is_exclusive(x_85)) { + lean_ctor_release(x_85, 0); + lean_ctor_release(x_85, 1); + x_87 = x_85; +} else { + lean_dec_ref(x_85); + x_87 = lean_box(0); +} +if (lean_is_scalar(x_87)) { + x_88 = lean_alloc_ctor(0, 2, 0); +} else { + x_88 = x_87; +} +lean_ctor_set(x_88, 0, x_76); +lean_ctor_set(x_88, 1, x_86); +return x_88; +} +else +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_76); +x_89 = lean_ctor_get(x_85, 0); +lean_inc(x_89); +x_90 = lean_ctor_get(x_85, 1); +lean_inc(x_90); +if (lean_is_exclusive(x_85)) { + lean_ctor_release(x_85, 0); + lean_ctor_release(x_85, 1); + x_91 = x_85; +} else { + lean_dec_ref(x_85); + x_91 = lean_box(0); +} +if (lean_is_scalar(x_91)) { + x_92 = lean_alloc_ctor(1, 2, 0); +} else { + x_92 = x_91; +} +lean_ctor_set(x_92, 0, x_89); +lean_ctor_set(x_92, 1, x_90); +return x_92; +} +} +else +{ +lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_dec(x_78); -x_95 = lean_ctor_get(x_82, 0); -lean_inc(x_95); -x_96 = lean_ctor_get(x_82, 1); -lean_inc(x_96); -if (lean_is_exclusive(x_82)) { - lean_ctor_release(x_82, 0); - lean_ctor_release(x_82, 1); - x_97 = x_82; +lean_dec(x_76); +x_93 = lean_ctor_get(x_80, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_80, 1); +lean_inc(x_94); +if (lean_is_exclusive(x_80)) { + lean_ctor_release(x_80, 0); + lean_ctor_release(x_80, 1); + x_95 = x_80; } else { - lean_dec_ref(x_82); - x_97 = lean_box(0); + lean_dec_ref(x_80); + x_95 = lean_box(0); } -if (lean_is_scalar(x_97)) { - x_98 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_95)) { + x_96 = lean_alloc_ctor(1, 2, 0); } else { - x_98 = x_97; + x_96 = x_95; } -lean_ctor_set(x_98, 0, x_95); -lean_ctor_set(x_98, 1, x_96); -return x_98; +lean_ctor_set(x_96, 0, x_93); +lean_ctor_set(x_96, 1, x_94); +return x_96; } } else { -lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; -lean_dec(x_78); -x_99 = lean_ctor_get(x_79, 0); -lean_inc(x_99); -x_100 = lean_ctor_get(x_79, 1); -lean_inc(x_100); -if (lean_is_exclusive(x_79)) { - lean_ctor_release(x_79, 0); - lean_ctor_release(x_79, 1); - x_101 = x_79; +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_76); +x_97 = lean_ctor_get(x_77, 0); +lean_inc(x_97); +x_98 = lean_ctor_get(x_77, 1); +lean_inc(x_98); +if (lean_is_exclusive(x_77)) { + lean_ctor_release(x_77, 0); + lean_ctor_release(x_77, 1); + x_99 = x_77; } else { - lean_dec_ref(x_79); - x_101 = lean_box(0); + lean_dec_ref(x_77); + x_99 = lean_box(0); } -if (lean_is_scalar(x_101)) { - x_102 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_99)) { + x_100 = lean_alloc_ctor(1, 2, 0); } else { - x_102 = x_101; + x_100 = x_99; } -lean_ctor_set(x_102, 0, x_99); -lean_ctor_set(x_102, 1, x_100); -return x_102; +lean_ctor_set(x_100, 0, x_97); +lean_ctor_set(x_100, 1, x_98); +return x_100; } } else { -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; -lean_dec(x_66); -lean_dec(x_2); -x_103 = lean_ctor_get(x_71, 0); -lean_inc(x_103); -x_104 = lean_ctor_get(x_71, 1); -lean_inc(x_104); -if (lean_is_exclusive(x_71)) { - lean_ctor_release(x_71, 0); - lean_ctor_release(x_71, 1); - x_105 = x_71; +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; +lean_dec(x_70); +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_65); +x_101 = lean_ctor_get(x_73, 0); +lean_inc(x_101); +x_102 = lean_ctor_get(x_73, 1); +lean_inc(x_102); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + lean_ctor_release(x_73, 1); + x_103 = x_73; } else { - lean_dec_ref(x_71); - x_105 = lean_box(0); + lean_dec_ref(x_73); + x_103 = lean_box(0); } -if (lean_is_scalar(x_105)) { - x_106 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_103)) { + x_104 = lean_alloc_ctor(1, 2, 0); } else { - x_106 = x_105; + x_104 = x_103; } -lean_ctor_set(x_106, 0, x_103); -lean_ctor_set(x_106, 1, x_104); -return x_106; +lean_ctor_set(x_104, 0, x_101); +lean_ctor_set(x_104, 1, x_102); +return x_104; } } else { -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_dec(x_1); -x_107 = lean_ctor_get(x_2, 0); -lean_inc(x_107); +x_105 = lean_ctor_get(x_2, 0); +lean_inc(x_105); lean_dec(x_2); -x_108 = l_Lean_Name_toString___closed__1; -x_109 = l_Lean_Name_toStringWithSep___main(x_108, x_107); -x_110 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_111 = lean_string_append(x_110, x_109); -lean_dec(x_109); -x_112 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_113 = lean_string_append(x_111, x_112); -x_114 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_114, 0, x_113); -lean_ctor_set(x_114, 1, x_62); -return x_114; +x_106 = l_Lean_Name_toString___closed__1; +x_107 = l_Lean_Name_toStringWithSep___main(x_106, x_105); +x_108 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_109 = lean_string_append(x_108, x_107); +lean_dec(x_107); +x_110 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_111 = lean_string_append(x_109, x_110); +x_112 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_112, 0, x_111); +lean_ctor_set(x_112, 1, x_61); +return x_112; } } } else { -uint8_t x_115; +uint8_t x_113; lean_dec(x_2); lean_dec(x_1); -x_115 = !lean_is_exclusive(x_5); -if (x_115 == 0) +x_113 = !lean_is_exclusive(x_5); +if (x_113 == 0) { return x_5; } else { -lean_object* x_116; lean_object* x_117; lean_object* x_118; -x_116 = lean_ctor_get(x_5, 0); -x_117 = lean_ctor_get(x_5, 1); -lean_inc(x_117); -lean_inc(x_116); +lean_object* x_114; lean_object* x_115; lean_object* x_116; +x_114 = lean_ctor_get(x_5, 0); +x_115 = lean_ctor_get(x_5, 1); +lean_inc(x_115); +lean_inc(x_114); lean_dec(x_5); -x_118 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_118, 0, x_116); -lean_ctor_set(x_118, 1, x_117); -return x_118; +x_116 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_116, 0, x_114); +lean_ctor_set(x_116, 1, x_115); +return x_116; } } } @@ -5684,21 +5693,17 @@ x_3 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___a return x_3; } } -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_4 = lean_box(0); -x_5 = lean_ctor_get(x_1, 2); -lean_inc(x_5); -lean_dec(x_1); -x_6 = lean_apply_1(x_5, x_2); +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_apply_1(x_1, x_4); x_7 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_7, 0, x_4); +lean_ctor_set(x_7, 0, x_2); lean_ctor_set(x_7, 1, x_6); x_8 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_8, 0, x_7); -lean_ctor_set(x_8, 1, x_3); +lean_ctor_set(x_8, 1, x_5); return x_8; } } @@ -5810,26 +5815,38 @@ return x_1; lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg(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; 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; x_4 = lean_ctor_get(x_2, 0); lean_inc(x_4); +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_5); +x_6 = lean_box(0); +x_7 = l_Array_empty___closed__1; +lean_inc(x_5); +x_8 = lean_apply_1(x_5, x_7); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_6); +lean_ctor_set(x_9, 1, x_8); +x_10 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_10, 0, x_9); +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_11, 0, x_5); +lean_closure_set(x_11, 1, x_6); lean_inc(x_2); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_5, 0, x_2); -lean_inc(x_2); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_6, 0, x_2); -x_7 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_7, 0, x_2); -x_8 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_9 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_9, 0, x_4); -lean_ctor_set(x_9, 1, x_5); -lean_ctor_set(x_9, 2, x_6); -lean_ctor_set(x_9, 3, x_7); -lean_ctor_set(x_9, 4, x_8); -x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__1___rarg(x_1, x_9, x_3); -return x_10; +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_12, 0, x_2); +x_13 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_13, 0, x_2); +x_14 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_15 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_15, 0, x_4); +lean_ctor_set(x_15, 1, x_10); +lean_ctor_set(x_15, 2, x_11); +lean_ctor_set(x_15, 3, x_12); +lean_ctor_set(x_15, 4, x_13); +lean_ctor_set(x_15, 5, x_14); +x_16 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_registerSimplePersistentEnvExtension___spec__1___rarg(x_1, x_15, x_3); +return x_16; } } lean_object* l_Lean_registerSimplePersistentEnvExtension(lean_object* x_1, lean_object* x_2) { @@ -5853,6 +5870,15 @@ x_7 = lean_box(x_6); return x_7; } } +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___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_registerSimplePersistentEnvExtension___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_3); +return x_6; +} +} lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___boxed(lean_object* x_1) { _start: { @@ -6550,443 +6576,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkTagDeclarationExtension___spec__5(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkTagDeclarationExtension___spec__5(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__6(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -6994,26 +7024,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkTagDeclarationExtension___spec__3(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__4(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkTagDeclarationExtension___spec__4(x_14, x_2); +return x_15; } } lean_object* l_Lean_mkTagDeclarationExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -9255,7 +9297,8 @@ x_16 = lean_ctor_get(x_13, 0); x_17 = lean_ctor_get(x_13, 1); lean_dec(x_17); lean_inc(x_16); -x_18 = lean_apply_2(x_14, x_16, x_5); +lean_inc(x_4); +x_18 = lean_apply_3(x_14, x_4, x_16, x_5); if (lean_obj_tag(x_18) == 0) { lean_object* x_19; lean_object* x_20; lean_object* x_21; @@ -9307,7 +9350,8 @@ x_27 = lean_ctor_get(x_13, 0); lean_inc(x_27); lean_dec(x_13); lean_inc(x_27); -x_28 = lean_apply_2(x_14, x_27, x_5); +lean_inc(x_4); +x_28 = lean_apply_3(x_14, x_4, x_27, x_5); if (lean_obj_tag(x_28) == 0) { lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; @@ -10776,12 +10820,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_namespacesExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_namespacesExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_namespacesExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_namespacesExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_namespacesExt___closed__1() { @@ -10802,7 +10846,7 @@ lean_object* _init_l_Lean_namespacesExt___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_namespacesExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_namespacesExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -10878,13 +10922,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_namespacesExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_namespacesExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_namespacesExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_namespacesExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* l_Lean_registerNamespace(lean_object* x_1, lean_object* x_2) { diff --git a/stage0/stdlib/Init/Lean/Meta/Instances.c b/stage0/stdlib/Init/Lean/Meta/Instances.c index 947a3d0a74..6ecf4eaefa 100644 --- a/stage0/stdlib/Init/Lean/Meta/Instances.c +++ b/stage0/stdlib/Init/Lean/Meta/Instances.c @@ -16,7 +16,7 @@ extern "C" { lean_object* l_Lean_Meta_mkInstanceExtension___lambda__1(lean_object*); lean_object* l_Array_back___at_Lean_Meta_addInstanceEntry___spec__14(lean_object*); lean_object* l_Lean_Meta_mkInstanceExtension___lambda__1___boxed(lean_object*); -lean_object* l_Lean_Meta_instanceExtension___elambda__4___boxed(lean_object*); +lean_object* l_Lean_Meta_instanceExtension___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addInstanceEntry___spec__1(lean_object*, lean_object*, lean_object*); size_t l_USize_add(size_t, size_t); lean_object* l_Lean_Meta_mkInstanceExtension___lambda__1___closed__1; @@ -85,7 +85,7 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_addGlobalInstance___spec__1(lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Meta_mkInstanceExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_instanceExtension___elambda__4(lean_object*); +lean_object* l_Lean_Meta_instanceExtension___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_Meta_mkInstanceExtension(lean_object*); lean_object* l_Lean_Meta_registerInstanceAttr___closed__2; extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3; @@ -121,10 +121,10 @@ uint8_t l_Lean_Syntax_isMissing(lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at_Lean_Meta_addInstanceEntry___spec__6(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at_Lean_Meta_addInstanceEntry___spec__3(lean_object*, size_t, lean_object*); lean_object* l_Lean_Meta_registerInstanceAttr___lambda__1___closed__1; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_registerInstanceAttr(lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Meta_registerInstanceAttr___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_back___at_Lean_Meta_addInstanceEntry___spec__14___boxed(lean_object*); uint8_t lean_expr_eqv(lean_object*, lean_object*); lean_object* l_Lean_registerTagAttribute___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -173,6 +173,7 @@ lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Meta_mkInstanceExtension___spec__1___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Meta_addInstanceEntry___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkInstanceExtension___closed__1; lean_object* l_Lean_mkConst(lean_object*, lean_object*); @@ -1836,443 +1837,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_System_FilePath_dirName___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_System_FilePath_dirName___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Meta_mkInstanceExtension___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Meta_mkInstanceExtension___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_System_FilePath_dirName___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_System_FilePath_dirName___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -2280,26 +2285,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_Meta_mkInstanceExtension___spec__4(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__5(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_mkInstanceExtension___spec__5(x_14, x_2); +return x_15; } } lean_object* _init_l_Lean_Meta_mkInstanceExtension___lambda__1___closed__1() { @@ -2464,12 +2481,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_Meta_instanceExtension___elambda__4(lean_object* x_1) { +lean_object* l_Lean_Meta_instanceExtension___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_instanceExtension___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Meta_instanceExtension___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_Meta_instanceExtension___closed__1() { @@ -2490,7 +2507,7 @@ lean_object* _init_l_Lean_Meta_instanceExtension___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Meta_instanceExtension___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Meta_instanceExtension___elambda__4___boxed), 2, 0); return x_1; } } @@ -2566,13 +2583,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Meta_instanceExtension___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_Meta_instanceExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_Meta_instanceExtension___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_Meta_instanceExtension___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* l___private_Init_Lean_Meta_Instances_1__mkInstanceKey(lean_object* x_1, lean_object* x_2, lean_object* x_3) { diff --git a/stage0/stdlib/Init/Lean/Modifiers.c b/stage0/stdlib/Init/Lean/Modifiers.c index 521150f882..df90119e68 100644 --- a/stage0/stdlib/Init/Lean/Modifiers.c +++ b/stage0/stdlib/Init/Lean/Modifiers.c @@ -63,7 +63,7 @@ lean_object* lean_io_ref_reset(lean_object*, lean_object*); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_protectedExt___elambda__3(lean_object*, lean_object*); lean_object* l_Lean_mkPrivateExtension___closed__1; -lean_object* l_Lean_protectedExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_protectedExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_privateExt; lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkTagDeclarationExtension(lean_object*, lean_object*); @@ -78,7 +78,7 @@ lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object* lean_object* l___private_Init_Lean_Modifiers_1__privateToUserNameAux(lean_object*); lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Lean_privateHeader___closed__2; -lean_object* l_Lean_protectedExt___elambda__4(lean_object*); +lean_object* l_Lean_protectedExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_protectedExt___closed__4; lean_object* l_Lean_mkProtectedExtension___closed__2; lean_object* lean_name_mk_numeral(lean_object*, lean_object*); @@ -146,19 +146,19 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_protectedExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_protectedExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_protectedExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_protectedExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_protectedExt___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_protectedExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_protectedExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -234,13 +234,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_protectedExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_protectedExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_protectedExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_protectedExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_add_protected(lean_object* x_1, lean_object* x_2) { diff --git a/stage0/stdlib/Init/Lean/Parser/Command.c b/stage0/stdlib/Init/Lean/Parser/Command.c index 62ff1d50f1..1dd1bb354c 100644 --- a/stage0/stdlib/Init/Lean/Parser/Command.c +++ b/stage0/stdlib/Init/Lean/Parser/Command.c @@ -250,6 +250,7 @@ lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_attribute___closed__10; lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_attrInstance___elambda__1___closed__4; lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Parser_Command_structFields; @@ -802,7 +803,6 @@ lean_object* l_Lean_Parser_Command_unsafe___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_openOnly___closed__5; lean_object* l_Lean_Parser_Command_infixl___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_check___elambda__1___closed__8; -lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__5; lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1___closed__4; @@ -16567,12 +16567,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_declaration(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_declaration___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_declaration; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_declaration___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_declaration; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_section___elambda__1___closed__1() { @@ -16945,12 +16946,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_section(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_section___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_section; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_section___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_section; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_namespace___elambda__1___closed__1() { @@ -17266,12 +17268,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_namespace(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_namespace___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_namespace; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_namespace___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_namespace; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_end___elambda__1___closed__1() { @@ -17633,12 +17636,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_end(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_end___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_end; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_end___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_end; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_variable___elambda__1___closed__1() { @@ -17954,12 +17958,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_variable(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_variable___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_variable; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_variable___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_variable; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_variables___elambda__1___closed__1() { @@ -18307,12 +18312,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_variables(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_variables___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_variables; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_variables___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_variables; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_universe___elambda__1___closed__1() { @@ -18628,12 +18634,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_universe(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_universe___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_universe; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_universe___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_universe; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_universes___elambda__1___closed__1() { @@ -18981,12 +18988,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_universes(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_universes___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_universes; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_universes___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_universes; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_check___elambda__1___closed__1() { @@ -19292,12 +19300,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_check(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_check___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_check; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_check___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_check; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_exit___elambda__1___closed__1() { @@ -19576,12 +19585,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_exit(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_exit___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_exit; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_exit___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_exit; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_resolve__name___elambda__1___closed__1() { @@ -19897,12 +19907,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_resolve__name(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_resolve__name___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_resolve__name; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_resolve__name___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_resolve__name; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_elab___elambda__1___closed__1() { @@ -20208,12 +20219,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_elab(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_elab___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_elab; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_elab___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_elab; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_init__quot___elambda__1___closed__1() { @@ -20484,12 +20496,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_init__quot(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_init__quot___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_init__quot; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_init__quot___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_init__quot; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_set__option___elambda__1___closed__1() { @@ -21099,12 +21112,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_set__option(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_set__option___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_set__option; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_set__option___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_set__option; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_attribute___elambda__1___closed__1() { @@ -21865,12 +21879,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_attribute(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_attribute___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_attribute; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_attribute___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_attribute; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_export___elambda__1___closed__1() { @@ -22435,12 +22450,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_export(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_export___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_export; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_export___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_export; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_openHiding___elambda__1___closed__1() { @@ -25039,12 +25055,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_open(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_open___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_open; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_open___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_open; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__1() { @@ -27851,12 +27868,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_reserve(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_reserve___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_reserve; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_reserve___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_reserve; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_Command_mixfixSymbol___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -28231,12 +28249,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_mixfix(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_mixfix; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_mixfix; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Command_identPrec___elambda__1___closed__1() { @@ -29221,12 +29240,13 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Command_notation(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinCommandParsingTable; -x_3 = l_Lean_Parser_Command_notation___elambda__1___closed__2; -x_4 = l_Lean_Parser_Command_notation; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinCommandParsingTable; +x_4 = l_Lean_Parser_Command_notation___elambda__1___closed__2; +x_5 = l_Lean_Parser_Command_notation; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* initialize_Init_Lean_Parser_Term(lean_object*); diff --git a/stage0/stdlib/Init/Lean/Parser/Level.c b/stage0/stdlib/Init/Lean/Parser/Level.c index 3ea23eda65..e78e420e39 100644 --- a/stage0/stdlib/Init/Lean/Parser/Level.c +++ b/stage0/stdlib/Init/Lean/Parser/Level.c @@ -51,6 +51,7 @@ lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__5; lean_object* l_Lean_Parser_Level_hole___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__3; lean_object* lean_string_append(lean_object*, lean_object*); @@ -116,7 +117,6 @@ lean_object* l_Lean_Parser_Level_paren___closed__4; lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkLevelParserAttribute___closed__3; lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__3; -lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); lean_object* l_Lean_Parser_Level_paren___closed__9; lean_object* l_Lean_Parser_Level_addLit___closed__7; @@ -156,7 +156,6 @@ lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__3; lean_object* l_Lean_Parser_Level_max___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Level_ident(lean_object*); lean_object* l_Lean_Parser_Level_addLit; -lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Syntax_getKind___closed__3; lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__13; @@ -795,12 +794,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_paren(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_paren___elambda__1___closed__4; -x_4 = l_Lean_Parser_Level_paren; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_paren___elambda__1___closed__4; +x_5 = l_Lean_Parser_Level_paren; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -1130,12 +1130,13 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Level_max(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_max___elambda__1___closed__1; -x_4 = l_Lean_Parser_Level_max; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_max___elambda__1___closed__1; +x_5 = l_Lean_Parser_Level_max; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Level_imax___elambda__1___closed__1() { @@ -1390,12 +1391,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_imax(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_imax___elambda__1___closed__1; -x_4 = l_Lean_Parser_Level_imax; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_5 = l_Lean_Parser_Level_imax; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Level_hole___elambda__1___closed__1() { @@ -1666,12 +1668,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_hole(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_hole___elambda__1___closed__2; -x_4 = l_Lean_Parser_Level_hole; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_hole___elambda__1___closed__2; +x_5 = l_Lean_Parser_Level_hole; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Level_num___elambda__1___closed__1() { @@ -1829,12 +1832,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_num(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_num___elambda__1___closed__2; -x_4 = l_Lean_Parser_Level_num; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_num___elambda__1___closed__2; +x_5 = l_Lean_Parser_Level_num; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Level_ident___elambda__1___closed__1() { @@ -2003,12 +2007,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_ident(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_ident___elambda__1___closed__1; -x_4 = l_Lean_Parser_Level_ident; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_ident___elambda__1___closed__1; +x_5 = l_Lean_Parser_Level_ident; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Level_addLit___elambda__1___closed__1() { @@ -2245,12 +2250,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_addLit(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinLevelParsingTable; -x_3 = l_Lean_Parser_Level_addLit___elambda__1___closed__2; -x_4 = l_Lean_Parser_Level_addLit; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinLevelParsingTable; +x_4 = l_Lean_Parser_Level_addLit___elambda__1___closed__2; +x_5 = l_Lean_Parser_Level_addLit; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* initialize_Init_Lean_Parser_Parser(lean_object*); diff --git a/stage0/stdlib/Init/Lean/Parser/Parser.c b/stage0/stdlib/Init/Lean/Parser/Parser.c index 606cb1b762..d2438aaa2c 100644 --- a/stage0/stdlib/Init/Lean/Parser/Parser.c +++ b/stage0/stdlib/Init/Lean/Parser/Parser.c @@ -30,20 +30,20 @@ extern lean_object* l_Lean_Name_toString___closed__1; lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_charLit___closed__1; lean_object* l_Lean_Parser_andthenInfo___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_AttributeImpl_inhabited___lambda__5(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolAux___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hashOrelse(uint8_t); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__7___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___closed__1; extern lean_object* l_Lean_fieldIdxKind; lean_object* l_Lean_Syntax_forArgsM___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTermParserAttribute(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrec___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___rarg(lean_object*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__1; uint8_t l_RBNode_isRed___rarg(lean_object*); lean_object* l_Lean_Parser_andthenFn___boxed(lean_object*); uint8_t l_Lean_Parser_checkTailWs(lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_try(uint8_t, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed(lean_object*); @@ -64,12 +64,15 @@ lean_object* l_Lean_Parser_manyFn___boxed(lean_object*, lean_object*, lean_objec lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Parser_sepByInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_shrinkStack___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1___rarg___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_decimalNumberFn___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nameToExprAux___main___closed__1; lean_object* l_Lean_Syntax_foldSepRevArgsM(lean_object*, lean_object*); +lean_object* l_unreachable_x21___rarg(lean_object*); extern lean_object* l_Lean_nullKind; lean_object* l_Lean_Parser_andthenAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -111,19 +114,17 @@ lean_object* l_Lean_Parser_trailingLoop___main(lean_object*, lean_object*, lean_ lean_object* l_Array_foldSepBy___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString___main(lean_object*); lean_object* l_Lean_Parser_longestMatchFn(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___closed__1; -lean_object* l_Lean_Parser_parserAttributeTable; lean_object* l_Lean_Syntax_foldSepArgs___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_decimalNumberFn___spec__2(lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); extern lean_object* l_Lean_nameToExprAux___main___closed__4; -lean_object* l_Lean_AttributeImpl_inhabited___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn_u2081___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Trie_matchPrefix___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_octalNumberFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_stackSize___boxed(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1(uint8_t, lean_object*); lean_object* l_Lean_Parser_octalNumberFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_identFnAux___main___spec__4___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexNumberFn(lean_object*, lean_object*, lean_object*); @@ -131,13 +132,18 @@ lean_object* l_Array_foldSepBy___rarg___boxed(lean_object*, lean_object*, lean_o lean_object* l_Lean_Parser_strLitFnAux(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_6__updateCache(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTermParserAttribute___closed__3; +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__10; lean_object* l_Lean_Parser_mkTermParserAttribute___closed__5; lean_object* l_Lean_Parser_ParserState_next(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4; lean_object* l_Array_extract___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParser(uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionalFn___boxed(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_15__addParserAttribute(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); extern lean_object* l_Lean_stxInh; lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_Error_HasToString___closed__1; lean_object* l_Lean_Parser_runBuiltinParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6___rarg(lean_object*, lean_object*, lean_object*); @@ -149,7 +155,6 @@ lean_object* l_Lean_Parser_rawCh___elambda__1___rarg(uint32_t, uint8_t, lean_obj lean_object* l_Lean_Parser_group(uint8_t, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___closed__1; lean_object* l_Lean_Parser_ident(uint8_t); -lean_object* l_Lean_Parser_mkImportedTokenTable(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_whitespace___main___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_binNumberFn___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_fieldIdxKind___closed__1; @@ -157,8 +162,10 @@ lean_object* l_Lean_Parser_unquotedSymbolFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenConfig_HasBeq___closed__1; lean_object* lean_io_mk_ref(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkColGe(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute___closed__4; lean_object* l_Lean_Parser_dollarSymbol___boxed(lean_object*); lean_object* l_Lean_Parser_ParserAttribute_Inhabited; +lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenAux(lean_object*, lean_object*, lean_object*); uint8_t l_Char_isDigit(uint32_t); lean_object* l_Lean_Parser_runBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); @@ -166,6 +173,8 @@ lean_object* l_Lean_Parser_mkParserState(lean_object*); lean_object* l_List_append___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParsingTables_inhabited; lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1(uint8_t, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* lean_io_ref_get(lean_object*, lean_object*); @@ -173,16 +182,15 @@ lean_object* l_Lean_Parser_satisfyFn___boxed(lean_object*, lean_object*, lean_ob lean_object* l_Lean_Parser_declareBuiltinParser___closed__5; lean_object* l_Lean_Parser_strLit___boxed(lean_object*); lean_object* l_Lean_Syntax_getOptionalIdent(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___boxed(lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__9; lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__3; lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5(lean_object*); lean_object* l_Lean_Parser_symbolNoWsFn___closed__1; uint8_t l_Lean_isIdBeginEscape(uint32_t); lean_object* l_Lean_Parser_declareBuiltinParser___closed__3; -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg(lean_object*, lean_object*); lean_object* l_Array_foldSepByM(lean_object*, lean_object*); -lean_object* l_Lean_EnvExtension_Inhabited___rarg___lambda__1(lean_object*); lean_object* l_Lean_Parser_orelseFn(uint8_t); extern lean_object* l_Lean_Position_Inhabited___closed__1; lean_object* l_Lean_Parser_symbolNoWsFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -193,7 +201,9 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___sp lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_try___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__4; +lean_object* l_Lean_Parser_addBuiltinParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1(uint8_t); lean_object* lean_array_get_size(lean_object*); @@ -203,7 +213,6 @@ lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); -lean_object* l_Lean_AttributeImpl_inhabited___lambda__4___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__7(lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo(lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__1; @@ -211,7 +220,6 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___sp lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_binNumberFn___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_string_utf8_extract(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__1; -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1___boxed(lean_object*, lean_object*); uint8_t l_Char_isWhitespace(uint32_t); extern lean_object* l_String_splitAux___main___closed__1; lean_object* l_Lean_Parser_withPosition(uint8_t, lean_object*); @@ -235,6 +243,7 @@ lean_object* l_Lean_Parser_insertToken___closed__4; lean_object* l_Lean_Parser_mkNodeToken___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_initCacheForInput___boxed(lean_object*); lean_object* l_Lean_Parser_symbolNoWs___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__12; lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__2; lean_object* l_Lean_Syntax_foldSepArgsM___boxed(lean_object*, lean_object*); @@ -246,19 +255,17 @@ lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, lean_object lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFn___rarg___closed__1; lean_object* l_Lean_Parser_checkColGeFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__4; lean_object* l_Lean_Parser_quotedSymbolFn(uint8_t); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__4; -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_insertToken(lean_object*, lean_object*, lean_object*); extern lean_object* l_Nat_HasOfNat___closed__1; lean_object* l_Lean_Parser_tokenTableAttribute; -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFnAux___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit___closed__1; lean_object* l_Lean_Parser_symbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkImportedTokenTable___boxed(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_termParser___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_termParserAttribute; @@ -267,7 +274,6 @@ lean_object* l_Lean_Syntax_foldArgsM___rarg___boxed(lean_object*, lean_object*, lean_object* l_Lean_Parser_charLitFn___rarg___closed__1; lean_object* l_HashMapImp_moveEntries___main___at_Lean_Parser_registerParserAttribute___spec__8(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2; -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_ident___closed__1; lean_object* l_Lean_Parser_finishCommentBlock___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__3; @@ -292,9 +298,10 @@ lean_object* l_Lean_Parser_numLit___boxed(lean_object*); lean_object* l_Lean_Parser_insertToken___closed__3; lean_object* l_Lean_Parser_identFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser___closed__1; +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__11; +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; lean_object* l_Lean_Parser_numLit___closed__1; lean_object* l_Lean_Parser_rawIdentFn(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_8__updateTokens(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserAttributeTable___closed__1; lean_object* l_Lean_Parser_indexed(lean_object*); @@ -305,12 +312,12 @@ lean_object* l_Lean_Parser_mkAntiquot___closed__5; lean_object* l_Lean_Parser_TokenConfig_HasToString; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___boxed(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Syntax_forArgsM(lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__3; lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main(lean_object*, lean_object*); lean_object* l_Lean_Parser_decimalNumberFn(lean_object*, lean_object*, lean_object*); @@ -320,6 +327,7 @@ lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__1; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_quotedSymbolFn___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser___closed__2; lean_object* l_Lean_Parser_unicodeSymbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_tryFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -327,6 +335,7 @@ lean_object* l_Lean_Parser_initCacheForInput(lean_object*); lean_object* l_Lean_Parser_symbolNoWsAux(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_identFnAux___main___spec__4(lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Trie_HasEmptyc___closed__1; lean_object* l_Lean_Parser_mkIdResult___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__1; @@ -337,10 +346,10 @@ lean_object* l_Lean_Parser_termParser___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1(lean_object*); lean_object* l_Lean_Parser_takeWhileFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__1(lean_object*); -lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__1; lean_object* l_Lean_Parser_identNoAntiquot___closed__1; lean_object* l_Lean_Parser_ParserState_setPos(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__3(lean_object*); lean_object* l_Lean_Parser_quotedSymbol___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_mkTokenAndFixPos___closed__1; extern lean_object* l_Lean_Syntax_getKind___closed__4; @@ -349,6 +358,7 @@ lean_object* l_Lean_Parser_whitespace___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_insertToken___closed__5; lean_object* l_Lean_Parser_mkTokenAndFixPos___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkColGe___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkNoWsBeforeFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); @@ -356,12 +366,12 @@ lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2(lean_object*); lean_object* l_Lean_Parser_manyAux___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main(uint8_t, lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone(uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_Lean_Parser_registerParserAttribute___spec__9(lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg(lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_rawCh___elambda__1___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_HasBeq___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1; lean_object* l_Lean_Syntax_foldSepArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited(uint8_t); lean_object* l___private_Init_Lean_Parser_Parser_7__mkResult(lean_object*, lean_object*); @@ -370,11 +380,11 @@ lean_object* l_Lean_Parser_dollarSymbol___elambda__1___boxed(lean_object*, lean_ lean_object* l_Lean_Parser_ParserContextCore_inhabited; lean_object* l_Lean_Parser_takeUntilFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(lean_object*, lean_object*); +lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__5; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2(uint32_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_lookaheadFn(uint8_t); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2___closed__1; extern lean_object* l_Lean_EnvExtension_Inhabited___rarg___closed__1; lean_object* l_Lean_Parser_symbolNoWsFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*); @@ -391,8 +401,10 @@ lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__3; lean_object* l_Lean_Parser_quotedSymbol(uint8_t); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1(lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__5; +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepLatest(lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkLeadingFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepRevArgsM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -402,6 +414,7 @@ lean_object* l_Lean_Parser_checkNoWsBefore(uint8_t, lean_object*); extern lean_object* l_Lean_choiceKind___closed__2; lean_object* l_Lean_Parser_checkWsBefore___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; lean_object* l_Lean_Parser_checkLeadingFn___closed__1; extern lean_object* l_Lean_strLitKind; lean_object* l_Lean_Parser_insertNoWsToken___closed__1; @@ -412,18 +425,21 @@ lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgs(lean_object*); lean_object* l_Lean_Parser_nodeInfo___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_merge(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkWsBeforeFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_append___main(lean_object*, lean_object*); extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepLatest___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbol___elambda__1(uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkColGe___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_node___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Syntax_foldArgsM(lean_object*, lean_object*); lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_insertToken___closed__2; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_insertToken___closed__1; lean_object* l_Lean_Parser_fieldIdx___closed__3; @@ -431,7 +447,7 @@ lean_object* l_Lean_Parser_trailingLoop___main___boxed(lean_object*, lean_object uint8_t l_Lean_Parser_Error_beq(lean_object*, lean_object*); lean_object* l_Lean_Parser_runParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepNewError(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbol(uint8_t, lean_object*, lean_object*); lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_anyOfFn___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -448,16 +464,18 @@ lean_object* l_Lean_Parser_optionaInfo(lean_object*); lean_object* l_Lean_Parser_FirstTokens_seq(lean_object*, lean_object*); lean_object* l_Lean_Parser_peekToken(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_toString___closed__4; -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addLeadingParser___closed__1; lean_object* l_Lean_Parser_anyOfFn___main___closed__1; extern lean_object* l_Lean_strLitKind___closed__1; lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__2(lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstant___closed__1; lean_object* l_Lean_Parser_ParserContextCore_toParserContext(lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux(uint8_t, lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString___main___closed__1; lean_object* l_Lean_Parser_binNumberFn(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2___boxed(lean_object*); +lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstant___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_HasBeq; extern lean_object* l___private_Init_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1; lean_object* l_Lean_Parser_Error_Inhabited___closed__1; @@ -465,6 +483,7 @@ lean_object* l_Lean_Parser_ParserState_shrinkStack(lean_object*, lean_object*); uint8_t l_Lean_Parser_checkTailNoWs(lean_object*); lean_object* l_Lean_Parser_checkTailWs___boxed(lean_object*); lean_object* l_Lean_Parser_charLitFn(uint8_t, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone(uint8_t); lean_object* l_Lean_Parser_trailingLoopStep(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_andthenFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchStep(uint8_t); @@ -472,20 +491,25 @@ lean_object* l_Lean_Parser_strLitFn(uint8_t, lean_object*); lean_object* l_Lean_Parser_nodeFn___boxed(lean_object*); lean_object* l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; lean_object* l_Lean_Parser_mkAntiquot___closed__12; +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; size_t l_Lean_Name_hash(lean_object*); +lean_object* l_Lean_Parser_addToken(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Nat_repr(lean_object*); extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_Parser_checkWsBefore(uint8_t, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1; lean_object* l_Lean_Parser_checkNoWsBeforeFn(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_4__isToken___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_setCache(lean_object*, lean_object*); +lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_strAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__10; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_chFn___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkIdResult(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_decimalNumberFn___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_octalNumberFn___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_parserAttributeTableRef; lean_object* l_Lean_Parser_orelseInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_sepByFn(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -493,6 +517,7 @@ lean_object* l_Lean_Parser_fieldIdx___closed__2; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_chFn___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getId(lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__8; lean_object* l_Lean_Parser_rawCh___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_moveEntries___main___at_Lean_Parser_nodeInfo___elambda__1___spec__4(lean_object*, lean_object*, lean_object*); lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(lean_object*, lean_object*); @@ -510,24 +535,26 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___sp lean_object* l_Lean_Parser_TokenTableAttribute_inhabited; extern lean_object* l_List_reprAux___main___rarg___closed__1; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__9; lean_object* l_Lean_Parser_TokenMap_Inhabited(lean_object*); lean_object* l_Lean_Parser_rawIdent(uint8_t); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__3; lean_object* l_Lean_Parser_FirstTokens_merge(lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_eval_const(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserFn_inhabited(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTermParserAttribute___closed__4; lean_object* l_Lean_Parser_ParserState_mkEOIError___closed__1; -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__5(lean_object*, lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(lean_object*, lean_object*); uint8_t l_Lean_Parser_isIdCont(lean_object*, lean_object*); lean_object* l_Lean_Parser_mergeOrElseErrors___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr(lean_object*, uint8_t, lean_object*); +lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2___boxed(lean_object*, lean_object*, lean_object*); -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hashAndthen(uint8_t); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3___boxed(lean_object*, lean_object*); @@ -535,6 +562,8 @@ lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___boxed(lean_object*) uint32_t lean_string_utf8_get(lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__7; lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__8; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__13; lean_object* l_Lean_Parser_termParser___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTokenTableAttribute(lean_object*); @@ -543,7 +572,6 @@ lean_object* l_Lean_Parser_registerParserAttribute___closed__3; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_octalNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolFn(uint8_t); lean_object* l_Lean_Parser_ParserState_hasError___boxed(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1; lean_object* l_Lean_Parser_unicodeSymbol___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeInfo___elambda__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___closed__1; @@ -559,9 +587,9 @@ lean_object* l_Lean_Parser_Parser_inhabited___lambda__1(lean_object*, lean_objec lean_object* l_Lean_Parser_checkTailNoWs___boxed(lean_object*); lean_object* l_Lean_Parser_symbolNoWsAux___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Parser_symbolNoWsInfo(lean_object*, lean_object*); -lean_object* l_Lean_Parser_updateSyntaxNodeKinds(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); @@ -579,15 +607,24 @@ lean_object* l_Lean_Parser_ParsingTables_inhabited___closed__1; lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFnAux___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute___closed__5; lean_object* l_Lean_Parser_Error_toString___closed__2; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Data_Trie_3__findAux___main___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__6; +lean_object* l_IO_Prim_Ref_get___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchMkResult(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Trie_Inhabited(lean_object*); lean_object* l_Lean_FileMap_ofString(lean_object*); +lean_object* l_Lean_Parser_updateBuiltinSyntaxNodeKinds(lean_object*, lean_object*); lean_object* l_Lean_Parser_whitespace(lean_object*, lean_object*); +lean_object* l_List_redLength___main___rarg(lean_object*); lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__4; +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___boxed(lean_object*); lean_object* l_Lean_Parser_rawCh(uint8_t, uint32_t, uint8_t); lean_object* l_mkHashMapImp___rarg(lean_object*); lean_object* l_Lean_Parser_many1Indent___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -596,13 +633,13 @@ lean_object* l_Lean_Parser_ParserState_restore___boxed(lean_object*, lean_object lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); lean_object* l_Lean_Parser_ParserState_restore(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolAux(uint8_t, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry(lean_object*, lean_object*); lean_object* l_Lean_Parser_isValidSyntaxNodeKind___boxed(lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_popSyntax(lean_object*); lean_object* l_Lean_Parser_checkWsBefore___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_termParser(uint8_t, lean_object*); -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepByFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkBuiltinTokenTable(lean_object*); lean_object* l_Lean_Parser_FirstTokens_toStr___closed__3; @@ -612,6 +649,7 @@ lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, l lean_object* l_Lean_Parser_runBuiltinParserUnsafe___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_ident___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addTrailingParser(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__7; lean_object* l_HashMapImp_expand___at_Lean_Parser_registerParserAttribute___spec__7(lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn(uint8_t); @@ -621,7 +659,7 @@ lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_quotedSymbolFn___spec__1(u lean_object* l_Lean_Parser_rawIdent___boxed(lean_object*); lean_object* l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1; lean_object* l_Lean_Parser_mkAntiquot___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isIdEndEscape(uint32_t); lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); @@ -629,13 +667,16 @@ lean_object* l_Lean_Syntax_foldSepArgsM___rarg(lean_object*, lean_object*, lean_ lean_object* l_Lean_Syntax_foldArgsAuxM___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__1; lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_14__addParserAttributeEntry(lean_object*, lean_object*); lean_object* l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__4; lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addBuiltinLeadingParser___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___elambda__2(uint8_t); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__2; lean_object* l_Lean_ParametricAttribute_setParam___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__4; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn___closed__1; lean_object* l_Lean_Parser_charLitFnAux___closed__1; @@ -646,6 +687,7 @@ lean_object* l_Lean_Parser_hexDigitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mergeErrors___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldSepBy(lean_object*); lean_object* l_Lean_Parser_ident___elambda__1___boxed(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_trailingNode(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn___boxed(lean_object*, lean_object*); @@ -658,6 +700,7 @@ extern lean_object* l_Lean_AttributeImpl_inhabited___closed__6; lean_object* l_Lean_Parser_TokenConfig_beq___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; lean_object* l_Lean_Parser_noFirstTokenInfo___elambda__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__2; uint8_t l_Lean_Syntax_isMissing(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrec(lean_object*, lean_object*, lean_object*); @@ -669,13 +712,14 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___sp lean_object* l_Lean_Parser_tryFn___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldSepByM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkErrorAt(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdxFn___closed__1; lean_object* l_Lean_Parser_ident___elambda__1(uint8_t); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__13; lean_object* l_Lean_Parser_Error_HasToString; lean_object* l_Lean_Parser_trailingLoop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbol___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkNoWsBefore___boxed(lean_object*, lean_object*); uint8_t l_UInt32_decEq(uint32_t, uint32_t); @@ -685,8 +729,9 @@ lean_object* l_String_intercalate(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Parser_numLit(uint8_t); lean_object* l_Lean_Parser_leadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2___closed__2; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexDigitFn(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_runBuiltinParser___rarg___boxed(lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___closed__2; lean_object* l_Lean_Parser_FirstTokens_HasToString___closed__1; @@ -704,6 +749,8 @@ lean_object* l_Lean_Parser_string2basic___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepNewError___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerTagAttribute___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1; +extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___closed__2; lean_object* l_Lean_Parser_ParserState_mkUnexpectedErrorAt(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkInitAttr___lambda__1___closed__1; lean_object* l_Lean_Parser_mergeOrElseErrors(lean_object*, lean_object*, lean_object*); @@ -730,15 +777,20 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__1 lean_object* l_mkHashMap___at_Lean_Parser_mkParserAttributeTable___spec__1(lean_object*); lean_object* l_Lean_Parser_chFn___boxed(lean_object*); lean_object* l_Lean_Parser_isValidSyntaxNodeKind(lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__6; lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__2; lean_object* l_Lean_Parser_symbolOrIdentFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerTagAttribute___lambda__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; lean_object* l_Lean_Parser_Error_beq___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseInfo___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserAttribute_mkParser(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2; lean_object* l_Lean_Parser_FirstTokens_toStr___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__1; +lean_object* l_Lean_Parser_addLeadingParser(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___boxed(lean_object*); lean_object* l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___boxed(lean_object*, lean_object*); @@ -747,7 +799,6 @@ lean_object* l_Lean_Parser_symbolInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; lean_object* l_Lean_Parser_TokenConfig_toStr(lean_object*); -lean_object* l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(lean_object*); lean_object* l_Lean_Parser_numLitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Fn(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -755,17 +806,17 @@ lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_octalNumberFn___spec__1___ extern lean_object* l___private_Init_Util_1__mkPanicMessage___closed__2; lean_object* l_Lean_Syntax_foldArgsAuxM___main___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo; -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___boxed(lean_object*); lean_object* l_Lean_Parser_lookaheadFn___boxed(lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6(lean_object*); lean_object* l_Lean_Parser_anyOfFn___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4___rarg(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_EnvExtensionState_inhabited; lean_object* l_List_toString___at_Lean_Parser_FirstTokens_toStr___spec__1(lean_object*); lean_object* l_Lean_Parser_insertNoWsToken(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___closed__3; lean_object* l_Lean_Parser_unquotedSymbol(uint8_t); +lean_object* l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(lean_object*); lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_13__addImportedParsers(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_whitespace___main___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__3; @@ -791,10 +842,11 @@ lean_object* l_Lean_Syntax_getOptional___boxed(lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelse___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_builtinTermParsingTable; +lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1; lean_object* l_Lean_Parser_dollarSymbol___elambda__1(uint8_t, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object*); lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1(uint8_t); lean_object* l_RBNode_setBlack___rarg(lean_object*); lean_object* l_Lean_Parser_noFirstTokenInfo___elambda__2(lean_object*, lean_object*); @@ -808,16 +860,20 @@ lean_object* l_Lean_Parser_dollarSymbol___closed__2; lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_numberFnAux___closed__1; +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__5; lean_object* l_Lean_Syntax_forSepArgsM___boxed(lean_object*); lean_object* l_Lean_Parser_isIdCont___boxed(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); lean_object* l_Lean_Parser_strAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhile1Fn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__2; +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__7; lean_object* l_Array_getEvenElems(lean_object*); lean_object* l_Lean_Parser_epsilonInfo___closed__1; lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon(uint8_t); +uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerParserAttribute___closed__1; lean_object* l_Lean_Parser_andthen___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_FileMap_Inhabited___closed__1; @@ -828,6 +884,7 @@ lean_object* l_String_trim(lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_forSepArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn(uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_regBuiltinTermParserAttr(lean_object*); @@ -849,11 +906,12 @@ lean_object* l_Lean_Parser_ParserState_mkLongestNodeAlt(lean_object*, lean_objec lean_object* l_Lean_Syntax_isNone___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepRevArgsM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_currLbp(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstant(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhile1Fn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerParserAttribute___closed__2; -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___rarg(lean_object*); lean_object* lean_io_initializing(lean_object*); lean_object* l_Array_getEvenElems___boxed(lean_object*); +lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_Parser_sepByInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo___closed__1; @@ -862,7 +920,6 @@ lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux(uint8_t); lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__6; lean_object* l_Lean_Parser_rawIdent___closed__1; -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_getSyntaxNodeKinds(lean_object*); lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Syntax_getKind___closed__3; @@ -870,9 +927,11 @@ lean_object* l_Lean_Parser_string2basic(uint8_t, lean_object*); lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_pushLeadingFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionaInfo___elambda__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_leadingNode(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_toErrorMsg(lean_object*, lean_object*); lean_object* l_Lean_mkStxLit(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__2(lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___closed__1; lean_object* l_Lean_Parser_Error_toString___closed__3; @@ -888,34 +947,36 @@ lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___ lean_object* l_Lean_Parser_ParserState_next___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg(lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Info___elambda__2(lean_object*, lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__2(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString(lean_object*); lean_object* l_Lean_Parser_orelse(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getOptional(lean_object*); lean_object* l_Lean_Parser_runBuiltinParserUnsafe___closed__1; uint8_t l_List_beq___main___at_Lean_Parser_Error_toString___spec__1(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_8__addTokenConfig(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn(uint8_t); lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__4; lean_object* l_Lean_Syntax_foldArgsAuxM(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unquotedSymbol___elambda__1(uint8_t, lean_object*); -lean_object* l_Lean_Parser_mkImportedTokenTable___rarg(lean_object*); lean_object* l_HashMapImp_expand___at_Lean_Parser_nodeInfo___elambda__1___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Syntax_forArgsM___boxed(lean_object*); -lean_object* l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(lean_object*); lean_object* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___spec__2(uint8_t, lean_object*); +lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_andthen(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_node(uint8_t, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_lookahead___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_syntaxNodeKindSetRef; lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__8; -lean_object* l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4___boxed(lean_object*, lean_object*); uint8_t l_List_isEmpty___rarg(lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__7; lean_object* l_Lean_Parser_unicodeSymbolInfo(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identNoAntiquot(uint8_t); @@ -932,6 +993,7 @@ lean_object* l_Lean_Parser_mkAtomicInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_FirstTokens_toOptional(lean_object*); lean_object* l_mkHashMap___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1(lean_object*); lean_object* l_Lean_Parser_checkWsBefore___elambda__1(uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_13__addImportedParsers___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkUnexpectedError(lean_object*, lean_object*); uint8_t l_UInt32_decLe(uint32_t, uint32_t); extern lean_object* l_Lean_AttributeImpl_inhabited___closed__5; @@ -941,6 +1003,7 @@ uint8_t l_Lean_Parser_ParserState_hasError(lean_object*); lean_object* l_Lean_Parser_symbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexDigitFn___closed__1; lean_object* l_Lean_Parser_mkAtom(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_currLbp___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkEOIError(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -955,16 +1018,19 @@ lean_object* l_Lean_Parser_ParserState_keepPrevError(lean_object*, lean_object*, lean_object* l_Lean_Parser_checkWsBefore___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_ParserFn_inhabited___rarg___boxed(lean_object*); lean_object* l_Lean_Parser_orelseFn___boxed(lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; lean_object* l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2___boxed(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4(lean_object*); lean_object* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___spec__2___boxed(lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___boxed(lean_object*); +lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__3; +lean_object* l___private_Init_Lean_Parser_Parser_15__addParserAttribute___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___closed__1; lean_object* l_Lean_Parser_checkColGe___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_numLitFn___rarg(lean_object*, lean_object*); uint8_t l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__5; lean_object* l___private_Init_Lean_Data_Trie_2__insertAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_identFnAux___main___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLitFn___rarg(lean_object*, lean_object*); @@ -978,11 +1044,9 @@ lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__2; lean_object* l_Lean_Parser_mkAntiquot___closed__2; lean_object* l_Lean_Parser_addBuiltinTrailingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__2; -uint8_t l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited___closed__1; lean_object* l_Lean_Parser_checkWsBefore___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getTailInfo___main(lean_object*); -lean_object* l_ExceptT_Monad___rarg___lambda__8___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__1; extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; extern lean_object* l_Lean_initAttr; @@ -1000,13 +1064,11 @@ lean_object* l_Lean_Parser_manyAux___boxed(lean_object*, lean_object*, lean_obje lean_object* l_Lean_Parser_group___boxed(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__3___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon(uint8_t); lean_object* l_Lean_Parser_sepBy1Info___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit(uint8_t); lean_object* l_Lean_Parser_many1(uint8_t, lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___closed__2; lean_object* l_Lean_Parser_sepBy___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_fmt___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object*); lean_object* l_Lean_Parser_trailingLoop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbol___boxed(lean_object*); lean_object* l_Lean_Parser_symbolOrIdent(uint8_t, lean_object*); @@ -1016,6 +1078,7 @@ uint8_t l_Lean_isIdRest(uint32_t); lean_object* l_Lean_Parser_numberFnAux___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdxFn(lean_object*, lean_object*); uint8_t l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___boxed(lean_object*); lean_object* l_Lean_Parser_mkIdent(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_withPosition___boxed(lean_object*, lean_object*); uint8_t lean_string_dec_eq(lean_object*, lean_object*); @@ -1023,6 +1086,7 @@ lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1___box uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; uint8_t l_Lean_Syntax_isIdent(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__1; lean_object* l_Lean_Parser_ParserFn_inhabited___boxed(lean_object*, lean_object*, lean_object*); @@ -24120,80 +24184,426 @@ x_3 = lean_io_mk_ref(x_2, x_1); return x_3; } } -lean_object* l_Lean_Parser_mkImportedTokenTable___rarg(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_8__addTokenConfig(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Parser_builtinTokenTable; -x_3 = lean_io_ref_get(x_2, x_1); -if (lean_obj_tag(x_3) == 0) +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_2, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_2, 1); +lean_inc(x_4); +lean_inc(x_3); +x_5 = l_Lean_Parser_insertToken(x_3, x_4, x_1); +if (lean_obj_tag(x_5) == 0) { -uint8_t x_4; -x_4 = !lean_is_exclusive(x_3); -if (x_4 == 0) -{ -return x_3; -} -else -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_5 = lean_ctor_get(x_3, 0); -x_6 = lean_ctor_get(x_3, 1); -lean_inc(x_6); -lean_inc(x_5); +uint8_t x_6; lean_dec(x_3); -x_7 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_7, 0, x_5); -lean_ctor_set(x_7, 1, x_6); -return x_7; +lean_dec(x_2); +x_6 = !lean_is_exclusive(x_5); +if (x_6 == 0) +{ +return x_5; +} +else +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_8, 0, x_7); +return x_8; } } else { -uint8_t x_8; -x_8 = !lean_is_exclusive(x_3); -if (x_8 == 0) -{ -return x_3; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_3, 0); -x_10 = lean_ctor_get(x_3, 1); -lean_inc(x_10); +lean_object* x_9; +x_9 = lean_ctor_get(x_2, 2); lean_inc(x_9); +lean_dec(x_2); +if (lean_obj_tag(x_9) == 0) +{ +uint8_t x_10; lean_dec(x_3); -x_11 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; +x_10 = !lean_is_exclusive(x_5); +if (x_10 == 0) +{ +return x_5; +} +else +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_5, 0); +lean_inc(x_11); +lean_dec(x_5); +x_12 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_12, 0, x_11); +return x_12; +} +} +else +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_5, 0); +lean_inc(x_13); +lean_dec(x_5); +x_14 = l_Lean_Parser_insertNoWsToken(x_3, x_9, x_13); +return x_14; } } } } -lean_object* l_Lean_Parser_mkImportedTokenTable(lean_object* x_1) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_mkImportedTokenTable___rarg), 1, 0); -return x_2; +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_2); +return x_6; } } -lean_object* l_Lean_Parser_mkImportedTokenTable___boxed(lean_object* x_1) { +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_2; -x_2 = l_Lean_Parser_mkImportedTokenTable(x_1); +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_get_size(x_2); +x_7 = lean_nat_dec_lt(x_3, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; +lean_dec(x_3); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_4); +lean_ctor_set(x_8, 1, x_5); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_9 = lean_array_fget(x_2, x_3); +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_add(x_3, x_10); +lean_dec(x_3); +x_12 = l___private_Init_Lean_Parser_Parser_8__addTokenConfig(x_4, x_9); +x_13 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1(x_12, x_5); +lean_dec(x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_3 = x_11; +x_4 = x_14; +x_5 = x_15; +goto _start; +} +else +{ +uint8_t x_17; +lean_dec(x_11); +x_17 = !lean_is_exclusive(x_13); +if (x_17 == 0) +{ +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_13, 0); +x_19 = lean_ctor_get(x_13, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_13); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___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; +x_6 = lean_array_get_size(x_2); +x_7 = lean_nat_dec_lt(x_3, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; +lean_dec(x_3); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_4); +lean_ctor_set(x_8, 1, x_5); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_9 = lean_array_fget(x_2, x_3); +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_add(x_3, x_10); +lean_dec(x_3); +x_12 = lean_unsigned_to_nat(0u); +x_13 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2(x_9, x_9, x_12, x_4, x_5); +lean_dec(x_9); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_3 = x_11; +x_4 = x_14; +x_5 = x_15; +goto _start; +} +else +{ +uint8_t x_17; +lean_dec(x_11); +x_17 = !lean_is_exclusive(x_13); +if (x_17 == 0) +{ +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_13, 0); +x_19 = lean_ctor_get(x_13, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_13); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_builtinTokenTable; +x_4 = lean_io_ref_get(x_3, x_2); +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_4, 1); +lean_inc(x_6); +lean_dec(x_4); +x_7 = lean_unsigned_to_nat(0u); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__3(x_1, x_1, x_7, x_5, x_6); +if (lean_obj_tag(x_8) == 0) +{ +uint8_t x_9; +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_8, 0); +x_11 = lean_box(0); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_10); +lean_ctor_set(x_8, 0, x_12); +return x_8; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_13 = lean_ctor_get(x_8, 0); +x_14 = lean_ctor_get(x_8, 1); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_8); +x_15 = lean_box(0); +x_16 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_13); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_14); +return x_17; +} +} +else +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_8); +if (x_18 == 0) +{ +return x_8; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_8, 0); +x_20 = lean_ctor_get(x_8, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_8); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_20); +return x_21; +} +} +} +else +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_4); +if (x_22 == 0) +{ +return x_4; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_4, 0); +x_24 = lean_ctor_get(x_4, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_4); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} +} +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__1(x_1, x_2); lean_dec(x_1); -return x_2; +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__2(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___spec__3(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Trie_Inhabited(lean_box(0)); +return x_1; +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1; +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; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 1); +lean_inc(x_3); +lean_inc(x_2); +x_4 = l___private_Init_Lean_Parser_Parser_8__addTokenConfig(x_3, x_2); +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_5 = l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2; +x_6 = l_unreachable_x21___rarg(x_5); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_ctor_get(x_4, 0); +lean_inc(x_7); +lean_dec(x_4); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_9, 0, x_2); +lean_ctor_set(x_9, 1, x_8); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_7); +return x_10; +} } } lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Array_empty___closed__1; +x_1 = lean_box(0); x_2 = l_Lean_Parser_Trie_empty___closed__1; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -24204,10 +24614,22 @@ return x_3; lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__2() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__1; +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; +} +} +lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__3() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = lean_unsigned_to_nat(0u); x_2 = l_Lean_EnvExtension_Inhabited___rarg___closed__1; -x_3 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__1; +x_3 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__2; x_4 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -24215,11 +24637,11 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__3() { +lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__4() { _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; lean_object* x_7; -x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__2; +x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__3; x_2 = lean_box(0); x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; x_4 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; @@ -24235,12 +24657,12 @@ lean_ctor_set(x_7, 5, x_6); return x_7; } } -lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__4() { +lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_AttributeImpl_inhabited___closed__6; -x_2 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__3; +x_2 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__4; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -24251,20 +24673,68 @@ lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__4; +x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__5; return x_1; } } -lean_object* l_Lean_fmt___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenAux(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_2; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; +lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +lean_dec(x_4); +lean_inc(x_3); +x_6 = l___private_Init_Lean_Parser_Parser_8__addTokenConfig(x_5, x_3); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +return x_6; +} +else +{ +lean_object* x_8; lean_object* x_9; +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_9, 0, x_8); +return x_9; } } -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +else +{ +uint8_t x_10; +x_10 = !lean_is_exclusive(x_6); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_6, 0); +lean_dec(x_11); +x_12 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_3); +lean_ctor_set(x_6, 0, x_12); +return x_6; +} +else +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_6); +x_13 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_3); +x_14 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_14, 0, x_13); +return x_14; +} +} +} +} +uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(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; @@ -24303,7 +24773,7 @@ return x_11; } } } -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__4(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; @@ -24325,7 +24795,7 @@ if (x_6 == 0) lean_object* x_7; lean_object* x_8; x_7 = lean_ctor_get(x_3, 0); lean_dec(x_7); -x_8 = lean_mk_string("failed to register environment, extensions can only be registered during initialization"); +x_8 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; lean_ctor_set_tag(x_3, 1); lean_ctor_set(x_3, 0, x_8); return x_3; @@ -24336,7 +24806,7 @@ lean_object* x_9; lean_object* x_10; lean_object* x_11; x_9 = lean_ctor_get(x_3, 1); lean_inc(x_9); lean_dec(x_3); -x_10 = lean_mk_string("failed to register environment, extensions can only be registered during initialization"); +x_10 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; x_11 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_9); @@ -24353,7 +24823,7 @@ x_13 = l___private_Init_Lean_Environment_5__envExtensionsRef; x_14 = lean_io_ref_get(x_13, x_12); if (lean_obj_tag(x_14) == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); x_16 = lean_ctor_get(x_14, 1); @@ -24361,195 +24831,180 @@ lean_inc(x_16); lean_dec(x_14); x_17 = lean_array_get_size(x_15); lean_dec(x_15); -x_18 = lean_unsigned_to_nat(0u); -x_19 = lean_mk_empty_array_with_capacity(x_18); -x_20 = lean_box(0); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_21); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_19); -lean_ctor_set(x_23, 1, x_22); -x_24 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_24, 0, x_17); -lean_ctor_set(x_24, 1, x_1); -lean_ctor_set(x_24, 2, x_23); -x_25 = lean_io_ref_get(x_13, x_16); -if (lean_obj_tag(x_25) == 0) +x_18 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__2; +x_19 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_1); +lean_ctor_set(x_19, 2, x_18); +x_20 = lean_io_ref_get(x_13, x_16); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -lean_dec(x_25); -x_28 = lean_io_ref_reset(x_13, x_27); +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_io_ref_reset(x_13, x_22); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_19); +x_26 = x_19; +x_27 = lean_array_push(x_21, x_26); +x_28 = lean_io_ref_set(x_13, x_27, x_24); if (lean_obj_tag(x_28) == 0) { -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); +uint8_t x_29; +x_29 = !lean_is_exclusive(x_28); +if (x_29 == 0) +{ +lean_object* x_30; +x_30 = lean_ctor_get(x_28, 0); +lean_dec(x_30); +lean_ctor_set(x_28, 0, x_19); +return x_28; +} +else +{ +lean_object* x_31; lean_object* x_32; +x_31 = lean_ctor_get(x_28, 1); +lean_inc(x_31); lean_dec(x_28); -x_30 = lean_alloc_closure((void*)(l_Lean_EnvExtension_Inhabited___rarg___lambda__1), 1, 0); -x_31 = l_Lean_EnvExtensionState_inhabited; -x_32 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_32, 0, x_18); -lean_ctor_set(x_32, 1, x_30); -lean_ctor_set(x_32, 2, x_31); -lean_inc(x_24); -x_33 = x_24; -lean_dec(x_32); -x_34 = lean_array_push(x_26, x_33); -x_35 = lean_io_ref_set(x_13, x_34, x_29); -if (lean_obj_tag(x_35) == 0) -{ -uint8_t x_36; -x_36 = !lean_is_exclusive(x_35); -if (x_36 == 0) -{ -lean_object* x_37; -x_37 = lean_ctor_get(x_35, 0); -lean_dec(x_37); -lean_ctor_set(x_35, 0, x_24); -return x_35; -} -else -{ -lean_object* x_38; lean_object* x_39; -x_38 = lean_ctor_get(x_35, 1); -lean_inc(x_38); -lean_dec(x_35); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_24); -lean_ctor_set(x_39, 1, x_38); -return x_39; +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_19); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } else { -uint8_t x_40; -lean_dec(x_24); -x_40 = !lean_is_exclusive(x_35); -if (x_40 == 0) -{ -return x_35; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_35, 0); -x_42 = lean_ctor_get(x_35, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_35); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -uint8_t x_44; -lean_dec(x_26); -lean_dec(x_24); -x_44 = !lean_is_exclusive(x_28); -if (x_44 == 0) +uint8_t x_33; +lean_dec(x_19); +x_33 = !lean_is_exclusive(x_28); +if (x_33 == 0) { return x_28; } else { -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_28, 0); -x_46 = lean_ctor_get(x_28, 1); -lean_inc(x_46); -lean_inc(x_45); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_28, 0); +x_35 = lean_ctor_get(x_28, 1); +lean_inc(x_35); +lean_inc(x_34); lean_dec(x_28); -x_47 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_47, 0, x_45); -lean_ctor_set(x_47, 1, x_46); -return x_47; +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } else { -uint8_t x_48; -lean_dec(x_24); -x_48 = !lean_is_exclusive(x_25); -if (x_48 == 0) +uint8_t x_37; +lean_dec(x_21); +lean_dec(x_19); +x_37 = !lean_is_exclusive(x_23); +if (x_37 == 0) { -return x_25; +return x_23; } else { -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_25, 0); -x_50 = lean_ctor_get(x_25, 1); -lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_25); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_23, 0); +x_39 = lean_ctor_get(x_23, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_23); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; } } } else { -uint8_t x_52; +uint8_t x_41; +lean_dec(x_19); +x_41 = !lean_is_exclusive(x_20); +if (x_41 == 0) +{ +return x_20; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_20, 0); +x_43 = lean_ctor_get(x_20, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_20); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; +} +} +} +else +{ +uint8_t x_45; lean_dec(x_1); -x_52 = !lean_is_exclusive(x_14); -if (x_52 == 0) +x_45 = !lean_is_exclusive(x_14); +if (x_45 == 0) { return x_14; } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_14, 0); -x_54 = lean_ctor_get(x_14, 1); -lean_inc(x_54); -lean_inc(x_53); +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_14, 0); +x_47 = lean_ctor_get(x_14, 1); +lean_inc(x_47); +lean_inc(x_46); lean_dec(x_14); -x_55 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_55, 0, x_53); -lean_ctor_set(x_55, 1, x_54); -return x_55; +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; } } } } else { -uint8_t x_56; +uint8_t x_49; lean_dec(x_1); -x_56 = !lean_is_exclusive(x_3); -if (x_56 == 0) +x_49 = !lean_is_exclusive(x_3); +if (x_49 == 0) { return x_3; } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_3, 0); -x_58 = lean_ctor_get(x_3, 1); -lean_inc(x_58); -lean_inc(x_57); +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_3, 0); +x_51 = lean_ctor_get(x_3, 1); +lean_inc(x_51); +lean_inc(x_50); lean_dec(x_3); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; } } } } -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; @@ -24566,325 +25021,343 @@ x_6 = lean_ctor_get(x_4, 0); x_7 = lean_ctor_get(x_4, 1); x_8 = lean_array_get_size(x_6); x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_1, x_6, x_6, x_8, x_9); +x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_6, x_6, x_8, x_9); lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); -lean_inc(x_11); -x_12 = lean_mk_empty_array_with_capacity(x_9); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 1); lean_inc(x_12); -x_13 = lean_apply_1(x_11, x_12); -x_14 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1), 3, 1); -lean_closure_set(x_14, 0, x_12); -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__4(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) +lean_dec(x_23); +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_EnvExtensionState_inhabited; -x_30 = l_Lean_PersistentEnvExtension_inhabited___rarg(x_29); -lean_inc(x_23); -x_31 = x_23; -lean_dec(x_30); -x_32 = lean_array_push(x_25, x_31); -x_33 = lean_io_ref_set(x_3, x_32, x_28); -if (lean_obj_tag(x_33) == 0) +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) { -uint8_t x_34; -x_34 = !lean_is_exclusive(x_33); -if (x_34 == 0) +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) { -lean_object* x_35; -x_35 = lean_ctor_get(x_33, 0); -lean_dec(x_35); -lean_ctor_set(x_33, 0, x_23); -return x_33; -} -else -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_33, 1); -lean_inc(x_36); +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); lean_dec(x_33); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_23); -lean_ctor_set(x_37, 1, x_36); -return x_37; +lean_ctor_set(x_31, 0, x_22); +return x_31; +} +else +{ +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; } } else { -uint8_t x_38; -lean_dec(x_23); -x_38 = !lean_is_exclusive(x_33); -if (x_38 == 0) +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) { -return x_33; +return x_31; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_33, 0); -x_40 = lean_ctor_get(x_33, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_33); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_42; -lean_dec(x_25); -lean_dec(x_23); -x_42 = !lean_is_exclusive(x_27); -if (x_42 == 0) -{ -return x_27; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_27, 0); -x_44 = lean_ctor_get(x_27, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_27); -x_45 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_45, 0, x_43); -lean_ctor_set(x_45, 1, x_44); -return x_45; -} -} -} -else -{ -uint8_t x_46; -lean_dec(x_23); -x_46 = !lean_is_exclusive(x_24); -if (x_46 == 0) -{ -return x_24; -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_47 = lean_ctor_get(x_24, 0); -x_48 = lean_ctor_get(x_24, 1); -lean_inc(x_48); -lean_inc(x_47); +uint8_t x_40; lean_dec(x_24); -x_49 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_49, 0, x_47); -lean_ctor_set(x_49, 1, x_48); -return x_49; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_50; -lean_dec(x_11); -lean_dec(x_1); -x_50 = !lean_is_exclusive(x_16); -if (x_50 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_16, 0); -x_52 = lean_ctor_get(x_16, 1); -lean_inc(x_52); -lean_inc(x_51); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_53 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_53, 0, x_51); -lean_ctor_set(x_53, 1, x_52); -return x_53; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; -x_54 = lean_ctor_get(x_1, 0); -lean_inc(x_54); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_55 = lean_mk_string("."); -x_56 = l_Lean_Name_toStringWithSep___main(x_55, x_54); -lean_dec(x_55); -x_57 = lean_mk_string("invalid environment extension, '"); -x_58 = lean_string_append(x_57, x_56); -lean_dec(x_56); -x_59 = lean_mk_string("' has already been used"); -x_60 = lean_string_append(x_58, x_59); -lean_dec(x_59); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_60); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; -x_61 = lean_ctor_get(x_4, 0); -x_62 = lean_ctor_get(x_4, 1); -lean_inc(x_62); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); +lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_63 = lean_array_get_size(x_61); -x_64 = lean_unsigned_to_nat(0u); -x_65 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_1, x_61, x_61, x_63, x_64); -lean_dec(x_63); +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_59, x_59, x_61, x_62); lean_dec(x_61); -if (x_65 == 0) +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_66 = lean_ctor_get(x_1, 1); -lean_inc(x_66); -x_67 = lean_mk_empty_array_with_capacity(x_64); +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_1, 1); +lean_inc(x_65); +x_66 = lean_ctor_get(x_1, 2); lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); lean_inc(x_67); -x_68 = lean_apply_1(x_66, x_67); -x_69 = lean_alloc_closure((void*)(l_Lean_registerPersistentEnvExtensionUnsafe___rarg___lambda__1), 3, 1); -lean_closure_set(x_69, 0, x_67); -x_70 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_70, 0, x_68); -lean_closure_set(x_70, 1, x_69); -x_71 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__4(x_70, x_62); -if (lean_obj_tag(x_71) == 0) -{ -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_1, 0); -lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 2); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 3); -lean_inc(x_76); -x_77 = lean_ctor_get(x_1, 4); -lean_inc(x_77); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); lean_dec(x_1); -x_78 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_78, 0, x_72); -lean_ctor_set(x_78, 1, x_74); -lean_ctor_set(x_78, 2, x_66); -lean_ctor_set(x_78, 3, x_75); -lean_ctor_set(x_78, 4, x_76); -lean_ctor_set(x_78, 5, x_77); -x_79 = lean_io_ref_get(x_3, x_73); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_71, x_60); +if (lean_obj_tag(x_72) == 0) +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); +lean_inc(x_73); +x_74 = lean_ctor_get(x_72, 1); +lean_inc(x_74); +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); if (lean_obj_tag(x_79) == 0) { -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_79, 0); +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); lean_dec(x_79); -x_82 = lean_io_ref_reset(x_3, x_81); -if (lean_obj_tag(x_82) == 0) +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) { -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -lean_dec(x_82); -x_84 = l_Lean_EnvExtensionState_inhabited; -x_85 = l_Lean_PersistentEnvExtension_inhabited___rarg(x_84); -lean_inc(x_78); -x_86 = x_78; -lean_dec(x_85); -x_87 = lean_array_push(x_80, x_86); -x_88 = lean_io_ref_set(x_3, x_87, x_83); -if (lean_obj_tag(x_88) == 0) -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; -x_89 = lean_ctor_get(x_88, 1); -lean_inc(x_89); -if (lean_is_exclusive(x_88)) { - lean_ctor_release(x_88, 0); - lean_ctor_release(x_88, 1); - x_90 = x_88; +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; } else { - lean_dec_ref(x_88); + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); x_90 = lean_box(0); } if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(0, 2, 0); + x_91 = lean_alloc_ctor(1, 2, 0); } else { x_91 = x_90; } -lean_ctor_set(x_91, 0, x_78); +lean_ctor_set(x_91, 0, x_88); lean_ctor_set(x_91, 1, x_89); return x_91; } +} else { lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; -lean_dec(x_78); -x_92 = lean_ctor_get(x_88, 0); +lean_dec(x_77); +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); lean_inc(x_92); -x_93 = lean_ctor_get(x_88, 1); +x_93 = lean_ctor_get(x_79, 1); lean_inc(x_93); -if (lean_is_exclusive(x_88)) { - lean_ctor_release(x_88, 0); - lean_ctor_release(x_88, 1); - x_94 = x_88; +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_88); + lean_dec_ref(x_79); x_94 = lean_box(0); } if (lean_is_scalar(x_94)) { @@ -24900,18 +25373,17 @@ return x_95; else { lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -lean_dec(x_80); -lean_dec(x_78); -x_96 = lean_ctor_get(x_82, 0); +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); lean_inc(x_96); -x_97 = lean_ctor_get(x_82, 1); +x_97 = lean_ctor_get(x_76, 1); lean_inc(x_97); -if (lean_is_exclusive(x_82)) { - lean_ctor_release(x_82, 0); - lean_ctor_release(x_82, 1); - x_98 = x_82; +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_82); + lean_dec_ref(x_76); x_98 = lean_box(0); } if (lean_is_scalar(x_98)) { @@ -24927,17 +25399,21 @@ return x_99; else { lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; -lean_dec(x_78); -x_100 = lean_ctor_get(x_79, 0); +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); lean_inc(x_100); -x_101 = lean_ctor_get(x_79, 1); +x_101 = lean_ctor_get(x_72, 1); lean_inc(x_101); -if (lean_is_exclusive(x_79)) { - lean_ctor_release(x_79, 0); - lean_ctor_release(x_79, 1); - x_102 = x_79; +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; } else { - lean_dec_ref(x_79); + lean_dec_ref(x_72); x_102 = lean_box(0); } if (lean_is_scalar(x_102)) { @@ -24952,74 +25428,45 @@ return x_103; } else { -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; -lean_dec(x_66); -lean_dec(x_1); -x_104 = lean_ctor_get(x_71, 0); +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); lean_inc(x_104); -x_105 = lean_ctor_get(x_71, 1); -lean_inc(x_105); -if (lean_is_exclusive(x_71)) { - lean_ctor_release(x_71, 0); - lean_ctor_release(x_71, 1); - x_106 = x_71; -} else { - lean_dec_ref(x_71); - x_106 = lean_box(0); -} -if (lean_is_scalar(x_106)) { - x_107 = lean_alloc_ctor(1, 2, 0); -} else { - x_107 = x_106; -} -lean_ctor_set(x_107, 0, x_104); -lean_ctor_set(x_107, 1, x_105); -return x_107; -} -} -else -{ -lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_108 = lean_ctor_get(x_1, 0); -lean_inc(x_108); lean_dec(x_1); -x_109 = lean_mk_string("."); -x_110 = l_Lean_Name_toStringWithSep___main(x_109, x_108); -lean_dec(x_109); -x_111 = lean_mk_string("invalid environment extension, '"); -x_112 = lean_string_append(x_111, x_110); -lean_dec(x_110); -x_113 = lean_mk_string("' has already been used"); -x_114 = lean_string_append(x_112, x_113); -lean_dec(x_113); -x_115 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_115, 0, x_114); -lean_ctor_set(x_115, 1, x_62); -return x_115; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_116; +uint8_t x_112; lean_dec(x_1); -x_116 = !lean_is_exclusive(x_4); -if (x_116 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_117; lean_object* x_118; lean_object* x_119; -x_117 = lean_ctor_get(x_4, 0); -x_118 = lean_ctor_get(x_4, 1); -lean_inc(x_118); -lean_inc(x_117); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_119 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_119, 0, x_117); -lean_ctor_set(x_119, 1, x_118); -return x_119; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -25027,145 +25474,285 @@ return x_119; lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Lean_Parser_mkImportedTokenTable___rarg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_box(0); +x_4 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_1); +x_5 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_5, 0, x_4); +lean_ctor_set(x_5, 1, x_2); +return x_5; } } -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object* x_1) { +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_2; lean_object* x_3; -x_2 = lean_mk_string("token table attribute"); -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_2); +lean_object* x_4; +x_4 = l___private_Init_Lean_Parser_Parser_9__mkImportedTokenTable(x_2, x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__3(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; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +lean_dec(x_1); +x_3 = l_List_reverse___rarg(x_2); +x_4 = l_List_redLength___main___rarg(x_3); +x_5 = lean_mk_empty_array_with_capacity(x_4); +lean_dec(x_4); +x_6 = l_List_toArrayAux___main___rarg(x_3, x_5); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_tokens_"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_builtinTokenTable; +x_2 = lean_alloc_closure((void*)(l_IO_Prim_Ref_get___boxed), 3, 2); +lean_closure_set(x_2, 0, lean_box(0)); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__1), 2, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__3; +x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__4; +x_3 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry), 2, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__8() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__3), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__9() { +_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; lean_object* x_7; +x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; +x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__5; +x_3 = l_Lean_Parser_mkTokenTableAttribute___closed__6; +x_4 = l_Lean_Parser_mkTokenTableAttribute___closed__7; +x_5 = l_Lean_Parser_mkTokenTableAttribute___closed__8; +x_6 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_7 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_7, 0, x_1); +lean_ctor_set(x_7, 1, x_2); +lean_ctor_set(x_7, 2, x_3); +lean_ctor_set(x_7, 3, x_4); +lean_ctor_set(x_7, 4, x_5); +lean_ctor_set(x_7, 5, x_6); +return x_7; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; +x_2 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; +x_2 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__12() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("internal token table attribute"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__13() { +_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; lean_object* x_7; uint8_t x_8; lean_object* x_9; +x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; +x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__12; +x_3 = l_Lean_AttributeImpl_inhabited___closed__1; +x_4 = l_Lean_Parser_mkTokenTableAttribute___closed__10; +x_5 = l_Lean_Parser_mkTokenTableAttribute___closed__11; +x_6 = l_Lean_AttributeImpl_inhabited___closed__4; +x_7 = l_Lean_AttributeImpl_inhabited___closed__5; +x_8 = 0; +x_9 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_9, 0, x_1); +lean_ctor_set(x_9, 1, x_2); +lean_ctor_set(x_9, 2, x_3); +lean_ctor_set(x_9, 3, x_4); +lean_ctor_set(x_9, 4, x_5); +lean_ctor_set(x_9, 5, x_6); +lean_ctor_set(x_9, 6, x_7); +lean_ctor_set(x_9, 7, x_7); +lean_ctor_set_uint8(x_9, sizeof(void*)*8, x_8); +return x_9; +} +} lean_object* l_Lean_Parser_mkTokenTableAttribute(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_2 = lean_box(0); -x_3 = lean_mk_string("_tokens_"); -x_4 = lean_name_mk_string(x_2, x_3); -x_5 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__1___boxed), 2, 0); -x_6 = lean_alloc_closure((void*)(l_ExceptT_Monad___rarg___lambda__8___boxed), 2, 0); -x_7 = lean_alloc_closure((void*)(l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2___boxed), 1, 0); -x_8 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed), 1, 0); -lean_inc(x_4); -x_9 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_9, 0, x_4); -lean_ctor_set(x_9, 1, x_5); -lean_ctor_set(x_9, 2, x_6); -lean_ctor_set(x_9, 3, x_7); -lean_ctor_set(x_9, 4, x_8); -x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_9, x_1); -if (lean_obj_tag(x_10) == 0) +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__9; +x_3 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(x_2, x_1); +if (lean_obj_tag(x_3) == 0) { -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +lean_dec(x_3); +x_6 = l_Lean_Parser_mkTokenTableAttribute___closed__13; +x_7 = l_Lean_registerAttribute(x_6, x_5); +if (lean_obj_tag(x_7) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_10, 0); -lean_inc(x_4); -x_13 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_13, 0, x_4); -lean_inc(x_4); -x_14 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_14, 0, x_4); -x_15 = lean_mk_string("internal token table attribute"); -x_16 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__1___boxed), 5, 0); -x_17 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__4___boxed), 3, 0); -x_18 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__5), 2, 0); -x_19 = 0; -lean_inc(x_18); -x_20 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_20, 0, x_4); -lean_ctor_set(x_20, 1, x_15); -lean_ctor_set(x_20, 2, x_16); -lean_ctor_set(x_20, 3, x_13); -lean_ctor_set(x_20, 4, x_14); -lean_ctor_set(x_20, 5, x_17); -lean_ctor_set(x_20, 6, x_18); -lean_ctor_set(x_20, 7, x_18); -lean_ctor_set_uint8(x_20, sizeof(void*)*8, x_19); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_12); -lean_ctor_set(x_10, 0, x_21); -return x_10; +uint8_t x_8; +x_8 = !lean_is_exclusive(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_ctor_get(x_7, 0); +lean_dec(x_9); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_6); +lean_ctor_set(x_10, 1, x_4); +lean_ctor_set(x_7, 0, x_10); +return x_7; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_22 = lean_ctor_get(x_10, 0); -x_23 = lean_ctor_get(x_10, 1); -lean_inc(x_23); -lean_inc(x_22); -lean_dec(x_10); -lean_inc(x_4); -x_24 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_24, 0, x_4); -lean_inc(x_4); -x_25 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_25, 0, x_4); -x_26 = lean_mk_string("internal token table attribute"); -x_27 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__1___boxed), 5, 0); -x_28 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__4___boxed), 3, 0); -x_29 = lean_alloc_closure((void*)(l_Lean_AttributeImpl_inhabited___lambda__5), 2, 0); -x_30 = 0; -lean_inc(x_29); -x_31 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_31, 0, x_4); -lean_ctor_set(x_31, 1, x_26); -lean_ctor_set(x_31, 2, x_27); -lean_ctor_set(x_31, 3, x_24); -lean_ctor_set(x_31, 4, x_25); -lean_ctor_set(x_31, 5, x_28); -lean_ctor_set(x_31, 6, x_29); -lean_ctor_set(x_31, 7, x_29); -lean_ctor_set_uint8(x_31, sizeof(void*)*8, x_30); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_22); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_23); -return x_33; +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_7, 1); +lean_inc(x_11); +lean_dec(x_7); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_6); +lean_ctor_set(x_12, 1, x_4); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_11); +return x_13; } } else { -uint8_t x_34; +uint8_t x_14; lean_dec(x_4); -x_34 = !lean_is_exclusive(x_10); -if (x_34 == 0) +x_14 = !lean_is_exclusive(x_7); +if (x_14 == 0) { -return x_10; +return x_7; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_10, 0); -x_36 = lean_ctor_get(x_10, 1); -lean_inc(x_36); -lean_inc(x_35); -lean_dec(x_10); -x_37 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_37, 0, x_35); -lean_ctor_set(x_37, 1, x_36); -return x_37; +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_7, 0); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); +lean_inc(x_15); +lean_dec(x_7); +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_16); +return x_17; +} +} +} +else +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_3); +if (x_18 == 0) +{ +return x_3; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_3, 0); +x_20 = lean_ctor_get(x_3, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_3); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_20); +return x_21; } } } } -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___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* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2___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_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -25174,22 +25761,25 @@ x_7 = lean_box(x_6); return x_7; } } -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = l_Lean_Parser_mkTokenTableAttribute___lambda__1(x_1, x_2); +lean_object* x_4; +x_4 = l_Lean_Parser_mkTokenTableAttribute___lambda__2(x_1, x_2, x_3); +lean_dec(x_2); lean_dec(x_1); -return x_3; +return x_4; } } -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object* x_1) { +lean_object* l_Lean_Parser_addToken(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_Parser_mkTokenTableAttribute___lambda__2(x_1); -lean_dec(x_1); -return x_2; +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = l_Lean_Parser_tokenTableAttribute; +x_4 = lean_ctor_get(x_3, 1); +lean_inc(x_4); +x_5 = l___private_Init_Lean_Parser_Parser_11__addTokenAux(x_1, x_4, x_2); +return x_5; } } lean_object* l_mkHashMap___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1(lean_object* x_1) { @@ -25218,7 +25808,7 @@ x_3 = lean_io_mk_ref(x_2, x_1); return x_3; } } -lean_object* l_Lean_Parser_updateSyntaxNodeKinds(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_updateBuiltinSyntaxNodeKinds(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; @@ -25562,7 +26152,7 @@ return x_5; lean_object* l_Lean_Parser_mkParserContextCore(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_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_inc(x_2); x_4 = l_Lean_FileMap_ofString(x_2); x_5 = l_Lean_Parser_tokenTableAttribute; @@ -25570,12 +26160,15 @@ x_6 = lean_ctor_get(x_5, 1); lean_inc(x_6); x_7 = l_Lean_PersistentEnvExtension_getState___rarg(x_6, x_1); lean_dec(x_6); -x_8 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_8, 0, x_2); -lean_ctor_set(x_8, 1, x_3); -lean_ctor_set(x_8, 2, x_4); -lean_ctor_set(x_8, 3, x_7); -return x_8; +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_9, 0, x_2); +lean_ctor_set(x_9, 1, x_3); +lean_ctor_set(x_9, 2, x_4); +lean_ctor_set(x_9, 3, x_8); +return x_9; } } lean_object* l_Lean_Parser_mkParserContextCore___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -25680,7 +26273,7 @@ x_3 = lean_io_mk_ref(x_2, x_1); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1() { _start: { lean_object* x_1; @@ -25688,7 +26281,7 @@ x_1 = lean_mk_string("invalid builtin parser '"); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_8__updateTokens(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens(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; @@ -25716,7 +26309,7 @@ lean_inc(x_12); lean_dec(x_11); x_13 = l_Lean_Name_toString___closed__1; x_14 = l_Lean_Name_toStringWithSep___main(x_13, x_2); -x_15 = l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1; +x_15 = l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1; x_16 = lean_string_append(x_15, x_14); lean_dec(x_14); x_17 = l_Lean_registerTagAttribute___lambda__4___closed__4; @@ -25759,7 +26352,7 @@ lean_inc(x_26); lean_dec(x_25); x_27 = l_Lean_Name_toString___closed__1; x_28 = l_Lean_Name_toStringWithSep___main(x_27, x_2); -x_29 = l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1; +x_29 = l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1; x_30 = lean_string_append(x_29, x_28); lean_dec(x_28); x_31 = l_Lean_registerTagAttribute___lambda__4___closed__4; @@ -25809,7 +26402,7 @@ return x_40; } } } -lean_object* l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(lean_object* x_1) { +lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -25832,7 +26425,7 @@ lean_inc(x_6); lean_dec(x_4); x_7 = lean_box(0); x_8 = lean_name_mk_string(x_7, x_6); -x_9 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_5); +x_9 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_5); lean_ctor_set(x_1, 1, x_9); lean_ctor_set(x_1, 0, x_8); return x_1; @@ -25850,7 +26443,7 @@ lean_inc(x_12); lean_dec(x_10); x_13 = lean_box(0); x_14 = lean_name_mk_string(x_13, x_12); -x_15 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_11); +x_15 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_11); x_16 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_16, 0, x_14); lean_ctor_set(x_16, 1, x_15); @@ -25859,7 +26452,7 @@ return x_16; } } } -uint8_t l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(lean_object* x_1, lean_object* x_2) { +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -25888,7 +26481,7 @@ return x_8; } } } -lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addBuiltinLeadingParser___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -25906,7 +26499,7 @@ if (x_4 == 0) lean_object* x_5; lean_object* x_6; uint8_t x_7; x_5 = lean_ctor_get(x_1, 0); x_6 = lean_ctor_get(x_1, 1); -x_7 = l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(x_5, x_2); +x_7 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_5, x_2); if (x_7 == 0) { lean_ctor_set(x_1, 1, x_2); @@ -25934,7 +26527,7 @@ x_11 = lean_ctor_get(x_1, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_1); -x_12 = l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(x_10, x_2); +x_12 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_10, x_2); if (x_12 == 0) { lean_object* x_13; @@ -25955,16 +26548,16 @@ goto _start; } } } -lean_object* l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(lean_object* x_1) { +lean_object* l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; x_2 = lean_box(0); -x_3 = l_List_eraseDupsAux___main___at_Lean_Parser_addBuiltinLeadingParser___spec__3(x_1, x_2); +x_3 = l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(x_1, x_2); return x_3; } } -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -26014,7 +26607,7 @@ goto _start; } } } -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -26064,7 +26657,7 @@ goto _start; } } } -lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__1() { +lean_object* _init_l_Lean_Parser_addLeadingParser___closed__1() { _start: { lean_object* x_1; @@ -26072,137 +26665,442 @@ x_1 = lean_mk_string("', initial token is not statically known"); return x_1; } } -lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_addLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_5; -x_5 = lean_io_ref_get(x_1, x_4); -if (lean_obj_tag(x_5) == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* 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_io_ref_reset(x_1, x_7); -if (lean_obj_tag(x_8) == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_ctor_get(x_3, 0); -lean_inc(x_10); -lean_inc(x_2); -lean_inc(x_10); -x_11 = l___private_Init_Lean_Parser_Parser_8__updateTokens(x_10, x_2, x_9); -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -lean_inc(x_10); -x_13 = l_Lean_Parser_updateSyntaxNodeKinds(x_10, x_12); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_25; -x_14 = lean_ctor_get(x_13, 1); +lean_object* x_4; lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_3, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_13, 2); lean_inc(x_14); -if (lean_is_exclusive(x_13)) { - lean_ctor_release(x_13, 0); - lean_ctor_release(x_13, 1); - x_15 = x_13; -} else { - lean_dec_ref(x_13); - x_15 = lean_box(0); -} -x_25 = lean_ctor_get(x_10, 2); -lean_inc(x_25); -lean_dec(x_10); -switch (lean_obj_tag(x_25)) { +lean_dec(x_13); +switch (lean_obj_tag(x_14)) { case 2: { -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; -lean_dec(x_15); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_dec(x_2); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -lean_dec(x_25); -x_27 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_26); -x_28 = l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(x_27); -x_29 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__5(x_3, x_6, x_28); -x_30 = lean_io_ref_set(x_1, x_29, x_14); -return x_30; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +lean_dec(x_14); +x_16 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_15); +x_17 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_16); +x_18 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(x_3, x_1, x_17); +x_19 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_19, 0, x_18); +return x_19; } case 3: { -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -lean_dec(x_15); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_dec(x_2); -x_31 = lean_ctor_get(x_25, 0); -lean_inc(x_31); -lean_dec(x_25); -x_32 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_31); -x_33 = l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(x_32); -x_34 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__6(x_3, x_6, x_33); -x_35 = lean_io_ref_set(x_1, x_34, x_14); -return x_35; +x_20 = lean_ctor_get(x_14, 0); +lean_inc(x_20); +lean_dec(x_14); +x_21 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_20); +x_22 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_21); +x_23 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(x_3, x_1, x_22); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_23); +return x_24; } default: { -lean_object* x_36; -lean_dec(x_25); -lean_dec(x_6); +lean_object* x_25; +lean_dec(x_14); lean_dec(x_3); -x_36 = lean_box(0); -x_16 = x_36; -goto block_24; +lean_dec(x_1); +x_25 = lean_box(0); +x_4 = x_25; +goto block_12; } } -block_24: +block_12: { -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_dec(x_16); -x_17 = l_Lean_Name_toString___closed__1; -x_18 = l_Lean_Name_toStringWithSep___main(x_17, x_2); -x_19 = l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1; -x_20 = lean_string_append(x_19, x_18); -lean_dec(x_18); -x_21 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; -x_22 = lean_string_append(x_20, x_21); -if (lean_is_scalar(x_15)) { - x_23 = lean_alloc_ctor(1, 2, 0); -} else { - x_23 = x_15; - lean_ctor_set_tag(x_23, 1); +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_4); +x_5 = l_Lean_Name_toString___closed__1; +x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_2); +x_7 = l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1; +x_8 = lean_string_append(x_7, x_6); +lean_dec(x_6); +x_9 = l_Lean_Parser_addLeadingParser___closed__1; +x_10 = lean_string_append(x_8, x_9); +x_11 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_11, 0, x_10); +return x_11; +} +} +} +lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +lean_object* l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_dec(x_1); +return x_2; +} +else +{ +lean_object* x_4; lean_object* x_5; uint8_t x_6; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +lean_dec(x_3); +x_6 = !lean_is_exclusive(x_2); +if (x_6 == 0) +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_ctor_get(x_2, 1); +lean_inc(x_1); +x_8 = l_Lean_Parser_TokenMap_insert___rarg(x_7, x_4, x_1); +lean_ctor_set(x_2, 1, x_8); +x_3 = x_5; +goto _start; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_10 = lean_ctor_get(x_2, 0); +x_11 = lean_ctor_get(x_2, 1); +x_12 = lean_ctor_get(x_2, 2); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_dec(x_2); +lean_inc(x_1); +x_13 = l_Lean_Parser_TokenMap_insert___rarg(x_11, x_4, x_1); +x_14 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_14, 0, x_10); +lean_ctor_set(x_14, 1, x_13); +lean_ctor_set(x_14, 2, x_12); +x_2 = x_14; +x_3 = x_5; +goto _start; +} +} +} +} +lean_object* l_Lean_Parser_addTrailingParser(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_13; lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_2, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_18, 2); +lean_inc(x_19); +lean_dec(x_18); +switch (lean_obj_tag(x_19)) { +case 2: +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_13 = x_20; +goto block_17; +} +case 3: +{ +lean_object* x_21; +x_21 = lean_ctor_get(x_19, 0); +lean_inc(x_21); +lean_dec(x_19); +x_13 = x_21; +goto block_17; +} +default: +{ +lean_object* x_22; +lean_dec(x_19); +x_22 = lean_box(0); +x_3 = x_22; +goto block_12; +} +} +block_12: +{ +uint8_t x_4; +lean_dec(x_3); +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 2); +x_6 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_6, 0, x_2); +lean_ctor_set(x_6, 1, x_5); +lean_ctor_set(x_1, 2, x_6); +return x_1; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_7 = lean_ctor_get(x_1, 0); +x_8 = lean_ctor_get(x_1, 1); +x_9 = lean_ctor_get(x_1, 2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_dec(x_1); +x_10 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_10, 0, x_2); +lean_ctor_set(x_10, 1, x_9); +x_11 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_11, 0, x_7); +lean_ctor_set(x_11, 1, x_8); +lean_ctor_set(x_11, 2, x_10); +return x_11; +} +} +block_17: +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_13); +x_15 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_14); +x_16 = l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(x_2, x_1, x_15); +return x_16; +} +} +} +lean_object* l_Lean_Parser_addParser(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +if (x_1 == 0) +{ +lean_object* x_5; +x_5 = l_Lean_Parser_addLeadingParser(x_2, x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = l_Lean_Parser_addTrailingParser(x_2, x_4); +x_7 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_7, 0, x_6); +return x_7; +} +} +} +lean_object* l_Lean_Parser_addParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_1); +lean_dec(x_1); +x_6 = l_Lean_Parser_addParser(x_5, x_2, x_3, x_4); +return x_6; +} +} +lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_2); +return x_6; +} +} +} +lean_object* l_Lean_Parser_addBuiltinParser(uint8_t 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 = lean_io_ref_get(x_2, x_5); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_io_ref_reset(x_2, x_8); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_9, 1); +lean_inc(x_10); +lean_dec(x_9); +x_11 = lean_ctor_get(x_4, 0); +lean_inc(x_11); +lean_inc(x_3); +lean_inc(x_11); +x_12 = l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens(x_11, x_3, x_10); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l_Lean_Parser_updateBuiltinSyntaxNodeKinds(x_11, x_13); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = l_Lean_Parser_addParser(x_1, x_7, x_3, x_4); +x_17 = l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(x_16, x_15); +lean_dec(x_16); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_io_ref_set(x_2, x_18, x_19); +return x_20; +} +else +{ +uint8_t x_21; +x_21 = !lean_is_exclusive(x_17); +if (x_21 == 0) +{ +return x_17; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_17, 0); +x_23 = lean_ctor_get(x_17, 1); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_17); +x_24 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_24, 0, x_22); +lean_ctor_set(x_24, 1, x_23); +return x_24; +} +} +} +else +{ +uint8_t x_25; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +x_25 = !lean_is_exclusive(x_14); +if (x_25 == 0) +{ +return x_14; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_14, 0); +x_27 = lean_ctor_get(x_14, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_14); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +return x_28; +} +} +} +else +{ +uint8_t x_29; +lean_dec(x_11); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +x_29 = !lean_is_exclusive(x_12); +if (x_29 == 0) +{ +return x_12; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_12, 0); +x_31 = lean_ctor_get(x_12, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_12); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +} +else +{ +uint8_t x_33; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +x_33 = !lean_is_exclusive(x_9); +if (x_33 == 0) +{ +return x_9; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_9, 0); +x_35 = lean_ctor_get(x_9, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_9); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_14); -return x_23; } } else { uint8_t x_37; -lean_dec(x_10); -lean_dec(x_6); +lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -x_37 = !lean_is_exclusive(x_13); +x_37 = !lean_is_exclusive(x_6); if (x_37 == 0) { -return x_13; +return x_6; } else { lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_13, 0); -x_39 = lean_ctor_get(x_13, 1); +x_38 = lean_ctor_get(x_6, 0); +x_39 = lean_ctor_get(x_6, 1); lean_inc(x_39); lean_inc(x_38); -lean_dec(x_13); +lean_dec(x_6); x_40 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_40, 0, x_38); lean_ctor_set(x_40, 1, x_39); @@ -26210,94 +27108,34 @@ return x_40; } } } -else -{ -uint8_t x_41; -lean_dec(x_10); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_41 = !lean_is_exclusive(x_11); -if (x_41 == 0) -{ -return x_11; } -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_11, 0); -x_43 = lean_ctor_get(x_11, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_11); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_45 = !lean_is_exclusive(x_8); -if (x_45 == 0) -{ -return x_8; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_8, 0); -x_47 = lean_ctor_get(x_8, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_8); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -else -{ -uint8_t x_49; -lean_dec(x_3); -lean_dec(x_2); -x_49 = !lean_is_exclusive(x_5); -if (x_49 == 0) -{ -return x_5; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_5, 0); -x_51 = lean_ctor_get(x_5, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_5); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -} -lean_object* l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { -uint8_t x_3; lean_object* x_4; -x_3 = l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(x_1, x_2); -lean_dec(x_2); +lean_object* x_3; +x_3 = l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(x_1, x_2); lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; +return x_3; +} +} +lean_object* l_Lean_Parser_addBuiltinParser___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 = lean_unbox(x_1); +lean_dec(x_1); +x_7 = l_Lean_Parser_addBuiltinParser(x_6, x_2, x_3, x_4, x_5); +lean_dec(x_2); +return x_7; +} +} +lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = 0; +x_6 = l_Lean_Parser_addBuiltinParser(x_5, x_1, x_2, x_3, x_4); +return x_6; } } lean_object* l_Lean_Parser_addBuiltinLeadingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -26309,321 +27147,13 @@ lean_dec(x_1); return x_5; } } -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_dec(x_1); -return x_2; -} -else -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_3, 1); -lean_inc(x_5); -lean_dec(x_3); -x_6 = !lean_is_exclusive(x_2); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_1); -x_8 = l_Lean_Parser_TokenMap_insert___rarg(x_7, x_4, x_1); -lean_ctor_set(x_2, 1, x_8); -x_3 = x_5; -goto _start; -} -else -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_10 = lean_ctor_get(x_2, 0); -x_11 = lean_ctor_get(x_2, 1); -x_12 = lean_ctor_get(x_2, 2); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_dec(x_2); -lean_inc(x_1); -x_13 = l_Lean_Parser_TokenMap_insert___rarg(x_11, x_4, x_1); -x_14 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_14, 0, x_10); -lean_ctor_set(x_14, 1, x_13); -lean_ctor_set(x_14, 2, x_12); -x_2 = x_14; -x_3 = x_5; -goto _start; -} -} -} -} -lean_object* l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_dec(x_1); -return x_2; -} -else -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_3, 1); -lean_inc(x_5); -lean_dec(x_3); -x_6 = !lean_is_exclusive(x_2); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_1); -x_8 = l_Lean_Parser_TokenMap_insert___rarg(x_7, x_4, x_1); -lean_ctor_set(x_2, 1, x_8); -x_3 = x_5; -goto _start; -} -else -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_10 = lean_ctor_get(x_2, 0); -x_11 = lean_ctor_get(x_2, 1); -x_12 = lean_ctor_get(x_2, 2); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_dec(x_2); -lean_inc(x_1); -x_13 = l_Lean_Parser_TokenMap_insert___rarg(x_11, x_4, x_1); -x_14 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_14, 0, x_10); -lean_ctor_set(x_14, 1, x_13); -lean_ctor_set(x_14, 2, x_12); -x_2 = x_14; -x_3 = x_5; -goto _start; -} -} -} -} lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; -x_5 = lean_io_ref_get(x_1, x_4); -if (lean_obj_tag(x_5) == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* 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_io_ref_reset(x_1, x_7); -if (lean_obj_tag(x_8) == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_ctor_get(x_3, 0); -lean_inc(x_10); -lean_inc(x_10); -x_11 = l___private_Init_Lean_Parser_Parser_8__updateTokens(x_10, x_2, x_9); -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -lean_inc(x_10); -x_13 = l_Lean_Parser_updateSyntaxNodeKinds(x_10, x_12); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; lean_object* x_27; -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_27 = lean_ctor_get(x_10, 2); -lean_inc(x_27); -lean_dec(x_10); -switch (lean_obj_tag(x_27)) { -case 2: -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_28); -x_30 = l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(x_29); -x_31 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_6, x_30); -x_32 = lean_io_ref_set(x_1, x_31, x_14); -return x_32; -} -case 3: -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_33 = lean_ctor_get(x_27, 0); -lean_inc(x_33); -lean_dec(x_27); -x_34 = l_List_map___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_33); -x_35 = l_List_eraseDups___at_Lean_Parser_addBuiltinLeadingParser___spec__2(x_34); -x_36 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__2(x_3, x_6, x_35); -x_37 = lean_io_ref_set(x_1, x_36, x_14); -return x_37; -} -default: -{ -lean_object* x_38; -lean_dec(x_27); -x_38 = lean_box(0); -x_15 = x_38; -goto block_26; -} -} -block_26: -{ -uint8_t x_16; -lean_dec(x_15); -x_16 = !lean_is_exclusive(x_6); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_6, 2); -x_18 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_18, 0, x_3); -lean_ctor_set(x_18, 1, x_17); -lean_ctor_set(x_6, 2, x_18); -x_19 = lean_io_ref_set(x_1, x_6, x_14); -return x_19; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_20 = lean_ctor_get(x_6, 0); -x_21 = lean_ctor_get(x_6, 1); -x_22 = lean_ctor_get(x_6, 2); -lean_inc(x_22); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_6); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_3); -lean_ctor_set(x_23, 1, x_22); -x_24 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_24, 0, x_20); -lean_ctor_set(x_24, 1, x_21); -lean_ctor_set(x_24, 2, x_23); -x_25 = lean_io_ref_set(x_1, x_24, x_14); -return x_25; -} -} -} -else -{ -uint8_t x_39; -lean_dec(x_10); -lean_dec(x_6); -lean_dec(x_3); -x_39 = !lean_is_exclusive(x_13); -if (x_39 == 0) -{ -return x_13; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_13, 0); -x_41 = lean_ctor_get(x_13, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_13); -x_42 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -return x_42; -} -} -} -else -{ -uint8_t x_43; -lean_dec(x_10); -lean_dec(x_6); -lean_dec(x_3); -x_43 = !lean_is_exclusive(x_11); -if (x_43 == 0) -{ -return x_11; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_11, 0); -x_45 = lean_ctor_get(x_11, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_11); -x_46 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_45); -return x_46; -} -} -} -else -{ -uint8_t x_47; -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_47 = !lean_is_exclusive(x_8); -if (x_47 == 0) -{ -return x_8; -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; -x_48 = lean_ctor_get(x_8, 0); -x_49 = lean_ctor_get(x_8, 1); -lean_inc(x_49); -lean_inc(x_48); -lean_dec(x_8); -x_50 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_50, 0, x_48); -lean_ctor_set(x_50, 1, x_49); -return x_50; -} -} -} -else -{ -uint8_t x_51; -lean_dec(x_3); -lean_dec(x_2); -x_51 = !lean_is_exclusive(x_5); -if (x_51 == 0) -{ -return x_5; -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_5, 0); -x_53 = lean_ctor_get(x_5, 1); -lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_5); -x_54 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_54, 0, x_52); -lean_ctor_set(x_54, 1, x_53); -return x_54; -} -} +uint8_t x_5; lean_object* x_6; +x_5 = 1; +x_6 = l_Lean_Parser_addBuiltinParser(x_5, x_1, x_2, x_3, x_4); +return x_6; } } lean_object* l_Lean_Parser_addBuiltinTrailingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -27635,12 +28165,45 @@ lean_dec(x_1); return x_5; } } +lean_object* _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = lean_box(0); +x_3 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set(x_3, 1, x_2); +lean_ctor_set(x_3, 2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1; +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; +} +} +lean_object* _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; +return x_1; +} +} lean_object* _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_empty___closed__1; -x_2 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_2 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -27706,7 +28269,7 @@ return x_1; lean_object* l_Lean_Parser_ParserAttribute_runParserFn(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; lean_object* x_8; lean_object* x_9; +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_5 = lean_ctor_get(x_1, 1); lean_inc(x_5); x_6 = lean_ctor_get(x_3, 1); @@ -27714,11 +28277,14 @@ lean_inc(x_6); x_7 = l_Lean_PersistentEnvExtension_getState___rarg(x_5, x_6); lean_dec(x_6); lean_dec(x_5); -x_8 = lean_ctor_get(x_1, 2); +x_8 = lean_ctor_get(x_7, 1); lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_ctor_get(x_1, 2); +lean_inc(x_9); lean_dec(x_1); -x_9 = l_Lean_Parser_prattParser(x_8, x_7, x_2, x_3, x_4); -return x_9; +x_10 = l_Lean_Parser_prattParser(x_9, x_8, x_2, x_3, x_4); +return x_10; } } lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -30031,6 +30597,1832 @@ lean_dec(x_1); return x_5; } } +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("unknow constant '"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("ParserDescr"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("TrailingParserDescr"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__5() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 1; +x_2 = l_String_splitAux___main___closed__1; +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_alloc_ctor(10, 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* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__6() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_String_splitAux___main___closed__1; +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_alloc_ctor(10, 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* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__7() { +_start: +{ +uint8_t x_1; lean_object* x_2; +x_1 = 1; +x_2 = l_Lean_Parser_Parser_inhabited(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__8() { +_start: +{ +uint8_t x_1; lean_object* x_2; +x_1 = 0; +x_2 = l_Lean_Parser_Parser_inhabited(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_13; +lean_inc(x_3); +lean_inc(x_1); +x_13 = lean_environment_find(x_1, x_3); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_1); +x_14 = l_Lean_Name_toString___closed__1; +x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_3); +x_16 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; +x_17 = lean_string_append(x_16, x_15); +lean_dec(x_15); +x_18 = l_Char_HasRepr___closed__1; +x_19 = lean_string_append(x_17, x_18); +x_20 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_20, 0, x_19); +return x_20; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +lean_dec(x_13); +x_22 = l_Lean_ConstantInfo_type(x_21); +lean_dec(x_21); +switch (lean_obj_tag(x_22)) { +case 4: +{ +lean_object* x_23; +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +lean_dec(x_22); +if (lean_obj_tag(x_23) == 1) +{ +lean_object* x_24; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +if (lean_obj_tag(x_24) == 1) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +switch (lean_obj_tag(x_25)) { +case 0: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_ctor_get(x_24, 1); +lean_inc(x_27); +lean_dec(x_24); +x_28 = l_Lean_nameToExprAux___main___closed__1; +x_29 = lean_string_dec_eq(x_27, x_28); +lean_dec(x_27); +if (x_29 == 0) +{ +lean_object* x_30; +lean_dec(x_26); +lean_dec(x_1); +x_30 = lean_box(0); +x_4 = x_30; +goto block_12; +} +else +{ +lean_object* x_31; uint8_t x_32; +x_31 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; +x_32 = lean_string_dec_eq(x_26, x_31); +if (x_32 == 0) +{ +lean_object* x_33; uint8_t x_34; +x_33 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; +x_34 = lean_string_dec_eq(x_26, x_33); +lean_dec(x_26); +if (x_34 == 0) +{ +lean_object* x_35; +lean_dec(x_1); +x_35 = lean_box(0); +x_4 = x_35; +goto block_12; +} +else +{ +lean_object* x_36; lean_object* x_37; +x_36 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__5; +x_37 = lean_eval_const(x_36, x_1, x_3); +lean_dec(x_3); +lean_dec(x_1); +if (lean_obj_tag(x_37) == 0) +{ +uint8_t x_38; +x_38 = !lean_is_exclusive(x_37); +if (x_38 == 0) +{ +return x_37; +} +else +{ +lean_object* x_39; lean_object* x_40; +x_39 = lean_ctor_get(x_37, 0); +lean_inc(x_39); +lean_dec(x_37); +x_40 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_40, 0, x_39); +return x_40; +} +} +else +{ +lean_object* x_41; uint8_t x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_37, 0); +lean_inc(x_41); +lean_dec(x_37); +x_42 = 1; +x_43 = l_Lean_Parser_compileParserDescr___main(x_2, x_42, x_41); +if (lean_obj_tag(x_43) == 0) +{ +uint8_t x_44; +x_44 = !lean_is_exclusive(x_43); +if (x_44 == 0) +{ +return x_43; +} +else +{ +lean_object* x_45; lean_object* x_46; +x_45 = lean_ctor_get(x_43, 0); +lean_inc(x_45); +lean_dec(x_43); +x_46 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_46, 0, x_45); +return x_46; +} +} +else +{ +uint8_t x_47; +x_47 = !lean_is_exclusive(x_43); +if (x_47 == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_48 = lean_ctor_get(x_43, 0); +x_49 = lean_box(x_42); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_48); +lean_ctor_set(x_43, 0, x_50); +return x_43; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_51 = lean_ctor_get(x_43, 0); +lean_inc(x_51); +lean_dec(x_43); +x_52 = lean_box(x_42); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_51); +x_54 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_54, 0, x_53); +return x_54; +} +} +} +} +} +else +{ +lean_object* x_55; lean_object* x_56; +lean_dec(x_26); +x_55 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__6; +x_56 = lean_eval_const(x_55, x_1, x_3); +lean_dec(x_3); +lean_dec(x_1); +if (lean_obj_tag(x_56) == 0) +{ +uint8_t x_57; +x_57 = !lean_is_exclusive(x_56); +if (x_57 == 0) +{ +return x_56; +} +else +{ +lean_object* x_58; lean_object* x_59; +x_58 = lean_ctor_get(x_56, 0); +lean_inc(x_58); +lean_dec(x_56); +x_59 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_59, 0, x_58); +return x_59; +} +} +else +{ +lean_object* x_60; uint8_t x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_56, 0); +lean_inc(x_60); +lean_dec(x_56); +x_61 = 0; +x_62 = l_Lean_Parser_compileParserDescr___main(x_2, x_61, x_60); +if (lean_obj_tag(x_62) == 0) +{ +uint8_t x_63; +x_63 = !lean_is_exclusive(x_62); +if (x_63 == 0) +{ +return x_62; +} +else +{ +lean_object* x_64; lean_object* x_65; +x_64 = lean_ctor_get(x_62, 0); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_65, 0, x_64); +return x_65; +} +} +else +{ +uint8_t x_66; +x_66 = !lean_is_exclusive(x_62); +if (x_66 == 0) +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = lean_ctor_get(x_62, 0); +x_68 = lean_box(x_61); +x_69 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_69, 0, x_68); +lean_ctor_set(x_69, 1, x_67); +lean_ctor_set(x_62, 0, x_69); +return x_62; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_70 = lean_ctor_get(x_62, 0); +lean_inc(x_70); +lean_dec(x_62); +x_71 = lean_box(x_61); +x_72 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_72, 0, x_71); +lean_ctor_set(x_72, 1, x_70); +x_73 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_73, 0, x_72); +return x_73; +} +} +} +} +} +} +case 1: +{ +lean_object* x_74; +x_74 = lean_ctor_get(x_25, 0); +lean_inc(x_74); +if (lean_obj_tag(x_74) == 0) +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; +x_75 = lean_ctor_get(x_23, 1); +lean_inc(x_75); +lean_dec(x_23); +x_76 = lean_ctor_get(x_24, 1); +lean_inc(x_76); +lean_dec(x_24); +x_77 = lean_ctor_get(x_25, 1); +lean_inc(x_77); +lean_dec(x_25); +x_78 = l_Lean_nameToExprAux___main___closed__1; +x_79 = lean_string_dec_eq(x_77, x_78); +lean_dec(x_77); +if (x_79 == 0) +{ +lean_object* x_80; +lean_dec(x_76); +lean_dec(x_75); +lean_dec(x_1); +x_80 = lean_box(0); +x_4 = x_80; +goto block_12; +} +else +{ +lean_object* x_81; uint8_t x_82; +x_81 = l_Lean_Syntax_formatStxAux___main___closed__5; +x_82 = lean_string_dec_eq(x_76, x_81); +lean_dec(x_76); +if (x_82 == 0) +{ +lean_object* x_83; +lean_dec(x_75); +lean_dec(x_1); +x_83 = lean_box(0); +x_4 = x_83; +goto block_12; +} +else +{ +lean_object* x_84; uint8_t x_85; +x_84 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3; +x_85 = lean_string_dec_eq(x_75, x_84); +lean_dec(x_75); +if (x_85 == 0) +{ +lean_object* x_86; +lean_dec(x_1); +x_86 = lean_box(0); +x_4 = x_86; +goto block_12; +} +else +{ +lean_object* x_87; lean_object* x_88; +x_87 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__7; +x_88 = lean_eval_const(x_87, x_1, x_3); +lean_dec(x_3); +lean_dec(x_1); +if (lean_obj_tag(x_88) == 0) +{ +uint8_t x_89; +x_89 = !lean_is_exclusive(x_88); +if (x_89 == 0) +{ +return x_88; +} +else +{ +lean_object* x_90; lean_object* x_91; +x_90 = lean_ctor_get(x_88, 0); +lean_inc(x_90); +lean_dec(x_88); +x_91 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_91, 0, x_90); +return x_91; +} +} +else +{ +uint8_t x_92; +x_92 = !lean_is_exclusive(x_88); +if (x_92 == 0) +{ +lean_object* x_93; uint8_t x_94; lean_object* x_95; lean_object* x_96; +x_93 = lean_ctor_get(x_88, 0); +x_94 = 1; +x_95 = lean_box(x_94); +x_96 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_96, 0, x_95); +lean_ctor_set(x_96, 1, x_93); +lean_ctor_set(x_88, 0, x_96); +return x_88; +} +else +{ +lean_object* x_97; uint8_t x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_97 = lean_ctor_get(x_88, 0); +lean_inc(x_97); +lean_dec(x_88); +x_98 = 1; +x_99 = lean_box(x_98); +x_100 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_100, 0, x_99); +lean_ctor_set(x_100, 1, x_97); +x_101 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_101, 0, x_100); +return x_101; +} +} +} +} +} +} +else +{ +lean_object* x_102; +lean_dec(x_74); +lean_dec(x_25); +lean_dec(x_24); +lean_dec(x_23); +lean_dec(x_1); +x_102 = lean_box(0); +x_4 = x_102; +goto block_12; +} +} +default: +{ +lean_object* x_103; +lean_dec(x_25); +lean_dec(x_24); +lean_dec(x_23); +lean_dec(x_1); +x_103 = lean_box(0); +x_4 = x_103; +goto block_12; +} +} +} +else +{ +lean_object* x_104; +lean_dec(x_24); +lean_dec(x_23); +lean_dec(x_1); +x_104 = lean_box(0); +x_4 = x_104; +goto block_12; +} +} +else +{ +lean_object* x_105; +lean_dec(x_23); +lean_dec(x_1); +x_105 = lean_box(0); +x_4 = x_105; +goto block_12; +} +} +case 5: +{ +lean_object* x_106; +x_106 = lean_ctor_get(x_22, 0); +lean_inc(x_106); +if (lean_obj_tag(x_106) == 4) +{ +lean_object* x_107; +x_107 = lean_ctor_get(x_106, 0); +lean_inc(x_107); +lean_dec(x_106); +if (lean_obj_tag(x_107) == 1) +{ +lean_object* x_108; +x_108 = lean_ctor_get(x_107, 0); +lean_inc(x_108); +if (lean_obj_tag(x_108) == 1) +{ +lean_object* x_109; +x_109 = lean_ctor_get(x_108, 0); +lean_inc(x_109); +if (lean_obj_tag(x_109) == 1) +{ +lean_object* x_110; +x_110 = lean_ctor_get(x_109, 0); +lean_inc(x_110); +if (lean_obj_tag(x_110) == 0) +{ +lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116; +x_111 = lean_ctor_get(x_22, 1); +lean_inc(x_111); +lean_dec(x_22); +x_112 = lean_ctor_get(x_107, 1); +lean_inc(x_112); +lean_dec(x_107); +x_113 = lean_ctor_get(x_108, 1); +lean_inc(x_113); +lean_dec(x_108); +x_114 = lean_ctor_get(x_109, 1); +lean_inc(x_114); +lean_dec(x_109); +x_115 = l_Lean_nameToExprAux___main___closed__1; +x_116 = lean_string_dec_eq(x_114, x_115); +lean_dec(x_114); +if (x_116 == 0) +{ +lean_object* x_117; +lean_dec(x_113); +lean_dec(x_112); +lean_dec(x_111); +lean_dec(x_1); +x_117 = lean_box(0); +x_4 = x_117; +goto block_12; +} +else +{ +lean_object* x_118; uint8_t x_119; +x_118 = l_Lean_Syntax_formatStxAux___main___closed__5; +x_119 = lean_string_dec_eq(x_113, x_118); +lean_dec(x_113); +if (x_119 == 0) +{ +lean_object* x_120; +lean_dec(x_112); +lean_dec(x_111); +lean_dec(x_1); +x_120 = lean_box(0); +x_4 = x_120; +goto block_12; +} +else +{ +uint8_t x_121; +x_121 = lean_string_dec_eq(x_112, x_118); +lean_dec(x_112); +if (x_121 == 0) +{ +lean_object* x_122; +lean_dec(x_111); +lean_dec(x_1); +x_122 = lean_box(0); +x_4 = x_122; +goto block_12; +} +else +{ +if (lean_obj_tag(x_111) == 4) +{ +lean_object* x_123; +x_123 = lean_ctor_get(x_111, 0); +lean_inc(x_123); +lean_dec(x_111); +if (lean_obj_tag(x_123) == 1) +{ +lean_object* x_124; +x_124 = lean_ctor_get(x_123, 0); +lean_inc(x_124); +if (lean_obj_tag(x_124) == 1) +{ +lean_object* x_125; +x_125 = lean_ctor_get(x_124, 0); +lean_inc(x_125); +if (lean_obj_tag(x_125) == 1) +{ +lean_object* x_126; +x_126 = lean_ctor_get(x_125, 0); +lean_inc(x_126); +if (lean_obj_tag(x_126) == 0) +{ +lean_object* x_127; lean_object* x_128; lean_object* x_129; uint8_t x_130; +x_127 = lean_ctor_get(x_123, 1); +lean_inc(x_127); +lean_dec(x_123); +x_128 = lean_ctor_get(x_124, 1); +lean_inc(x_128); +lean_dec(x_124); +x_129 = lean_ctor_get(x_125, 1); +lean_inc(x_129); +lean_dec(x_125); +x_130 = lean_string_dec_eq(x_129, x_115); +lean_dec(x_129); +if (x_130 == 0) +{ +lean_object* x_131; +lean_dec(x_128); +lean_dec(x_127); +lean_dec(x_1); +x_131 = lean_box(0); +x_4 = x_131; +goto block_12; +} +else +{ +lean_object* x_132; uint8_t x_133; +x_132 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4; +x_133 = lean_string_dec_eq(x_128, x_132); +lean_dec(x_128); +if (x_133 == 0) +{ +lean_object* x_134; +lean_dec(x_127); +lean_dec(x_1); +x_134 = lean_box(0); +x_4 = x_134; +goto block_12; +} +else +{ +lean_object* x_135; uint8_t x_136; +x_135 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; +x_136 = lean_string_dec_eq(x_127, x_135); +lean_dec(x_127); +if (x_136 == 0) +{ +lean_object* x_137; +lean_dec(x_1); +x_137 = lean_box(0); +x_4 = x_137; +goto block_12; +} +else +{ +lean_object* x_138; lean_object* x_139; +x_138 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__8; +x_139 = lean_eval_const(x_138, x_1, x_3); +lean_dec(x_3); +lean_dec(x_1); +if (lean_obj_tag(x_139) == 0) +{ +uint8_t x_140; +x_140 = !lean_is_exclusive(x_139); +if (x_140 == 0) +{ +return x_139; +} +else +{ +lean_object* x_141; lean_object* x_142; +x_141 = lean_ctor_get(x_139, 0); +lean_inc(x_141); +lean_dec(x_139); +x_142 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_142, 0, x_141); +return x_142; +} +} +else +{ +uint8_t x_143; +x_143 = !lean_is_exclusive(x_139); +if (x_143 == 0) +{ +lean_object* x_144; uint8_t x_145; lean_object* x_146; lean_object* x_147; +x_144 = lean_ctor_get(x_139, 0); +x_145 = 0; +x_146 = lean_box(x_145); +x_147 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_147, 0, x_146); +lean_ctor_set(x_147, 1, x_144); +lean_ctor_set(x_139, 0, x_147); +return x_139; +} +else +{ +lean_object* x_148; uint8_t x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; +x_148 = lean_ctor_get(x_139, 0); +lean_inc(x_148); +lean_dec(x_139); +x_149 = 0; +x_150 = lean_box(x_149); +x_151 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_151, 0, x_150); +lean_ctor_set(x_151, 1, x_148); +x_152 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_152, 0, x_151); +return x_152; +} +} +} +} +} +} +else +{ +lean_object* x_153; +lean_dec(x_126); +lean_dec(x_125); +lean_dec(x_124); +lean_dec(x_123); +lean_dec(x_1); +x_153 = lean_box(0); +x_4 = x_153; +goto block_12; +} +} +else +{ +lean_object* x_154; +lean_dec(x_125); +lean_dec(x_124); +lean_dec(x_123); +lean_dec(x_1); +x_154 = lean_box(0); +x_4 = x_154; +goto block_12; +} +} +else +{ +lean_object* x_155; +lean_dec(x_124); +lean_dec(x_123); +lean_dec(x_1); +x_155 = lean_box(0); +x_4 = x_155; +goto block_12; +} +} +else +{ +lean_object* x_156; +lean_dec(x_123); +lean_dec(x_1); +x_156 = lean_box(0); +x_4 = x_156; +goto block_12; +} +} +else +{ +lean_object* x_157; +lean_dec(x_111); +lean_dec(x_1); +x_157 = lean_box(0); +x_4 = x_157; +goto block_12; +} +} +} +} +} +else +{ +lean_object* x_158; +lean_dec(x_110); +lean_dec(x_109); +lean_dec(x_108); +lean_dec(x_107); +lean_dec(x_22); +lean_dec(x_1); +x_158 = lean_box(0); +x_4 = x_158; +goto block_12; +} +} +else +{ +lean_object* x_159; +lean_dec(x_109); +lean_dec(x_108); +lean_dec(x_107); +lean_dec(x_22); +lean_dec(x_1); +x_159 = lean_box(0); +x_4 = x_159; +goto block_12; +} +} +else +{ +lean_object* x_160; +lean_dec(x_108); +lean_dec(x_107); +lean_dec(x_22); +lean_dec(x_1); +x_160 = lean_box(0); +x_4 = x_160; +goto block_12; +} +} +else +{ +lean_object* x_161; +lean_dec(x_107); +lean_dec(x_22); +lean_dec(x_1); +x_161 = lean_box(0); +x_4 = x_161; +goto block_12; +} +} +else +{ +lean_object* x_162; +lean_dec(x_106); +lean_dec(x_22); +lean_dec(x_1); +x_162 = lean_box(0); +x_4 = x_162; +goto block_12; +} +} +default: +{ +lean_object* x_163; +lean_dec(x_22); +lean_dec(x_1); +x_163 = lean_box(0); +x_4 = x_163; +goto block_12; +} +} +} +block_12: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_4); +x_5 = l_Lean_Name_toString___closed__1; +x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_3); +x_7 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1; +x_8 = lean_string_append(x_7, x_6); +lean_dec(x_6); +x_9 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; +x_10 = lean_string_append(x_8, x_9); +x_11 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_11, 0, x_10); +return x_11; +} +} +} +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstant___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_String_splitAux___main___closed__1; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_mkParserOfConstant(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Parser_mkParserOfConstant___closed__1; +return x_4; +} +} +lean_object* l_Lean_Parser_mkParserOfConstant___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Parser_mkParserOfConstant(x_1, x_2, x_3); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_4; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___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) { +_start: +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_array_get_size(x_4); +x_9 = lean_nat_dec_lt(x_5, x_8); +lean_dec(x_8); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_1); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_6); +lean_ctor_set(x_10, 1, x_7); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_11 = lean_array_fget(x_4, x_5); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_5, x_12); +lean_dec(x_5); +lean_inc(x_11); +lean_inc(x_1); +x_14 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_11); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_6); +lean_dec(x_1); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_7); +return x_16; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_14, 0); +lean_inc(x_17); +lean_dec(x_14); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_unbox(x_18); +lean_dec(x_18); +x_21 = l_Lean_Parser_addParser(x_20, x_6, x_11, x_19); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_13); +lean_dec(x_1); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_7); +return x_23; +} +else +{ +lean_object* x_24; +x_24 = lean_ctor_get(x_21, 0); +lean_inc(x_24); +lean_dec(x_21); +x_5 = x_13; +x_6 = x_24; +goto _start; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_array_get_size(x_4); +x_9 = lean_nat_dec_lt(x_5, x_8); +lean_dec(x_8); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_1); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_6); +lean_ctor_set(x_10, 1, x_7); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_11 = lean_array_fget(x_4, x_5); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_5, x_12); +lean_dec(x_5); +x_14 = lean_unsigned_to_nat(0u); +lean_inc(x_1); +x_15 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__1(x_1, x_3, x_11, x_11, x_14, x_6, x_7); +lean_dec(x_11); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_5 = x_13; +x_6 = x_16; +x_7 = x_17; +goto _start; +} +else +{ +uint8_t x_19; +lean_dec(x_13); +lean_dec(x_1); +x_19 = !lean_is_exclusive(x_15); +if (x_19 == 0) +{ +return x_15; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_15, 0); +x_21 = lean_ctor_get(x_15, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_15); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_array_get_size(x_4); +x_9 = lean_nat_dec_lt(x_5, x_8); +lean_dec(x_8); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_1); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_6); +lean_ctor_set(x_10, 1, x_7); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_11 = lean_array_fget(x_4, x_5); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_5, x_12); +lean_dec(x_5); +lean_inc(x_11); +lean_inc(x_1); +x_14 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_11); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_6); +lean_dec(x_1); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_7); +return x_16; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_14, 0); +lean_inc(x_17); +lean_dec(x_14); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_unbox(x_18); +lean_dec(x_18); +x_21 = l_Lean_Parser_addParser(x_20, x_6, x_11, x_19); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_13); +lean_dec(x_1); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_7); +return x_23; +} +else +{ +lean_object* x_24; +x_24 = lean_ctor_get(x_21, 0); +lean_inc(x_24); +lean_dec(x_21); +x_5 = x_13; +x_6 = x_24; +goto _start; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_array_get_size(x_4); +x_9 = lean_nat_dec_lt(x_5, x_8); +lean_dec(x_8); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_1); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_6); +lean_ctor_set(x_10, 1, x_7); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_11 = lean_array_fget(x_4, x_5); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_5, x_12); +lean_dec(x_5); +x_14 = lean_unsigned_to_nat(0u); +lean_inc(x_1); +x_15 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3(x_1, x_3, x_11, x_11, x_14, x_6, x_7); +lean_dec(x_11); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_5 = x_13; +x_6 = x_16; +x_7 = x_17; +goto _start; +} +else +{ +uint8_t x_19; +lean_dec(x_13); +lean_dec(x_1); +x_19 = !lean_is_exclusive(x_15); +if (x_19 == 0) +{ +return x_15; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_15, 0); +x_21 = lean_ctor_get(x_15, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_15); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_13__addImportedParsers(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_5 = lean_box(0); +x_6 = l_Lean_Parser_parserAttributeTableRef; +x_7 = lean_io_ref_get(x_6, x_4); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_unsigned_to_nat(0u); +x_11 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_12 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2(x_2, x_3, x_8, x_3, x_10, x_11, x_9); +lean_dec(x_8); +if (lean_obj_tag(x_12) == 0) +{ +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_12, 0); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_5); +lean_ctor_set(x_15, 1, x_14); +lean_ctor_set(x_12, 0, x_15); +return x_12; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_16 = lean_ctor_get(x_12, 0); +x_17 = lean_ctor_get(x_12, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_12); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_5); +lean_ctor_set(x_18, 1, x_16); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; +} +} +else +{ +uint8_t x_20; +x_20 = !lean_is_exclusive(x_12); +if (x_20 == 0) +{ +return x_12; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_12, 0); +x_22 = lean_ctor_get(x_12, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_12); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +else +{ +uint8_t x_24; +lean_dec(x_2); +x_24 = !lean_is_exclusive(x_7); +if (x_24 == 0) +{ +return x_7; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_7, 0); +x_26 = lean_ctor_get(x_7, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_7); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +else +{ +lean_object* x_28; lean_object* x_29; +x_28 = lean_ctor_get(x_1, 0); +x_29 = lean_io_ref_get(x_28, x_4); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 1); +lean_inc(x_31); +lean_dec(x_29); +x_32 = l_Lean_Parser_parserAttributeTableRef; +x_33 = lean_io_ref_get(x_32, x_31); +if (lean_obj_tag(x_33) == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_36 = lean_unsigned_to_nat(0u); +x_37 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__4(x_2, x_3, x_34, x_3, x_36, x_30, x_35); +lean_dec(x_34); +if (lean_obj_tag(x_37) == 0) +{ +uint8_t x_38; +x_38 = !lean_is_exclusive(x_37); +if (x_38 == 0) +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_37, 0); +x_40 = lean_box(0); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +lean_ctor_set(x_37, 0, x_41); +return x_37; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_42 = lean_ctor_get(x_37, 0); +x_43 = lean_ctor_get(x_37, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_37); +x_44 = lean_box(0); +x_45 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_45, 0, x_44); +lean_ctor_set(x_45, 1, x_42); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set(x_46, 1, x_43); +return x_46; +} +} +else +{ +uint8_t x_47; +x_47 = !lean_is_exclusive(x_37); +if (x_47 == 0) +{ +return x_37; +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_48 = lean_ctor_get(x_37, 0); +x_49 = lean_ctor_get(x_37, 1); +lean_inc(x_49); +lean_inc(x_48); +lean_dec(x_37); +x_50 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_50, 0, x_48); +lean_ctor_set(x_50, 1, x_49); +return x_50; +} +} +} +else +{ +uint8_t x_51; +lean_dec(x_30); +lean_dec(x_2); +x_51 = !lean_is_exclusive(x_33); +if (x_51 == 0) +{ +return x_33; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_33, 0); +x_53 = lean_ctor_get(x_33, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_33); +x_54 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_54, 0, x_52); +lean_ctor_set(x_54, 1, x_53); +return x_54; +} +} +} +else +{ +uint8_t x_55; +lean_dec(x_2); +x_55 = !lean_is_exclusive(x_29); +if (x_55 == 0) +{ +return x_29; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_29, 0); +x_57 = lean_ctor_get(x_29, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_29); +x_58 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_58, 0, x_56); +lean_ctor_set(x_58, 1, x_57); +return x_58; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___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_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_13__addImportedParsers___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_13__addImportedParsers___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___private_Init_Lean_Parser_Parser_13__addImportedParsers(x_1, x_2, x_3, x_4); +lean_dec(x_3); +lean_dec(x_1); +return x_5; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_14__addParserAttributeEntry(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_3 = lean_ctor_get(x_2, 0); +lean_inc(x_3); +x_4 = lean_ctor_get_uint8(x_2, sizeof(void*)*2); +x_5 = lean_ctor_get(x_2, 1); +lean_inc(x_5); +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_inc(x_3); +x_7 = l_Lean_Parser_addParser(x_4, x_6, x_3, x_5); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_1); +x_8 = l_Lean_Parser_ParserAttributeExtensionState_inhabited; +x_9 = l_unreachable_x21___rarg(x_8); +return x_9; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_7, 0); +lean_inc(x_10); +lean_dec(x_7); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_3); +lean_ctor_set(x_12, 1, x_11); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_10); +return x_13; +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_15__addParserAttribute(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; +x_6 = l_Lean_Parser_parserAttributeTableRef; +x_7 = lean_io_ref_get(x_6, x_5); +if (lean_obj_tag(x_7) == 0) +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_3); +lean_inc(x_1); +x_10 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_9, x_3); +lean_dec(x_9); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +lean_ctor_set_tag(x_7, 1); +lean_ctor_set(x_7, 0, x_11); +return x_7; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +lean_inc(x_14); +lean_inc(x_3); +x_15 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_15, 0, x_3); +lean_ctor_set(x_15, 1, x_14); +x_16 = lean_unbox(x_13); +lean_ctor_set_uint8(x_15, sizeof(void*)*2, x_16); +x_17 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); +x_18 = lean_ctor_get(x_17, 1); +lean_inc(x_18); +lean_dec(x_17); +x_19 = lean_unbox(x_13); +lean_dec(x_13); +x_20 = l_Lean_Parser_addParser(x_19, x_18, x_3, x_14); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; +lean_dec(x_15); +lean_dec(x_2); +lean_dec(x_1); +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +lean_dec(x_20); +lean_ctor_set_tag(x_7, 1); +lean_ctor_set(x_7, 0, x_21); +return x_7; +} +else +{ +lean_object* x_22; +lean_dec(x_20); +x_22 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_15); +lean_ctor_set(x_7, 0, x_22); +return x_7; +} +} +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_7, 0); +x_24 = lean_ctor_get(x_7, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_7); +lean_inc(x_3); +lean_inc(x_1); +x_25 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_23, x_3); +lean_dec(x_23); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +lean_dec(x_25); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_24); +return x_27; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; lean_object* x_36; +x_28 = lean_ctor_get(x_25, 0); +lean_inc(x_28); +lean_dec(x_25); +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +lean_inc(x_30); +lean_inc(x_3); +x_31 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_31, 0, x_3); +lean_ctor_set(x_31, 1, x_30); +x_32 = lean_unbox(x_29); +lean_ctor_set_uint8(x_31, sizeof(void*)*2, x_32); +x_33 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_35 = lean_unbox(x_29); +lean_dec(x_29); +x_36 = l_Lean_Parser_addParser(x_35, x_34, x_3, x_30); +if (lean_obj_tag(x_36) == 0) +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_31); +lean_dec(x_2); +lean_dec(x_1); +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +lean_dec(x_36); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_24); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; +lean_dec(x_36); +x_39 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_31); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_24); +return x_40; +} +} +} +} +else +{ +uint8_t x_41; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_41 = !lean_is_exclusive(x_7); +if (x_41 == 0) +{ +return x_7; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_7, 0); +x_43 = lean_ctor_get(x_7, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_7); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; +} +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_15__addParserAttribute___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 = lean_unbox(x_4); +lean_dec(x_4); +x_7 = l___private_Init_Lean_Parser_Parser_15__addParserAttribute(x_1, x_2, x_3, x_6, x_5); +return x_7; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; +x_4 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_io_ref_get(x_5, x_2); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_8 = lean_ctor_get(x_6, 0); +x_9 = lean_box(0); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_8); +lean_ctor_set(x_6, 0, x_10); +return x_6; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_11 = lean_ctor_get(x_6, 0); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +lean_inc(x_11); +lean_dec(x_6); +x_13 = lean_box(0); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_11); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_12); +return x_15; +} +} +else +{ +uint8_t x_16; +x_16 = !lean_is_exclusive(x_6); +if (x_16 == 0) +{ +return x_6; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_6, 0); +x_18 = lean_ctor_get(x_6, 1); +lean_inc(x_18); +lean_inc(x_17); +lean_dec(x_6); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_18); +return x_19; +} +} +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} uint8_t l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(lean_object* x_1, lean_object* x_2) { _start: { @@ -30367,443 +32759,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -31089,101 +33485,53 @@ return x_36; } } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object* x_1) { _start: { -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_4; lean_object* x_5; -x_4 = l_Lean_Parser_ParsingTables_inhabited___closed__1; -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -else -{ -lean_object* x_6; lean_object* x_7; -x_6 = lean_ctor_get(x_1, 0); -x_7 = lean_io_ref_get(x_6, x_3); -if (lean_obj_tag(x_7) == 0) -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -return x_7; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_7, 0); -x_10 = lean_ctor_get(x_7, 1); -lean_inc(x_10); -lean_inc(x_9); -lean_dec(x_7); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; -} -} -else -{ -uint8_t x_12; -x_12 = !lean_is_exclusive(x_7); -if (x_12 == 0) -{ -return x_7; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_7, 0); -x_14 = lean_ctor_get(x_7, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_7); -x_15 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_15, 0, x_13); -lean_ctor_set(x_15, 1, x_14); -return x_15; -} -} -} -} -} -lean_object* _init_l_Lean_Parser_registerParserAttribute___lambda__2___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("parser attribute"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerParserAttribute___lambda__2___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_registerParserAttribute___lambda__2___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +lean_dec(x_1); +x_3 = l_List_reverse___rarg(x_2); +x_4 = l_List_redLength___main___rarg(x_3); +x_5 = lean_mk_empty_array_with_capacity(x_4); +lean_dec(x_4); +x_6 = l_List_toArrayAux___main___rarg(x_3, x_5); +return x_6; } } lean_object* l_Lean_Parser_registerParserAttribute___lambda__2(lean_object* x_1) { _start: { -lean_object* x_2; -x_2 = l_Lean_Parser_registerParserAttribute___lambda__2___closed__2; -return x_2; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_object* x_8; lean_object* x_9; +x_2 = lean_ctor_get(x_1, 0); +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_List_lengthAux___main___rarg(x_2, x_3); +x_5 = l_Nat_repr(x_4); +x_6 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_6, 0, x_5); +x_7 = 0; +x_8 = l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___closed__2; +x_9 = lean_alloc_ctor(4, 2, 1); +lean_ctor_set(x_9, 0, x_8); +lean_ctor_set(x_9, 1, x_6); +lean_ctor_set_uint8(x_9, sizeof(void*)*2, x_7); +return x_9; +} +} +lean_object* l_Lean_Parser_registerParserAttribute___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Init_Lean_Parser_Parser_15__addParserAttribute(x_2, x_1, x_3, x_5, x_6); +return x_7; } } lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__2___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_14__addParserAttributeEntry), 2, 0); return x_1; } } @@ -31191,7 +33539,7 @@ lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__2() { _start: { lean_object* x_1; -x_1 = lean_mk_string("parser attribute '"); +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__1), 1, 0); return x_1; } } @@ -31199,6 +33547,22 @@ lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__3() { _start: { lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__2___boxed), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("parser attribute '"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__5() { +_start: +{ +lean_object* x_1; x_1 = lean_mk_string("' has already been defined"); return x_1; } @@ -31210,7 +33574,7 @@ lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; x_6 = lean_box(0); lean_inc(x_2); x_7 = lean_name_mk_string(x_6, x_2); -x_8 = l_Lean_Parser_parserAttributeTable; +x_8 = l_Lean_Parser_parserAttributeTableRef; x_9 = lean_io_ref_get(x_8, x_5); if (lean_obj_tag(x_9) == 0) { @@ -31225,468 +33589,552 @@ x_13 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1( lean_dec(x_11); if (x_13 == 0) { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_free_object(x_9); -x_14 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__1___boxed), 3, 1); +lean_inc(x_4); +x_14 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial___boxed), 2, 1); lean_closure_set(x_14, 0, x_4); -x_15 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -x_16 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -x_17 = l_Lean_Parser_registerParserAttribute___closed__1; +x_15 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_13__addImportedParsers___boxed), 4, 1); +lean_closure_set(x_15, 0, x_4); +x_16 = l_Lean_Parser_registerParserAttribute___closed__1; +x_17 = l_Lean_Parser_registerParserAttribute___closed__2; +x_18 = l_Lean_Parser_registerParserAttribute___closed__3; lean_inc(x_1); -x_18 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_18, 0, x_1); -lean_ctor_set(x_18, 1, x_14); -lean_ctor_set(x_18, 2, x_15); -lean_ctor_set(x_18, 3, x_16); -lean_ctor_set(x_18, 4, x_17); -x_19 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_18, x_12); -if (lean_obj_tag(x_19) == 0) +x_19 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_19, 0, x_1); +lean_ctor_set(x_19, 1, x_14); +lean_ctor_set(x_19, 2, x_15); +lean_ctor_set(x_19, 3, x_16); +lean_ctor_set(x_19, 4, x_17); +lean_ctor_set(x_19, 5, x_18); +x_20 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_19, x_12); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -lean_dec(x_19); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +lean_inc(x_21); +x_23 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__3___boxed), 6, 1); +lean_closure_set(x_23, 0, x_21); lean_inc(x_1); -x_22 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_22, 0, x_1); +x_24 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_24, 0, x_1); lean_inc(x_1); -x_23 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_23, 0, x_1); -x_24 = l_Lean_AttributeImpl_inhabited___closed__1; -x_25 = l_Lean_AttributeImpl_inhabited___closed__4; -x_26 = l_Lean_AttributeImpl_inhabited___closed__5; -x_27 = 0; -x_28 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_28, 0, x_1); -lean_ctor_set(x_28, 1, x_3); -lean_ctor_set(x_28, 2, x_24); -lean_ctor_set(x_28, 3, x_22); -lean_ctor_set(x_28, 4, x_23); -lean_ctor_set(x_28, 5, x_25); -lean_ctor_set(x_28, 6, x_26); -lean_ctor_set(x_28, 7, x_26); -lean_ctor_set_uint8(x_28, sizeof(void*)*8, x_27); -x_29 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_20); -lean_ctor_set(x_29, 2, x_2); -x_30 = lean_io_ref_get(x_8, x_21); -if (lean_obj_tag(x_30) == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_30, 1); -lean_inc(x_32); -lean_dec(x_30); -x_33 = lean_io_ref_reset(x_8, x_32); -if (lean_obj_tag(x_33) == 0) -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_33, 1); -lean_inc(x_34); -lean_dec(x_33); +x_25 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_25, 0, x_1); +x_26 = l_Lean_AttributeImpl_inhabited___closed__4; +x_27 = l_Lean_AttributeImpl_inhabited___closed__5; +x_28 = 1; +x_29 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_29, 0, x_1); +lean_ctor_set(x_29, 1, x_3); +lean_ctor_set(x_29, 2, x_23); +lean_ctor_set(x_29, 3, x_24); +lean_ctor_set(x_29, 4, x_25); +lean_ctor_set(x_29, 5, x_26); +lean_ctor_set(x_29, 6, x_27); +lean_ctor_set(x_29, 7, x_27); +lean_ctor_set_uint8(x_29, sizeof(void*)*8, x_28); lean_inc(x_29); -x_35 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_31, x_7, x_29); -x_36 = lean_io_ref_set(x_8, x_35, x_34); -if (lean_obj_tag(x_36) == 0) +x_30 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_21); +lean_ctor_set(x_30, 2, x_2); +x_31 = lean_io_ref_get(x_8, x_22); +if (lean_obj_tag(x_31) == 0) { -uint8_t x_37; -x_37 = !lean_is_exclusive(x_36); -if (x_37 == 0) -{ -lean_object* x_38; -x_38 = lean_ctor_get(x_36, 0); -lean_dec(x_38); -lean_ctor_set(x_36, 0, x_29); -return x_36; -} -else -{ -lean_object* x_39; lean_object* x_40; -x_39 = lean_ctor_get(x_36, 1); -lean_inc(x_39); -lean_dec(x_36); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_29); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -else -{ -uint8_t x_41; -lean_dec(x_29); -x_41 = !lean_is_exclusive(x_36); -if (x_41 == 0) -{ -return x_36; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_36, 0); -x_43 = lean_ctor_get(x_36, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_36); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_31, 1); +lean_inc(x_33); lean_dec(x_31); -lean_dec(x_29); -lean_dec(x_7); -x_45 = !lean_is_exclusive(x_33); -if (x_45 == 0) +x_34 = lean_io_ref_reset(x_8, x_33); +if (lean_obj_tag(x_34) == 0) { -return x_33; +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_34, 1); +lean_inc(x_35); +lean_dec(x_34); +lean_inc(x_30); +x_36 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_32, x_7, x_30); +x_37 = lean_io_ref_set(x_8, x_36, x_35); +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; lean_object* x_39; +x_38 = lean_ctor_get(x_37, 1); +lean_inc(x_38); +lean_dec(x_37); +x_39 = l_Lean_registerAttribute(x_29, x_38); +if (lean_obj_tag(x_39) == 0) +{ +uint8_t x_40; +x_40 = !lean_is_exclusive(x_39); +if (x_40 == 0) +{ +lean_object* x_41; +x_41 = lean_ctor_get(x_39, 0); +lean_dec(x_41); +lean_ctor_set(x_39, 0, x_30); +return x_39; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_33, 0); -x_47 = lean_ctor_get(x_33, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_33); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} +lean_object* x_42; lean_object* x_43; +x_42 = lean_ctor_get(x_39, 1); +lean_inc(x_42); +lean_dec(x_39); +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_30); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } else { -uint8_t x_49; -lean_dec(x_29); -lean_dec(x_7); -x_49 = !lean_is_exclusive(x_30); -if (x_49 == 0) -{ -return x_30; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_30, 0); -x_51 = lean_ctor_get(x_30, 1); -lean_inc(x_51); -lean_inc(x_50); +uint8_t x_44; lean_dec(x_30); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +x_44 = !lean_is_exclusive(x_39); +if (x_44 == 0) +{ +return x_39; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_39, 0); +x_46 = lean_ctor_get(x_39, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_39); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; } } } else { -uint8_t x_53; +uint8_t x_48; +lean_dec(x_30); +lean_dec(x_29); +x_48 = !lean_is_exclusive(x_37); +if (x_48 == 0) +{ +return x_37; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_37, 0); +x_50 = lean_ctor_get(x_37, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_37); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; +} +} +} +else +{ +uint8_t x_52; +lean_dec(x_32); +lean_dec(x_30); +lean_dec(x_29); lean_dec(x_7); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_53 = !lean_is_exclusive(x_19); -if (x_53 == 0) +x_52 = !lean_is_exclusive(x_34); +if (x_52 == 0) { -return x_19; +return x_34; } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_54 = lean_ctor_get(x_19, 0); -x_55 = lean_ctor_get(x_19, 1); -lean_inc(x_55); +lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_53 = lean_ctor_get(x_34, 0); +x_54 = lean_ctor_get(x_34, 1); lean_inc(x_54); -lean_dec(x_19); -x_56 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_56, 0, x_54); -lean_ctor_set(x_56, 1, x_55); -return x_56; +lean_inc(x_53); +lean_dec(x_34); +x_55 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_55, 0, x_53); +lean_ctor_set(x_55, 1, x_54); +return x_55; } } } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +uint8_t x_56; +lean_dec(x_30); +lean_dec(x_29); lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_57 = l_Lean_Parser_registerParserAttribute___closed__2; -x_58 = lean_string_append(x_57, x_2); -lean_dec(x_2); -x_59 = l_Lean_Parser_registerParserAttribute___closed__3; -x_60 = lean_string_append(x_58, x_59); -lean_ctor_set_tag(x_9, 1); -lean_ctor_set(x_9, 0, x_60); -return x_9; +x_56 = !lean_is_exclusive(x_31); +if (x_56 == 0) +{ +return x_31; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_31, 0); +x_58 = lean_ctor_get(x_31, 1); +lean_inc(x_58); +lean_inc(x_57); +lean_dec(x_31); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_57); +lean_ctor_set(x_59, 1, x_58); +return x_59; +} } } else { -lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_61 = lean_ctor_get(x_9, 0); -x_62 = lean_ctor_get(x_9, 1); +uint8_t x_60; +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_60 = !lean_is_exclusive(x_20); +if (x_60 == 0) +{ +return x_20; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_20, 0); +x_62 = lean_ctor_get(x_20, 1); lean_inc(x_62); lean_inc(x_61); +lean_dec(x_20); +x_63 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_63, 0, x_61); +lean_ctor_set(x_63, 1, x_62); +return x_63; +} +} +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_64 = l_Lean_Parser_registerParserAttribute___closed__4; +x_65 = lean_string_append(x_64, x_2); +lean_dec(x_2); +x_66 = l_Lean_Parser_registerParserAttribute___closed__5; +x_67 = lean_string_append(x_65, x_66); +lean_ctor_set_tag(x_9, 1); +lean_ctor_set(x_9, 0, x_67); +return x_9; +} +} +else +{ +lean_object* x_68; lean_object* x_69; uint8_t x_70; +x_68 = lean_ctor_get(x_9, 0); +x_69 = lean_ctor_get(x_9, 1); +lean_inc(x_69); +lean_inc(x_68); lean_dec(x_9); -x_63 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(x_61, x_7); -lean_dec(x_61); -if (x_63 == 0) +x_70 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(x_68, x_7); +lean_dec(x_68); +if (x_70 == 0) { -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_64 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__1___boxed), 3, 1); -lean_closure_set(x_64, 0, x_4); -x_65 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -x_66 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -x_67 = l_Lean_Parser_registerParserAttribute___closed__1; +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +lean_inc(x_4); +x_71 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_16__ParserAttribute_mkInitial___boxed), 2, 1); +lean_closure_set(x_71, 0, x_4); +x_72 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_13__addImportedParsers___boxed), 4, 1); +lean_closure_set(x_72, 0, x_4); +x_73 = l_Lean_Parser_registerParserAttribute___closed__1; +x_74 = l_Lean_Parser_registerParserAttribute___closed__2; +x_75 = l_Lean_Parser_registerParserAttribute___closed__3; lean_inc(x_1); -x_68 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_68, 0, x_1); -lean_ctor_set(x_68, 1, x_64); -lean_ctor_set(x_68, 2, x_65); -lean_ctor_set(x_68, 3, x_66); -lean_ctor_set(x_68, 4, x_67); -x_69 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_68, x_62); -if (lean_obj_tag(x_69) == 0) +x_76 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_76, 0, x_1); +lean_ctor_set(x_76, 1, x_71); +lean_ctor_set(x_76, 2, x_72); +lean_ctor_set(x_76, 3, x_73); +lean_ctor_set(x_76, 4, x_74); +lean_ctor_set(x_76, 5, x_75); +x_77 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_76, x_69); +if (lean_obj_tag(x_77) == 0) { -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; -x_70 = lean_ctor_get(x_69, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_69, 1); -lean_inc(x_71); -lean_dec(x_69); -lean_inc(x_1); -x_72 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); -lean_closure_set(x_72, 0, x_1); -lean_inc(x_1); -x_73 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); -lean_closure_set(x_73, 0, x_1); -x_74 = l_Lean_AttributeImpl_inhabited___closed__1; -x_75 = l_Lean_AttributeImpl_inhabited___closed__4; -x_76 = l_Lean_AttributeImpl_inhabited___closed__5; -x_77 = 0; -x_78 = lean_alloc_ctor(0, 8, 1); -lean_ctor_set(x_78, 0, x_1); -lean_ctor_set(x_78, 1, x_3); -lean_ctor_set(x_78, 2, x_74); -lean_ctor_set(x_78, 3, x_72); -lean_ctor_set(x_78, 4, x_73); -lean_ctor_set(x_78, 5, x_75); -lean_ctor_set(x_78, 6, x_76); -lean_ctor_set(x_78, 7, x_76); -lean_ctor_set_uint8(x_78, sizeof(void*)*8, x_77); -x_79 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_79, 0, x_78); -lean_ctor_set(x_79, 1, x_70); -lean_ctor_set(x_79, 2, x_2); -x_80 = lean_io_ref_get(x_8, x_71); -if (lean_obj_tag(x_80) == 0) -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; -x_81 = lean_ctor_get(x_80, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_80, 1); -lean_inc(x_82); -lean_dec(x_80); -x_83 = lean_io_ref_reset(x_8, x_82); -if (lean_obj_tag(x_83) == 0) -{ -lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_84 = lean_ctor_get(x_83, 1); -lean_inc(x_84); -lean_dec(x_83); +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; uint8_t x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_78 = lean_ctor_get(x_77, 0); +lean_inc(x_78); +x_79 = lean_ctor_get(x_77, 1); lean_inc(x_79); -x_85 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_81, x_7, x_79); -x_86 = lean_io_ref_set(x_8, x_85, x_84); -if (lean_obj_tag(x_86) == 0) +lean_dec(x_77); +lean_inc(x_78); +x_80 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__3___boxed), 6, 1); +lean_closure_set(x_80, 0, x_78); +lean_inc(x_1); +x_81 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__5___boxed), 5, 1); +lean_closure_set(x_81, 0, x_1); +lean_inc(x_1); +x_82 = lean_alloc_closure((void*)(l_Lean_registerTagAttribute___lambda__6___boxed), 5, 1); +lean_closure_set(x_82, 0, x_1); +x_83 = l_Lean_AttributeImpl_inhabited___closed__4; +x_84 = l_Lean_AttributeImpl_inhabited___closed__5; +x_85 = 1; +x_86 = lean_alloc_ctor(0, 8, 1); +lean_ctor_set(x_86, 0, x_1); +lean_ctor_set(x_86, 1, x_3); +lean_ctor_set(x_86, 2, x_80); +lean_ctor_set(x_86, 3, x_81); +lean_ctor_set(x_86, 4, x_82); +lean_ctor_set(x_86, 5, x_83); +lean_ctor_set(x_86, 6, x_84); +lean_ctor_set(x_86, 7, x_84); +lean_ctor_set_uint8(x_86, sizeof(void*)*8, x_85); +lean_inc(x_86); +x_87 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_87, 0, x_86); +lean_ctor_set(x_87, 1, x_78); +lean_ctor_set(x_87, 2, x_2); +x_88 = lean_io_ref_get(x_8, x_79); +if (lean_obj_tag(x_88) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_79); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_79); -x_90 = lean_ctor_get(x_86, 0); +lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_89 = lean_ctor_get(x_88, 0); +lean_inc(x_89); +x_90 = lean_ctor_get(x_88, 1); lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else +lean_dec(x_88); +x_91 = lean_io_ref_reset(x_8, x_90); +if (lean_obj_tag(x_91) == 0) { -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; -lean_dec(x_81); -lean_dec(x_79); -lean_dec(x_7); -x_94 = lean_ctor_get(x_83, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_83, 1); +lean_object* x_92; lean_object* x_93; lean_object* x_94; +x_92 = lean_ctor_get(x_91, 1); +lean_inc(x_92); +lean_dec(x_91); +lean_inc(x_87); +x_93 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_89, x_7, x_87); +x_94 = lean_io_ref_set(x_8, x_93, x_92); +if (lean_obj_tag(x_94) == 0) +{ +lean_object* x_95; lean_object* x_96; +x_95 = lean_ctor_get(x_94, 1); lean_inc(x_95); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_96 = x_83; +lean_dec(x_94); +x_96 = l_Lean_registerAttribute(x_86, x_95); +if (lean_obj_tag(x_96) == 0) +{ +lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_97 = lean_ctor_get(x_96, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_96)) { + lean_ctor_release(x_96, 0); + lean_ctor_release(x_96, 1); + x_98 = x_96; } else { - lean_dec_ref(x_83); - x_96 = lean_box(0); + lean_dec_ref(x_96); + x_98 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(0, 2, 0); } else { - x_97 = x_96; + x_99 = x_98; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_99, 0, x_87); +lean_ctor_set(x_99, 1, x_97); +return x_99; +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_87); +x_100 = lean_ctor_get(x_96, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_96, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_96)) { + lean_ctor_release(x_96, 0); + lean_ctor_release(x_96, 1); + x_102 = x_96; +} else { + lean_dec_ref(x_96); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_79); +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; +lean_dec(x_87); +lean_dec(x_86); +x_104 = lean_ctor_get(x_94, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_94, 1); +lean_inc(x_105); +if (lean_is_exclusive(x_94)) { + lean_ctor_release(x_94, 0); + lean_ctor_release(x_94, 1); + x_106 = x_94; +} else { + lean_dec_ref(x_94); + x_106 = lean_box(0); +} +if (lean_is_scalar(x_106)) { + x_107 = lean_alloc_ctor(1, 2, 0); +} else { + x_107 = x_106; +} +lean_ctor_set(x_107, 0, x_104); +lean_ctor_set(x_107, 1, x_105); +return x_107; +} +} +else +{ +lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +lean_dec(x_89); +lean_dec(x_87); +lean_dec(x_86); lean_dec(x_7); -x_98 = lean_ctor_get(x_80, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_80, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_80)) { - lean_ctor_release(x_80, 0); - lean_ctor_release(x_80, 1); - x_100 = x_80; +x_108 = lean_ctor_get(x_91, 0); +lean_inc(x_108); +x_109 = lean_ctor_get(x_91, 1); +lean_inc(x_109); +if (lean_is_exclusive(x_91)) { + lean_ctor_release(x_91, 0); + lean_ctor_release(x_91, 1); + x_110 = x_91; } else { - lean_dec_ref(x_80); - x_100 = lean_box(0); + lean_dec_ref(x_91); + x_110 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_110)) { + x_111 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_111 = x_110; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_111, 0, x_108); +lean_ctor_set(x_111, 1, x_109); +return x_111; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; +lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; +lean_dec(x_87); +lean_dec(x_86); +lean_dec(x_7); +x_112 = lean_ctor_get(x_88, 0); +lean_inc(x_112); +x_113 = lean_ctor_get(x_88, 1); +lean_inc(x_113); +if (lean_is_exclusive(x_88)) { + lean_ctor_release(x_88, 0); + lean_ctor_release(x_88, 1); + x_114 = x_88; +} else { + lean_dec_ref(x_88); + x_114 = lean_box(0); +} +if (lean_is_scalar(x_114)) { + x_115 = lean_alloc_ctor(1, 2, 0); +} else { + x_115 = x_114; +} +lean_ctor_set(x_115, 0, x_112); +lean_ctor_set(x_115, 1, x_113); +return x_115; +} +} +else +{ +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_dec(x_7); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_102 = lean_ctor_get(x_69, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_69, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_69)) { - lean_ctor_release(x_69, 0); - lean_ctor_release(x_69, 1); - x_104 = x_69; +x_116 = lean_ctor_get(x_77, 0); +lean_inc(x_116); +x_117 = lean_ctor_get(x_77, 1); +lean_inc(x_117); +if (lean_is_exclusive(x_77)) { + lean_ctor_release(x_77, 0); + lean_ctor_release(x_77, 1); + x_118 = x_77; } else { - lean_dec_ref(x_69); - x_104 = lean_box(0); + lean_dec_ref(x_77); + x_118 = lean_box(0); } -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_118)) { + x_119 = lean_alloc_ctor(1, 2, 0); } else { - x_105 = x_104; + x_119 = x_118; } -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; +lean_ctor_set(x_119, 0, x_116); +lean_ctor_set(x_119, 1, x_117); +return x_119; } } else { -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; +lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_dec(x_7); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_106 = l_Lean_Parser_registerParserAttribute___closed__2; -x_107 = lean_string_append(x_106, x_2); +x_120 = l_Lean_Parser_registerParserAttribute___closed__4; +x_121 = lean_string_append(x_120, x_2); lean_dec(x_2); -x_108 = l_Lean_Parser_registerParserAttribute___closed__3; -x_109 = lean_string_append(x_107, x_108); -x_110 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_110, 0, x_109); -lean_ctor_set(x_110, 1, x_62); -return x_110; +x_122 = l_Lean_Parser_registerParserAttribute___closed__5; +x_123 = lean_string_append(x_121, x_122); +x_124 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_124, 0, x_123); +lean_ctor_set(x_124, 1, x_69); +return x_124; } } } else { -uint8_t x_111; +uint8_t x_125; lean_dec(x_7); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_111 = !lean_is_exclusive(x_9); -if (x_111 == 0) +x_125 = !lean_is_exclusive(x_9); +if (x_125 == 0) { return x_9; } else { -lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_112 = lean_ctor_get(x_9, 0); -x_113 = lean_ctor_get(x_9, 1); -lean_inc(x_113); -lean_inc(x_112); +lean_object* x_126; lean_object* x_127; lean_object* x_128; +x_126 = lean_ctor_get(x_9, 0); +x_127 = lean_ctor_get(x_9, 1); +lean_inc(x_127); +lean_inc(x_126); lean_dec(x_9); -x_114 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_114, 0, x_112); -lean_ctor_set(x_114, 1, x_113); -return x_114; +x_128 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_128, 0, x_126); +lean_ctor_set(x_128, 1, x_127); +return x_128; } } } @@ -31726,16 +34174,6 @@ x_7 = lean_box(x_6); return x_7; } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Parser_registerParserAttribute___lambda__1(x_1, x_2, x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_4; -} -} lean_object* l_Lean_Parser_registerParserAttribute___lambda__2___boxed(lean_object* x_1) { _start: { @@ -31745,6 +34183,17 @@ lean_dec(x_1); return x_2; } } +lean_object* l_Lean_Parser_registerParserAttribute___lambda__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: +{ +uint8_t x_7; lean_object* x_8; +x_7 = lean_unbox(x_5); +lean_dec(x_5); +x_8 = l_Lean_Parser_registerParserAttribute___lambda__3(x_1, x_2, x_3, x_4, x_7, x_6); +lean_dec(x_4); +return x_8; +} +} lean_object* _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__1() { _start: { @@ -32057,7 +34506,7 @@ x_3 = l_Lean_Parser_dollarSymbol(x_2); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1() { _start: { lean_object* x_1; @@ -32065,7 +34514,7 @@ x_1 = lean_mk_string("unexpected ':'"); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; uint8_t x_5; @@ -32101,7 +34550,7 @@ return x_2; else { lean_object* x_13; lean_object* x_14; -x_13 = l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1; +x_13 = l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1; x_14 = l_Lean_Parser_ParserState_mkUnexpectedError(x_2, x_13); return x_14; } @@ -32114,20 +34563,20 @@ return x_2; } } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1(uint8_t x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___boxed), 2, 0); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___boxed), 2, 0); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon(uint8_t x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon(uint8_t x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_2 = lean_box(x_1); -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___boxed), 2, 1); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___boxed), 2, 1); lean_closure_set(x_3, 0, x_2); x_4 = l_Lean_Parser_Parser_inhabited___closed__1; x_5 = lean_alloc_ctor(0, 2, 0); @@ -32136,37 +34585,37 @@ lean_ctor_set(x_5, 1, x_3); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg(x_1, x_2); +x_3 = l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1(x_3, x_2); +x_4 = l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1(x_3, x_2); lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__noImmediateColon___boxed(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_17__noImmediateColon___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; x_2 = lean_unbox(x_1); lean_dec(x_1); -x_3 = l___private_Init_Lean_Parser_Parser_9__noImmediateColon(x_2); +x_3 = l___private_Init_Lean_Parser_Parser_17__noImmediateColon(x_2); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___rarg(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___rarg(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -32175,20 +34624,20 @@ x_3 = l_Lean_Parser_ParserState_pushSyntax(x_1, x_2); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___rarg), 1, 0); +x_4 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___rarg), 1, 0); return x_4; } } -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone(uint8_t x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone(uint8_t x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_2 = lean_box(x_1); -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___boxed), 3, 1); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___boxed), 3, 1); lean_closure_set(x_3, 0, x_2); x_4 = l_Lean_Parser_Parser_inhabited___closed__1; x_5 = lean_alloc_ctor(0, 2, 0); @@ -32197,25 +34646,25 @@ lean_ctor_set(x_5, 1, x_3); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; lean_object* x_5; x_4 = lean_unbox(x_1); lean_dec(x_1); -x_5 = l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1(x_4, x_2, x_3); +x_5 = l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1(x_4, x_2, x_3); lean_dec(x_3); lean_dec(x_2); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_10__pushNone___boxed(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_18__pushNone___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; x_2 = lean_unbox(x_1); lean_dec(x_1); -x_3 = l___private_Init_Lean_Parser_Parser_10__pushNone(x_2); +x_3 = l___private_Init_Lean_Parser_Parser_18__pushNone(x_2); return x_3; } } @@ -32473,8 +34922,8 @@ return x_42; else { lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_43 = l___private_Init_Lean_Parser_Parser_9__noImmediateColon(x_1); -x_44 = l___private_Init_Lean_Parser_Parser_10__pushNone(x_1); +x_43 = l___private_Init_Lean_Parser_Parser_17__noImmediateColon(x_1); +x_44 = l___private_Init_Lean_Parser_Parser_18__pushNone(x_1); x_45 = lean_ctor_get(x_43, 0); lean_inc(x_45); lean_dec(x_43); @@ -32483,10 +34932,10 @@ lean_inc(x_46); lean_dec(x_44); x_47 = l_Lean_Parser_andthenInfo(x_45, x_46); x_48 = lean_box(x_1); -x_49 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___boxed), 2, 1); +x_49 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___boxed), 2, 1); lean_closure_set(x_49, 0, x_48); x_50 = lean_box(x_1); -x_51 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_10__pushNone___elambda__1___boxed), 3, 1); +x_51 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__pushNone___elambda__1___boxed), 3, 1); lean_closure_set(x_51, 0, x_50); x_52 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); lean_closure_set(x_52, 0, x_49); @@ -34075,6 +36524,10 @@ if (lean_io_result_is_error(res)) return res; l_Lean_Parser_builtinTokenTable = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Parser_builtinTokenTable); lean_dec_ref(res); +l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1 = _init_l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__1); +l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2 = _init_l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_10__addTokenTableEntry___closed__2); l_Lean_Parser_TokenTableAttribute_inhabited___closed__1 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__1(); lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__1); l_Lean_Parser_TokenTableAttribute_inhabited___closed__2 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__2(); @@ -34083,8 +36536,36 @@ l_Lean_Parser_TokenTableAttribute_inhabited___closed__3 = _init_l_Lean_Parser_To lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__3); l_Lean_Parser_TokenTableAttribute_inhabited___closed__4 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__4(); lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__4); +l_Lean_Parser_TokenTableAttribute_inhabited___closed__5 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__5(); +lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__5); l_Lean_Parser_TokenTableAttribute_inhabited = _init_l_Lean_Parser_TokenTableAttribute_inhabited(); lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited); +l_Lean_Parser_mkTokenTableAttribute___closed__1 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__1); +l_Lean_Parser_mkTokenTableAttribute___closed__2 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__2(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__2); +l_Lean_Parser_mkTokenTableAttribute___closed__3 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__3(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__3); +l_Lean_Parser_mkTokenTableAttribute___closed__4 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__4(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__4); +l_Lean_Parser_mkTokenTableAttribute___closed__5 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__5(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__5); +l_Lean_Parser_mkTokenTableAttribute___closed__6 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__6(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__6); +l_Lean_Parser_mkTokenTableAttribute___closed__7 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__7(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__7); +l_Lean_Parser_mkTokenTableAttribute___closed__8 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__8(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__8); +l_Lean_Parser_mkTokenTableAttribute___closed__9 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__9(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__9); +l_Lean_Parser_mkTokenTableAttribute___closed__10 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__10(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__10); +l_Lean_Parser_mkTokenTableAttribute___closed__11 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__11(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__11); +l_Lean_Parser_mkTokenTableAttribute___closed__12 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__12(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__12); +l_Lean_Parser_mkTokenTableAttribute___closed__13 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__13(); +lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__13); res = l_Lean_Parser_mkTokenTableAttribute(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Parser_tokenTableAttribute = lean_io_result_get_value(res); @@ -34102,10 +36583,10 @@ if (lean_io_result_is_error(res)) return res; l_Lean_Parser_builtinTermParsingTable = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Parser_builtinTermParsingTable); lean_dec_ref(res); -l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__updateTokens___closed__1); -l_Lean_Parser_addBuiltinLeadingParser___closed__1 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__1(); -lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__1); +l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_12__updateBuiltinTokens___closed__1); +l_Lean_Parser_addLeadingParser___closed__1 = _init_l_Lean_Parser_addLeadingParser___closed__1(); +lean_mark_persistent(l_Lean_Parser_addLeadingParser___closed__1); l_Lean_Parser_declareBuiltinParser___closed__1 = _init_l_Lean_Parser_declareBuiltinParser___closed__1(); lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__1); l_Lean_Parser_declareBuiltinParser___closed__2 = _init_l_Lean_Parser_declareBuiltinParser___closed__2(); @@ -34148,6 +36629,12 @@ l_Lean_Parser_registerBuiltinParserAttribute___closed__1 = _init_l_Lean_Parser_r lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___closed__1); l_Lean_Parser_runBuiltinParserUnsafe___closed__1 = _init_l_Lean_Parser_runBuiltinParserUnsafe___closed__1(); lean_mark_persistent(l_Lean_Parser_runBuiltinParserUnsafe___closed__1); +l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1 = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1(); +lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1); +l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2 = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2(); +lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2); +l_Lean_Parser_ParserAttributeExtensionState_inhabited = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited(); +lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited); l_Lean_Parser_ParserAttribute_Inhabited___closed__1 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__1(); lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited___closed__1); l_Lean_Parser_ParserAttribute_Inhabited___closed__2 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__2(); @@ -34162,23 +36649,41 @@ l_Lean_Parser_mkParserAttributeTable___closed__1 = _init_l_Lean_Parser_mkParserA lean_mark_persistent(l_Lean_Parser_mkParserAttributeTable___closed__1); res = l_Lean_Parser_mkParserAttributeTable(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_parserAttributeTable = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_parserAttributeTable); +l_Lean_Parser_parserAttributeTableRef = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_parserAttributeTableRef); lean_dec_ref(res); l_Lean_Parser_compileParserDescr___main___closed__1 = _init_l_Lean_Parser_compileParserDescr___main___closed__1(); lean_mark_persistent(l_Lean_Parser_compileParserDescr___main___closed__1); l_Lean_Parser_compileParserDescr___main___closed__2 = _init_l_Lean_Parser_compileParserDescr___main___closed__2(); lean_mark_persistent(l_Lean_Parser_compileParserDescr___main___closed__2); -l_Lean_Parser_registerParserAttribute___lambda__2___closed__1 = _init_l_Lean_Parser_registerParserAttribute___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___lambda__2___closed__1); -l_Lean_Parser_registerParserAttribute___lambda__2___closed__2 = _init_l_Lean_Parser_registerParserAttribute___lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___lambda__2___closed__2); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__1 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__1); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__2 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__2(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__2); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__3 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__3(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__3); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__4 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__4(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__4); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__5 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__5(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__5); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__6 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__6(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__6); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__7 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__7(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__7); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__8 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__8(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__8); +l_Lean_Parser_mkParserOfConstant___closed__1 = _init_l_Lean_Parser_mkParserOfConstant___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstant___closed__1); l_Lean_Parser_registerParserAttribute___closed__1 = _init_l_Lean_Parser_registerParserAttribute___closed__1(); lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__1); l_Lean_Parser_registerParserAttribute___closed__2 = _init_l_Lean_Parser_registerParserAttribute___closed__2(); lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__2); l_Lean_Parser_registerParserAttribute___closed__3 = _init_l_Lean_Parser_registerParserAttribute___closed__3(); lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__3); +l_Lean_Parser_registerParserAttribute___closed__4 = _init_l_Lean_Parser_registerParserAttribute___closed__4(); +lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__4); +l_Lean_Parser_registerParserAttribute___closed__5 = _init_l_Lean_Parser_registerParserAttribute___closed__5(); +lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__5); l_Lean_Parser_regBuiltinTermParserAttr___closed__1 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__1(); lean_mark_persistent(l_Lean_Parser_regBuiltinTermParserAttr___closed__1); l_Lean_Parser_regBuiltinTermParserAttr___closed__2 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__2(); @@ -34219,8 +36724,8 @@ l_Lean_Parser_dollarSymbol___closed__1 = _init_l_Lean_Parser_dollarSymbol___clos lean_mark_persistent(l_Lean_Parser_dollarSymbol___closed__1); l_Lean_Parser_dollarSymbol___closed__2 = _init_l_Lean_Parser_dollarSymbol___closed__2(); lean_mark_persistent(l_Lean_Parser_dollarSymbol___closed__2); -l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_9__noImmediateColon___elambda__1___rarg___closed__1); +l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_17__noImmediateColon___elambda__1___rarg___closed__1); l_Lean_Parser_mkAntiquot___closed__1 = _init_l_Lean_Parser_mkAntiquot___closed__1(); lean_mark_persistent(l_Lean_Parser_mkAntiquot___closed__1); l_Lean_Parser_mkAntiquot___closed__2 = _init_l_Lean_Parser_mkAntiquot___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Parser/Term.c b/stage0/stdlib/Init/Lean/Parser/Term.c index 0b29c5908c..3a35f22514 100644 --- a/stage0/stdlib/Init/Lean/Parser/Term.c +++ b/stage0/stdlib/Init/Lean/Parser/Term.c @@ -352,6 +352,7 @@ lean_object* l_Lean_Parser_Term_not___closed__3; extern lean_object* l_Lean_Parser_mkAntiquot___closed__4; lean_object* l_Lean_Parser_Term_quotedName___closed__6; lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letEqns___closed__3; lean_object* l_Lean_Parser_Term_optIdent___closed__4; lean_object* lean_array_push(lean_object*, lean_object*); @@ -1170,7 +1171,6 @@ lean_object* l_Lean_Parser_Term_doElem___elambda__1(lean_object*, lean_object*, lean_object* l_Lean_Parser_Term_id___closed__5; lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; -lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_prop___closed__3; lean_object* l_Lean_Parser_Term_proj___closed__1; lean_object* l_Lean_Parser_Term_letIdLhs___closed__1; @@ -1648,7 +1648,6 @@ lean_object* l_Lean_Parser_Term_pow; lean_object* l_Lean_Parser_Term_letIdDecl___closed__4; lean_object* l_Lean_Parser_Term_leftArrow___closed__1; lean_object* l_Lean_Parser_Term_match__syntax___closed__6; -lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_do___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_doLet___elambda__1___closed__2; @@ -3573,12 +3572,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_id(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_id___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_id; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_id___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_id; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_num___elambda__1___closed__1() { @@ -3728,12 +3728,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_num(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_num___elambda__1___closed__1; -x_4 = l_Lean_Parser_Term_num; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_num___elambda__1___closed__1; +x_5 = l_Lean_Parser_Term_num; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_str___elambda__1___closed__1() { @@ -3891,12 +3892,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_str(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_str___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_str; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_str___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_str; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_char___elambda__1___closed__1() { @@ -4054,12 +4056,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_char(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_char___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_char; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_char___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_char; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_type___elambda__1___closed__1() { @@ -4338,12 +4341,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_type(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_type___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_type; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_type___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_type; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__1() { @@ -4622,12 +4626,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sort(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_sort; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_sort___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_sort; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_prop___elambda__1___closed__1() { @@ -4906,12 +4911,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_prop(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_prop___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_prop; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_prop___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_prop; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_hole___elambda__1___closed__1() { @@ -5133,12 +5139,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_hole(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_hole___elambda__1___closed__1; -x_4 = l_Lean_Parser_Term_hole; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_hole___elambda__1___closed__1; +x_5 = l_Lean_Parser_Term_hole; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_sorry___elambda__1___closed__1() { @@ -5409,12 +5416,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sorry(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_sorry___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_sorry; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_sorry___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_sorry; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_cdot___elambda__1___closed__1() { @@ -5693,12 +5701,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_cdot(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_cdot___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_cdot; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_cdot___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_cdot; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_emptyC___elambda__1___closed__1() { @@ -5977,12 +5986,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_emptyC(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_emptyC___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_emptyC; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_emptyC___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_emptyC; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_typeAscription___elambda__1___closed__1() { @@ -7301,12 +7311,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_paren(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_paren___elambda__1___closed__1; -x_4 = l_Lean_Parser_Term_paren; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_paren___elambda__1___closed__1; +x_5 = l_Lean_Parser_Term_paren; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_anonymousCtor___elambda__1___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -7787,12 +7798,13 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_anonymousCtor(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_anonymousCtor; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_anonymousCtor; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_Term_optIdent___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -8745,12 +8757,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_if(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_if___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_if; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_if___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_if; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_fromTerm___elambda__1___closed__1() { @@ -10014,12 +10027,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_have(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_have___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_have; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_have___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_have; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_suffices___elambda__1___closed__1() { @@ -10490,12 +10504,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_suffices(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_suffices___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_suffices; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_suffices___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_suffices; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_show___elambda__1___closed__1() { @@ -10837,12 +10852,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_show(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_show___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_show; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_show___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_show; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_fun___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -11431,12 +11447,13 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Term_fun(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_fun___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_fun; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_fun___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_fun; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_structInstField___elambda__1___closed__1() { @@ -13002,12 +13019,13 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_structInst(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_structInst___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_structInst; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_structInst___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_structInst; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_typeSpec___elambda__1___closed__1() { @@ -13893,12 +13911,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_subtype(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_subtype___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_subtype; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_subtype___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_subtype; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_listLit___elambda__1___spec__2___closed__1() { @@ -14585,12 +14604,13 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_listLit(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_listLit___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_listLit; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_listLit___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_listLit; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_arrayLit___elambda__1___closed__1() { @@ -14974,12 +14994,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_arrayLit(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_arrayLit___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_arrayLit; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_arrayLit___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_arrayLit; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_explicit___elambda__1___closed__1() { @@ -15240,12 +15261,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_explicit(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_explicit___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_explicit; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_explicit___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_explicit; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_inaccessible___elambda__1___closed__1() { @@ -15632,12 +15654,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_inaccessible(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_inaccessible; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_inaccessible; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_Term_binderIdent___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -17872,12 +17895,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_depArrow(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_depArrow; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_depArrow; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_simpleBinder___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -18952,12 +18976,13 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Term_forall(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_forall___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_forall; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_forall___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_forall; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_matchAlt___elambda__1___closed__1() { @@ -20473,12 +20498,13 @@ return x_7; lean_object* l___regBuiltinParser_Lean_Parser_Term_match(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_match___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_match; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_match___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_match; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_nomatch___elambda__1___closed__1() { @@ -20784,12 +20810,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_nomatch(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_nomatch___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_nomatch; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_nomatch___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_nomatch; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__1() { @@ -21095,12 +21122,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_parser_x21(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_parser_x21; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_parser_x21; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1() { @@ -21406,12 +21434,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_tparser_x21(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_tparser_x21; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_tparser_x21; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_borrowed___elambda__1___closed__1() { @@ -21727,12 +21756,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_borrowed(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_borrowed; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_borrowed; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__1() { @@ -22029,12 +22059,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_quotedName(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_quotedName; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_quotedName; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_stxQuot___elambda__1___closed__1() { @@ -22421,12 +22452,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_stxQuot(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_stxQuot; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_stxQuot; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_antiquot___closed__1() { @@ -22462,12 +22494,13 @@ return x_3; lean_object* l___regBuiltinParser_Lean_Parser_Term_antiquot(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l___regBuiltinParser_Lean_Parser_Term_antiquot___closed__1; -x_4 = l_Lean_Parser_Term_antiquot; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l___regBuiltinParser_Lean_Parser_Term_antiquot___closed__1; +x_5 = l_Lean_Parser_Term_antiquot; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match__syntax___elambda__1___spec__1___closed__1() { @@ -23491,12 +23524,13 @@ return x_7; lean_object* l___regBuiltinParser_Lean_Parser_Term_match__syntax(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_match__syntax___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_match__syntax; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_match__syntax___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_match__syntax; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_letIdLhs___elambda__1___closed__1() { @@ -25908,12 +25942,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_let(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_let___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_let; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_let___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_let; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1() { @@ -28575,12 +28610,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_do(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_do___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_do; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_do___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_do; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_not___elambda__1___closed__1() { @@ -28896,12 +28932,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_not(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_not___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_not; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_not___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_not; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_bnot___elambda__1___closed__1() { @@ -29207,12 +29244,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bnot(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_bnot___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_bnot; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_bnot___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_bnot; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_uminus___elambda__1___closed__1() { @@ -29510,12 +29548,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_uminus(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_uminus; -x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_uminus; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_namedArgument___elambda__1___closed__1() { @@ -30122,12 +30161,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_app(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_app___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_app; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_app___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_app; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* l_Lean_Parser_Term_checkIsSort___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -30312,12 +30352,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sortApp(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_sortApp; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_sortApp; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__1() { @@ -30714,12 +30755,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_proj(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_proj; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_proj___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_proj; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_arrow___elambda__1___closed__1() { @@ -30811,12 +30853,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_arrow(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_arrow; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_arrow; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_arrayRef___elambda__1___closed__1() { @@ -31119,12 +31162,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_arrayRef(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_arrayRef; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_arrayRef; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_dollar___elambda__1___closed__1() { @@ -31353,12 +31397,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_dollar(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_dollar; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_dollar; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_dollarProj___elambda__1___closed__1() { @@ -31714,12 +31759,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_dollarProj(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_dollarProj; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_dollarProj; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_fcomp___elambda__1___closed__1() { @@ -31818,12 +31864,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_fcomp(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_fcomp; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_fcomp; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_prod___elambda__1___closed__1() { @@ -31922,12 +31969,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_prod(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_prod___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_prod; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_prod___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_prod; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_add___elambda__1___closed__1() { @@ -32026,12 +32074,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_add(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_add___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_add; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_add___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_add; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_sub___elambda__1___closed__1() { @@ -32130,12 +32179,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sub(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_sub___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_sub; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_sub___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_sub; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_mul___elambda__1___closed__1() { @@ -32234,12 +32284,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mul(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_mul___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_mul; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_mul___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_mul; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_div___elambda__1___closed__1() { @@ -32338,12 +32389,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_div(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_div___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_div; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_div___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_div; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_mod___elambda__1___closed__1() { @@ -32442,12 +32494,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mod(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_mod___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_mod; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_mod___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_mod; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_modN___elambda__1___closed__1() { @@ -32546,12 +32599,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_modN(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_modN___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_modN; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_modN___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_modN; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_pow___elambda__1___closed__1() { @@ -32650,12 +32704,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_pow(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_pow___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_pow; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_pow___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_pow; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_le___elambda__1___closed__1() { @@ -32763,12 +32818,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_le(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_le___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_le; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_le___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_le; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_ge___elambda__1___closed__1() { @@ -32876,12 +32932,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_ge(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_ge___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_ge; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_ge___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_ge; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_lt___elambda__1___closed__1() { @@ -32980,12 +33037,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_lt(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_lt___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_lt; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_lt___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_lt; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_gt___elambda__1___closed__1() { @@ -33084,12 +33142,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_gt(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_gt___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_gt; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_gt___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_gt; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_eq___elambda__1___closed__1() { @@ -33188,12 +33247,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_eq(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_eq___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_eq; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_eq___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_eq; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_ne___elambda__1___closed__1() { @@ -33292,12 +33352,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_ne(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_ne___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_ne; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_ne___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_ne; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_beq___elambda__1___closed__1() { @@ -33396,12 +33457,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_beq(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_beq___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_beq; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_beq___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_beq; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_bne___elambda__1___closed__1() { @@ -33500,12 +33562,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bne(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_bne___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_bne; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_bne___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_bne; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_heq___elambda__1___closed__1() { @@ -33613,12 +33676,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_heq(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_heq___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_heq; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_heq___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_heq; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_equiv___elambda__1___closed__1() { @@ -33717,12 +33781,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_equiv(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_equiv; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_equiv; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_subst___elambda__1___closed__1() { @@ -33821,12 +33886,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_subst(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_subst___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_subst; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_subst___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_subst; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_and___elambda__1___closed__1() { @@ -33934,12 +34000,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_and(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_and___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_and; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_and___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_and; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_or___elambda__1___closed__1() { @@ -34047,12 +34114,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_or(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_or___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_or; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_or___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_or; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_iff___elambda__1___closed__1() { @@ -34160,12 +34228,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_iff(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_iff___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_iff; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_iff___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_iff; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_band___elambda__1___closed__1() { @@ -34264,12 +34333,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_band(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_band___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_band; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_band___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_band; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_bor___elambda__1___closed__1() { @@ -34368,12 +34438,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bor(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_bor___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_bor; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_bor___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_bor; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_append___elambda__1___closed__1() { @@ -34472,12 +34543,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_append(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_append___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_append; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_append___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_append; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_cons___elambda__1___closed__1() { @@ -34576,12 +34648,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_cons(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_cons___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_cons; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_cons___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_cons; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_orelse___elambda__1___closed__1() { @@ -34680,12 +34753,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_orelse(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_orelse; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_orelse; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_orM___elambda__1___closed__1() { @@ -34784,12 +34858,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_orM(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_orM___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_orM; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_orM___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_orM; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_andM___elambda__1___closed__1() { @@ -34888,12 +34963,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_andM(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_andM___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_andM; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_andM___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_andM; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_andthen___elambda__1___closed__1() { @@ -34992,12 +35068,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_andthen(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_andthen; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_andthen; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_bindOp___elambda__1___closed__1() { @@ -35096,12 +35173,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bindOp(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_bindOp___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_bindOp; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_bindOp___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_bindOp; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_mapRev___elambda__1___closed__1() { @@ -35200,12 +35278,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapRev(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_mapRev; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_mapRev; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_seq___elambda__1___closed__1() { @@ -35304,12 +35383,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seq(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_seq___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_seq; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_seq___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_seq; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_seqLeft___elambda__1___closed__1() { @@ -35408,12 +35488,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seqLeft(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_seqLeft; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_seqLeft; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_seqRight___elambda__1___closed__1() { @@ -35512,12 +35593,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seqRight(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_seqRight; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_seqRight; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_map___elambda__1___closed__1() { @@ -35616,12 +35698,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_map(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_map___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_map; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_map___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_map; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_mapConst___elambda__1___closed__1() { @@ -35720,12 +35803,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapConst(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_mapConst___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_mapConst; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_mapConst___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_mapConst; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Lean_Parser_Term_mapConstRev___elambda__1___closed__1() { @@ -35824,12 +35908,13 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapConstRev(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_builtinTermParsingTable; -x_3 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__2; -x_4 = l_Lean_Parser_Term_mapConstRev; -x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); -return x_5; +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_builtinTermParsingTable; +x_4 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__2; +x_5 = l_Lean_Parser_Term_mapConstRev; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; } } lean_object* _init_l_Array_iterateMAux___main___at_Lean_mkAppStx___spec__1___closed__1() { diff --git a/stage0/stdlib/Init/Lean/ProjFns.c b/stage0/stdlib/Init/Lean/ProjFns.c index a622486496..8a32cc31fc 100644 --- a/stage0/stdlib/Init/Lean/ProjFns.c +++ b/stage0/stdlib/Init/Lean/ProjFns.c @@ -74,9 +74,9 @@ lean_object* l_Lean_projectionFnInfoExt; lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkProjectionFnInfoExtension___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_projectionFnInfoExt___elambda__1(lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__6(lean_object*, lean_object*); @@ -89,7 +89,7 @@ lean_object* l_Array_qsortAux___main___at_Lean_mkProjectionFnInfoExtension___spe lean_object* l_Lean_projectionFnInfoExt___closed__1; lean_object* l_Lean_Environment_getModuleIdxFor_x3f(lean_object*, lean_object*); lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_projectionFnInfoExt___elambda__4(lean_object*); +lean_object* l_Lean_projectionFnInfoExt___elambda__4(lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_mkProjectionFnInfoExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_namespacesExt___closed__1; lean_object* l_Lean_projectionFnInfoExt___closed__4; @@ -102,8 +102,9 @@ lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); lean_object* l_Array_anyRangeMAux___main___at_Lean_mkProjectionFnInfoExtension___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_projectionFnInfoExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_projectionFnInfoExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_ProjectionFunctionInfo_inhabited___closed__1; +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Array_qsortAux___main___at_Lean_mkProjectionFnInfoExtension___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_binSearchAux___main___at_Lean_Environment_getProjectionFnInfo___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_projectionFnInfoExt___elambda__1___boxed(lean_object*); @@ -647,443 +648,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__6(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__6(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkProjectionFnInfoExtension___spec__5(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkProjectionFnInfoExtension___spec__5(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__6(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__6(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1091,26 +1096,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_mkProjectionFnInfoExtension___spec__3(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__4(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkProjectionFnInfoExtension___spec__4(x_14, x_2); +return x_15; } } lean_object* l_Lean_mkProjectionFnInfoExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -1269,19 +1286,19 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_projectionFnInfoExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_projectionFnInfoExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_projectionFnInfoExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_projectionFnInfoExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_projectionFnInfoExt___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_projectionFnInfoExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_projectionFnInfoExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -1357,13 +1374,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_projectionFnInfoExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_projectionFnInfoExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_projectionFnInfoExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_projectionFnInfoExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_add_projection_info(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6) { diff --git a/stage0/stdlib/Init/Lean/ReducibilityAttrs.c b/stage0/stdlib/Init/Lean/ReducibilityAttrs.c index 172ae683f9..3882bf6953 100644 --- a/stage0/stdlib/Init/Lean/ReducibilityAttrs.c +++ b/stage0/stdlib/Init/Lean/ReducibilityAttrs.c @@ -36,6 +36,7 @@ uint8_t l_Lean_isReducible(lean_object*, lean_object*); lean_object* l_Lean_isReducible___boxed(lean_object*, lean_object*); lean_object* l_Lean_mkReducibilityAttrs___closed__2; lean_object* lean_nat_add(lean_object*, lean_object*); +extern lean_object* l_Lean_registerTagAttribute___closed__2; lean_object* l_Lean_mkReducibilityAttrs___closed__1; extern lean_object* l_Lean_AttributeImpl_inhabited___closed__4; lean_object* l_Array_binSearchAux___main___at_Lean_getReducibilityStatus___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -674,443 +675,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_mkReducibilityAttrs___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_mkReducibilityAttrs___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1372,107 +1377,109 @@ return x_1; lean_object* l_Lean_registerEnumAttributes___at_Lean_mkReducibilityAttrs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_6 = l_Lean_registerTagAttribute___closed__1; -x_7 = l_Lean_registerEnumAttributes___at_Lean_mkReducibilityAttrs___spec__1___closed__1; -x_8 = l_Lean_registerEnumAttributes___at_Lean_mkReducibilityAttrs___spec__1___closed__2; -x_9 = l_Lean_registerEnumAttributes___rarg___closed__1; -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_6); -lean_ctor_set(x_10, 2, x_7); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__5(x_10, x_5); -if (lean_obj_tag(x_11) == 0) +x_7 = l_Lean_registerTagAttribute___closed__2; +x_8 = l_Lean_registerEnumAttributes___at_Lean_mkReducibilityAttrs___spec__1___closed__1; +x_9 = l_Lean_registerEnumAttributes___at_Lean_mkReducibilityAttrs___spec__1___closed__2; +x_10 = l_Lean_registerEnumAttributes___rarg___closed__1; +x_11 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_7); +lean_ctor_set(x_11, 3, x_8); +lean_ctor_set(x_11, 4, x_9); +lean_ctor_set(x_11, 5, x_10); +x_12 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkReducibilityAttrs___spec__5(x_11, x_5); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_12); -x_14 = l_List_map___main___at_Lean_mkReducibilityAttrs___spec__8(x_3, x_4, x_12, x_2); +x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); -x_15 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_14, x_13); -if (lean_obj_tag(x_15) == 0) -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_15, 0); -lean_dec(x_17); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_14); -lean_ctor_set(x_18, 1, x_12); -lean_ctor_set(x_15, 0, x_18); -return x_15; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_15, 1); -lean_inc(x_19); -lean_dec(x_15); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_14); -lean_ctor_set(x_20, 1, x_12); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_19); -return x_21; -} -} -else -{ -uint8_t x_22; -lean_dec(x_14); lean_dec(x_12); -x_22 = !lean_is_exclusive(x_15); -if (x_22 == 0) +lean_inc(x_13); +x_15 = l_List_map___main___at_Lean_mkReducibilityAttrs___spec__8(x_3, x_4, x_13, x_2); +lean_inc(x_15); +x_16 = l_List_forM___main___at_Lean_registerEnumAttributes___spec__11(x_15, x_14); +if (lean_obj_tag(x_16) == 0) { -return x_15; +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_15); +lean_ctor_set(x_19, 1, x_13); +lean_ctor_set(x_16, 0, x_19); +return x_16; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_15, 0); -x_24 = lean_ctor_get(x_15, 1); -lean_inc(x_24); -lean_inc(x_23); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_16, 1); +lean_inc(x_20); +lean_dec(x_16); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_15); +lean_ctor_set(x_21, 1, x_13); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +return x_22; +} +} +else +{ +uint8_t x_23; lean_dec(x_15); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_23); -lean_ctor_set(x_25, 1, x_24); -return x_25; +lean_dec(x_13); +x_23 = !lean_is_exclusive(x_16); +if (x_23 == 0) +{ +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 0); +x_25 = lean_ctor_get(x_16, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_16); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; } } } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_3); lean_dec(x_2); -x_26 = !lean_is_exclusive(x_11); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_12); +if (x_27 == 0) { -return x_11; +return x_12; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_11, 0); -x_28 = lean_ctor_get(x_11, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_12, 0); +x_29 = lean_ctor_get(x_12, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_11); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; +lean_dec(x_12); +x_30 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_30, 0, x_28); +lean_ctor_set(x_30, 1, x_29); +return x_30; } } } diff --git a/stage0/stdlib/Init/Lean/Scopes.c b/stage0/stdlib/Init/Lean/Scopes.c index 34a4a0a740..ce9e7433a5 100644 --- a/stage0/stdlib/Init/Lean/Scopes.c +++ b/stage0/stdlib/Init/Lean/Scopes.c @@ -43,13 +43,13 @@ lean_object* l_Lean_scopeManagerExt___elambda__2___boxed(lean_object*); lean_object* l_Lean_regScopeManagerExtension___closed__5; lean_object* l_Lean_regScopeManagerExtension___closed__3; lean_object* lean_nat_add(lean_object*, lean_object*); -lean_object* l_Lean_scopeManagerExt___elambda__4(lean_object*); +lean_object* l_Lean_scopeManagerExt___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_Environment_popScopeCore___closed__1; lean_object* l_Lean_Environment_popScopeCore___lambda__1(lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_regScopeManagerExtension___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Environment_inSection___boxed(lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_scopeManagerExt___elambda__4___boxed(lean_object*); +lean_object* l_Lean_scopeManagerExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_scopeManagerExt___elambda__3___boxed(lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Environment_pushScopeCore___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -84,8 +84,8 @@ lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, l lean_object* l_Lean_regScopeManagerExtension(lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__5(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_scopeManagerExt___elambda__3(lean_object*, lean_object*); lean_object* lean_register_namespace(lean_object*, lean_object*); lean_object* l_Lean_Environment_getNamespaceSet(lean_object*); @@ -110,6 +110,7 @@ lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_ScopeManagerState_Inhabited___closed__1; lean_object* l_Lean_Environment_pushScopeCore(lean_object*, lean_object*, uint8_t); +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Lean_scopeManagerExt; lean_object* l_Lean_regScopeManagerExtension___closed__1; lean_object* l_Lean_scopeManagerExt___closed__1; @@ -571,443 +572,447 @@ lean_dec(x_8); lean_dec(x_6); 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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -x_12 = l_Array_empty___closed__1; -lean_inc(x_11); -x_13 = lean_apply_1(x_11, x_12); -x_14 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_15 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_registerEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__7(x_15, x_7); -if (lean_obj_tag(x_16) == 0) +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 5); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__7(x_18, x_7); +if (lean_obj_tag(x_19) == 0) { -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_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 2); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 3); +x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_dec(x_1); -x_23 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_23, 0, x_17); -lean_ctor_set(x_23, 1, x_19); -lean_ctor_set(x_23, 2, x_11); -lean_ctor_set(x_23, 3, x_20); -lean_ctor_set(x_23, 4, x_21); -lean_ctor_set(x_23, 5, x_22); -x_24 = lean_io_ref_get(x_3, x_18); -if (lean_obj_tag(x_24) == 0) +lean_dec(x_19); +x_22 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_11); +lean_ctor_set(x_22, 2, x_13); +lean_ctor_set(x_22, 3, x_14); +lean_ctor_set(x_22, 4, x_15); +lean_ctor_set(x_22, 5, x_16); +x_23 = lean_io_ref_get(x_3, x_21); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_24, 0); +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_io_ref_reset(x_3, x_26); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_23); -x_30 = x_23; -x_31 = lean_array_push(x_25, x_30); -x_32 = lean_io_ref_set(x_3, x_31, x_28); -if (lean_obj_tag(x_32) == 0) -{ -uint8_t x_33; -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_ctor_get(x_32, 0); -lean_dec(x_34); -lean_ctor_set(x_32, 0, x_23); -return x_32; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_23); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; lean_dec(x_23); -x_37 = !lean_is_exclusive(x_32); -if (x_37 == 0) +x_26 = lean_io_ref_reset(x_3, x_25); +if (lean_obj_tag(x_26) == 0) { -return x_32; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_22); +x_29 = x_22; +x_30 = lean_array_push(x_24, x_29); +x_31 = lean_io_ref_set(x_3, x_30, x_27); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_22); +return x_31; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_32, 0); -x_39 = lean_ctor_get(x_32, 1); -lean_inc(x_39); +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_dec(x_31); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_22); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_22); +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_31, 0); +x_38 = lean_ctor_get(x_31, 1); lean_inc(x_38); -lean_dec(x_32); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_inc(x_37); +lean_dec(x_31); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -uint8_t x_41; -lean_dec(x_25); -lean_dec(x_23); -x_41 = !lean_is_exclusive(x_27); -if (x_41 == 0) -{ -return x_27; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_27, 0); -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_27); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_23); -x_45 = !lean_is_exclusive(x_24); -if (x_45 == 0) -{ -return x_24; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_24, 0); -x_47 = lean_ctor_get(x_24, 1); -lean_inc(x_47); -lean_inc(x_46); +uint8_t x_40; lean_dec(x_24); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_dec(x_22); +x_40 = !lean_is_exclusive(x_26); +if (x_40 == 0) +{ +return x_26; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_26, 0); +x_42 = lean_ctor_get(x_26, 1); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_26); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_49; -lean_dec(x_11); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_16); -if (x_49 == 0) +uint8_t x_44; +lean_dec(x_22); +x_44 = !lean_is_exclusive(x_23); +if (x_44 == 0) { -return x_16; +return x_23; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_16, 0); -x_51 = lean_ctor_get(x_16, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_23, 0); +x_46 = lean_ctor_get(x_23, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_23); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; lean_dec(x_16); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_48 = !lean_is_exclusive(x_19); +if (x_48 == 0) +{ +return x_19; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_19, 0); +x_50 = lean_ctor_get(x_19, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_19); +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_53 = lean_ctor_get(x_1, 0); -lean_inc(x_53); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); lean_dec(x_1); -x_54 = l_Lean_Name_toString___closed__1; -x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_53); -x_56 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_57 = lean_string_append(x_56, x_55); -lean_dec(x_55); -x_58 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_59 = lean_string_append(x_57, x_58); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); +x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_58 = lean_string_append(x_56, x_57); lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_59); +lean_ctor_set(x_4, 0, x_58); return x_4; } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_4, 0); -x_61 = lean_ctor_get(x_4, 1); -lean_inc(x_61); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_59 = lean_ctor_get(x_4, 0); +x_60 = lean_ctor_get(x_4, 1); lean_inc(x_60); +lean_inc(x_59); lean_dec(x_4); -x_62 = lean_array_get_size(x_60); -x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_regScopeManagerExtension___spec__6(x_1, x_60, x_60, x_62, x_63); -lean_dec(x_62); -lean_dec(x_60); -if (x_64 == 0) +x_61 = lean_array_get_size(x_59); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l_Array_anyRangeMAux___main___at_Lean_regScopeManagerExtension___spec__6(x_1, x_59, x_59, x_61, x_62); +lean_dec(x_61); +lean_dec(x_59); +if (x_63 == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); x_65 = lean_ctor_get(x_1, 1); lean_inc(x_65); -x_66 = l_Array_empty___closed__1; -lean_inc(x_65); -x_67 = lean_apply_1(x_65, x_66); -x_68 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_69 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_69, 0, x_67); -lean_closure_set(x_69, 1, x_68); -x_70 = l_Lean_registerEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__7(x_69, x_61); -if (lean_obj_tag(x_70) == 0) +x_66 = lean_ctor_get(x_1, 2); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 4); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 5); +lean_inc(x_69); +lean_dec(x_1); +x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; +x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); +lean_closure_set(x_71, 0, x_65); +lean_closure_set(x_71, 1, x_70); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__7(x_71, x_60); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_70, 1); -lean_inc(x_72); -lean_dec(x_70); -x_73 = lean_ctor_get(x_1, 0); +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -x_74 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_1, 3); -lean_inc(x_75); -x_76 = lean_ctor_get(x_1, 4); -lean_inc(x_76); -lean_dec(x_1); -x_77 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_77, 0, x_71); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_65); -lean_ctor_set(x_77, 3, x_74); -lean_ctor_set(x_77, 4, x_75); -lean_ctor_set(x_77, 5, x_76); -x_78 = lean_io_ref_get(x_3, x_72); -if (lean_obj_tag(x_78) == 0) +lean_dec(x_72); +x_75 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_64); +lean_ctor_set(x_75, 2, x_66); +lean_ctor_set(x_75, 3, x_67); +lean_ctor_set(x_75, 4, x_68); +lean_ctor_set(x_75, 5, x_69); +x_76 = lean_io_ref_get(x_3, x_74); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_78, 1); -lean_inc(x_80); -lean_dec(x_78); -x_81 = lean_io_ref_reset(x_3, x_80); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -x_83 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); -x_84 = x_77; -x_85 = lean_array_push(x_79, x_84); -x_86 = lean_io_ref_set(x_3, x_85, x_82); -if (lean_obj_tag(x_86) == 0) +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_io_ref_reset(x_3, x_78); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_88 = x_86; -} else { - lean_dec_ref(x_86); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_77); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_77); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); lean_dec(x_79); +x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_75); +x_82 = x_75; +x_83 = lean_array_push(x_77, x_82); +x_84 = lean_io_ref_set(x_3, x_83, x_80); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +if (lean_is_scalar(x_86)) { + x_87 = lean_alloc_ctor(0, 2, 0); +} else { + x_87 = x_86; +} +lean_ctor_set(x_87, 0, x_75); +lean_ctor_set(x_87, 1, x_85); +return x_87; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_75); +x_88 = lean_ctor_get(x_84, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_90 = x_84; +} else { + lean_dec_ref(x_84); + x_90 = lean_box(0); +} +if (lean_is_scalar(x_90)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_90; +} +lean_ctor_set(x_91, 0, x_88); +lean_ctor_set(x_91, 1, x_89); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_77); -x_94 = lean_ctor_get(x_81, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_81, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_96 = x_81; +lean_dec(x_75); +x_92 = lean_ctor_get(x_79, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_79, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_79)) { + lean_ctor_release(x_79, 0); + lean_ctor_release(x_79, 1); + x_94 = x_79; } else { - lean_dec_ref(x_81); - x_96 = lean_box(0); + lean_dec_ref(x_79); + x_94 = lean_box(0); } -if (lean_is_scalar(x_96)) { - x_97 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(1, 2, 0); } else { - x_97 = x_96; + x_95 = x_94; } -lean_ctor_set(x_97, 0, x_94); -lean_ctor_set(x_97, 1, x_95); -return x_97; +lean_ctor_set(x_95, 0, x_92); +lean_ctor_set(x_95, 1, x_93); +return x_95; } } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_77); -x_98 = lean_ctor_get(x_78, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_78, 1); -lean_inc(x_99); -if (lean_is_exclusive(x_78)) { - lean_ctor_release(x_78, 0); - lean_ctor_release(x_78, 1); - x_100 = x_78; +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_dec(x_75); +x_96 = lean_ctor_get(x_76, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_76, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_76)) { + lean_ctor_release(x_76, 0); + lean_ctor_release(x_76, 1); + x_98 = x_76; } else { - lean_dec_ref(x_78); - x_100 = lean_box(0); + lean_dec_ref(x_76); + x_98 = lean_box(0); } -if (lean_is_scalar(x_100)) { - x_101 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(1, 2, 0); } else { - x_101 = x_100; + x_99 = x_98; } -lean_ctor_set(x_101, 0, x_98); -lean_ctor_set(x_101, 1, x_99); -return x_101; +lean_ctor_set(x_99, 0, x_96); +lean_ctor_set(x_99, 1, x_97); +return x_99; } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; -lean_dec(x_65); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_64); +x_100 = lean_ctor_get(x_72, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_72, 1); +lean_inc(x_101); +if (lean_is_exclusive(x_72)) { + lean_ctor_release(x_72, 0); + lean_ctor_release(x_72, 1); + x_102 = x_72; +} else { + lean_dec_ref(x_72); + x_102 = lean_box(0); +} +if (lean_is_scalar(x_102)) { + x_103 = lean_alloc_ctor(1, 2, 0); +} else { + x_103 = x_102; +} +lean_ctor_set(x_103, 0, x_100); +lean_ctor_set(x_103, 1, x_101); +return x_103; +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_1, 0); +lean_inc(x_104); lean_dec(x_1); -x_102 = lean_ctor_get(x_70, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_70, 1); -lean_inc(x_103); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_104 = x_70; -} else { - lean_dec_ref(x_70); - x_104 = lean_box(0); -} -if (lean_is_scalar(x_104)) { - x_105 = lean_alloc_ctor(1, 2, 0); -} else { - x_105 = x_104; -} -lean_ctor_set(x_105, 0, x_102); -lean_ctor_set(x_105, 1, x_103); -return x_105; -} -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_1, 0); -lean_inc(x_106); -lean_dec(x_1); -x_107 = l_Lean_Name_toString___closed__1; -x_108 = l_Lean_Name_toStringWithSep___main(x_107, x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_110 = lean_string_append(x_109, x_108); -lean_dec(x_108); -x_111 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_112 = lean_string_append(x_110, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_61); -return x_113; +x_105 = l_Lean_Name_toString___closed__1; +x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); +x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; +x_108 = lean_string_append(x_107, x_106); +lean_dec(x_106); +x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; +x_110 = lean_string_append(x_108, x_109); +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_60); +return x_111; } } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_1); -x_114 = !lean_is_exclusive(x_4); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_4); +if (x_112 == 0) { return x_4; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_4, 0); -x_116 = lean_ctor_get(x_4, 1); -lean_inc(x_116); -lean_inc(x_115); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_4, 0); +x_114 = lean_ctor_get(x_4, 1); +lean_inc(x_114); +lean_inc(x_113); lean_dec(x_4); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; } } } @@ -1015,26 +1020,38 @@ return x_117; lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_regScopeManagerExtension___spec__4(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 2); +lean_inc(x_4); +x_5 = lean_box(0); +x_6 = l_Array_empty___closed__1; +lean_inc(x_4); +x_7 = lean_apply_1(x_4, x_6); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_5); +lean_ctor_set(x_8, 1, x_7); +x_9 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed), 5, 2); +lean_closure_set(x_10, 0, x_4); +lean_closure_set(x_10, 1, x_5); lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1), 3, 1); -lean_closure_set(x_4, 0, x_1); -lean_inc(x_1); -x_5 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); -lean_closure_set(x_5, 0, x_1); -x_6 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); -lean_closure_set(x_6, 0, x_1); -x_7 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_8 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_8, 0, x_3); -lean_ctor_set(x_8, 1, x_4); -lean_ctor_set(x_8, 2, x_5); -lean_ctor_set(x_8, 3, x_6); -lean_ctor_set(x_8, 4, x_7); -x_9 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__5(x_8, x_2); -return x_9; +x_11 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2), 3, 1); +lean_closure_set(x_11, 0, x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3), 2, 1); +lean_closure_set(x_12, 0, x_1); +x_13 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; +x_14 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_9); +lean_ctor_set(x_14, 2, x_10); +lean_ctor_set(x_14, 3, x_11); +lean_ctor_set(x_14, 4, x_12); +lean_ctor_set(x_14, 5, x_13); +x_15 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_regScopeManagerExtension___spec__5(x_14, x_2); +return x_15; } } lean_object* l_Lean_regScopeManagerExtension___lambda__1(lean_object* x_1, lean_object* x_2) { @@ -1228,12 +1245,12 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* l_Lean_scopeManagerExt___elambda__4(lean_object* x_1) { +lean_object* l_Lean_scopeManagerExt___elambda__4(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_scopeManagerExt___elambda__4___rarg), 1, 0); -return x_2; +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_scopeManagerExt___elambda__4___rarg), 1, 0); +return x_3; } } lean_object* _init_l_Lean_scopeManagerExt___closed__1() { @@ -1254,7 +1271,7 @@ lean_object* _init_l_Lean_scopeManagerExt___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_scopeManagerExt___elambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_scopeManagerExt___elambda__4___boxed), 2, 0); return x_1; } } @@ -1330,13 +1347,14 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_scopeManagerExt___elambda__4___boxed(lean_object* x_1) { +lean_object* l_Lean_scopeManagerExt___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_2; -x_2 = l_Lean_scopeManagerExt___elambda__4(x_1); +lean_object* x_3; +x_3 = l_Lean_scopeManagerExt___elambda__4(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_2; +return x_3; } } lean_object* lean_get_namespaces(lean_object* x_1) { diff --git a/stage0/stdlib/Init/LeanExt.c b/stage0/stdlib/Init/LeanExt.c index 6fad47d0f5..596cb0c78e 100644 --- a/stage0/stdlib/Init/LeanExt.c +++ b/stage0/stdlib/Init/LeanExt.c @@ -13,6 +13,324 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_ParserDescr_pushLeading; +lean_object* l_Lean_ParserDescr_orelse(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_optional(uint8_t, lean_object*); +lean_object* l_Lean_ParserDescr_lookahead(uint8_t, lean_object*); +lean_object* l_Lean_ParserDescr_many(uint8_t, lean_object*); +lean_object* l_Lean_ParserDescr_andthen___boxed(lean_object*, lean_object*, lean_object*); +extern lean_object* l_String_splitAux___main___closed__1; +lean_object* l_Lean_ParserDescr_try(uint8_t, lean_object*); +lean_object* l_Lean_ParserDescr_unicodeSymbol(uint8_t, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescrCore_inhabited(uint8_t); +lean_object* l_Lean_ParserDescr_many1(uint8_t, lean_object*); +lean_object* l_Lean_ParserDescr_many___boxed(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_many1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_parser(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_lookahead___boxed(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_sepBy(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_andthen(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_symbol___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_node(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_try___boxed(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_node___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescrCore_inhabited___boxed(lean_object*); +lean_object* l_Lean_ParserDescr_sepBy1(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_unicodeSymbol___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_orelse___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_sepBy___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_symbol(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_optional___boxed(lean_object*, lean_object*); +lean_object* l_Lean_ParserDescr_sepBy1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_ParserDescrCore_inhabited(uint8_t x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_String_splitAux___main___closed__1; +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_alloc_ctor(10, 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* l_Lean_ParserDescrCore_inhabited___boxed(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; +x_2 = lean_unbox(x_1); +lean_dec(x_1); +x_3 = l_Lean_ParserDescrCore_inhabited(x_2); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_andthen(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +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* l_Lean_ParserDescr_andthen___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_andthen(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_orelse(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_ctor(1, 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* l_Lean_ParserDescr_orelse___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_orelse(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_optional(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(2, 1, 1); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_1); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_optional___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_ParserDescr_optional(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_ParserDescr_lookahead(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(3, 1, 1); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_1); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_lookahead___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_ParserDescr_lookahead(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_ParserDescr_try(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(4, 1, 1); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_1); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_try___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_ParserDescr_try(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_ParserDescr_many(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(5, 1, 1); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_1); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_many___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_ParserDescr_many(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_ParserDescr_many1(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(6, 1, 1); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_1); +return x_3; +} +} +lean_object* l_Lean_ParserDescr_many1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_ParserDescr_many1(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_ParserDescr_sepBy(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_ctor(7, 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* l_Lean_ParserDescr_sepBy___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_sepBy(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_sepBy1(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_ctor(8, 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* l_Lean_ParserDescr_sepBy1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_sepBy1(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_node(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_ctor(9, 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* l_Lean_ParserDescr_node___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_node(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_symbol(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_ctor(10, 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* l_Lean_ParserDescr_symbol___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_1); +lean_dec(x_1); +x_5 = l_Lean_ParserDescr_symbol(x_4, x_2, x_3); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_unicodeSymbol(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = lean_alloc_ctor(11, 3, 1); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_4); +lean_ctor_set_uint8(x_5, sizeof(void*)*3, x_1); +return x_5; +} +} +lean_object* l_Lean_ParserDescr_unicodeSymbol___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_1); +lean_dec(x_1); +x_6 = l_Lean_ParserDescr_unicodeSymbol(x_5, x_2, x_3, x_4); +return x_6; +} +} +lean_object* _init_l_Lean_ParserDescr_pushLeading() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(12); +return x_1; +} +} +lean_object* l_Lean_ParserDescr_parser(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_ctor(13, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} lean_object* initialize_Init_Data_String_Basic(lean_object*); lean_object* initialize_Init_Data_UInt(lean_object*); static bool _G_initialized = false; @@ -26,6 +344,8 @@ lean_dec_ref(res); res = initialize_Init_Data_UInt(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_ParserDescr_pushLeading = _init_l_Lean_ParserDescr_pushLeading(); +lean_mark_persistent(l_Lean_ParserDescr_pushLeading); return lean_mk_io_result(lean_box(0)); } #ifdef __cplusplus