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