File: Mathlib/Util/Export.lean

full_name: _private.Mathlib.Util.Export.0.Lean.Export.MethodsRefPointed
code: private opaque MethodsRefPointed : NonemptyType.{0}
goal: NonemptyType

full_name: _private.Mathlib.Util.Export.0.Lean.Export.MethodsRef
code: private def MethodsRef : Type 
goal: Type

full_name: Lean.Export.Entry.name
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Lean.Export.Entry

full_name: Lean.Export.Entry
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Type

full_name: Lean.Export.Entry.expr
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Lean.Export.Entry

full_name: Lean.Export.Entry.level
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Lean.Export.Entry

full_name: Lean.Export.Entry.defn
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Lean.Export.Entry

full_name: Lean.Export.instInhabitedEntry
code: inductive Entry
  | name (n : Name)
  | level (n : Level)
  | expr (n : Expr)
  | defn (n : Name)
deriving Inhabited
goal: Inhabited Lean.Export.Entry

full_name: Lean.Export.instCoeNameEntry
code: instance : Coe Name Entry 
goal: Coe Lean.Name Lean.Export.Entry

full_name: Lean.Export.instCoeLevelEntry
code: instance : Coe Level Entry 
goal: Coe Lean.Level Lean.Export.Entry

full_name: Lean.Export.instCoeExprEntry
code: instance : Coe Expr Entry 
goal: Coe Lean.Expr Lean.Export.Entry

full_name: Lean.Export.Alloc
code: structure Alloc (α) [BEq α] [Hashable α] where
  map : HashMap α Nat
  next : Nat
deriving Inhabited
goal: Type u_1

full_name: Lean.Export.instInhabitedAlloc
code: structure Alloc (α) [BEq α] [Hashable α] where
  map : HashMap α Nat
  next : Nat
deriving Inhabited
goal: {a : Type u_1} → {a_1 : BEq a} → {a_2 : Hashable a} → Inhabited (Lean.Export.Alloc a)

full_name: Lean.Export.Alloc.map
code: structure Alloc (α) [BEq α] [Hashable α] where
  map : HashMap α Nat
  next : Nat
deriving Inhabited
goal: Lean.HashMap α Nat

full_name: Lean.Export.Alloc.next
code: structure Alloc (α) [BEq α] [Hashable α] where
  map : HashMap α Nat
  next : Nat
deriving Inhabited
goal: Nat

full_name: Lean.Export.State.levels
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Lean.Export.Alloc Lean.Level

full_name: Lean.Export.State.exprs
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Lean.Export.Alloc Lean.Expr

full_name: Lean.Export.State.names
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Lean.Export.Alloc Lean.Name

full_name: Lean.Export.State
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Type

full_name: Lean.Export.State.defs
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Lean.HashSet Lean.Name

full_name: Lean.Export.instInhabitedState
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Inhabited Lean.Export.State

full_name: Lean.Export.State.stk
code: structure State where
  names : Alloc Name := ⟨HashMap.empty.insert Name.anonymous 0, 1⟩
  levels : Alloc Level := ⟨HashMap.empty.insert levelZero 0, 1⟩
  exprs : Alloc Expr
  defs : HashSet Name
  stk : Array (Bool × Entry)
deriving Inhabited
goal: Array (Bool × Lean.Export.Entry)

full_name: Lean.Export.OfState.modify
code: class OfState (α : Type) [BEq α] [Hashable α] where
  get : State → Alloc α
  modify : (Alloc α → Alloc α) → State → State
goal: (Lean.Export.Alloc α → Lean.Export.Alloc α) → Lean.Export.State → Lean.Export.State

full_name: Lean.Export.OfState.get
code: class OfState (α : Type) [BEq α] [Hashable α] where
  get : State → Alloc α
  modify : (Alloc α → Alloc α) → State → State
goal: Lean.Export.State → Lean.Export.Alloc α

full_name: Lean.Export.OfState
code: class OfState (α : Type) [BEq α] [Hashable α] where
  get : State → Alloc α
  modify : (Alloc α → Alloc α) → State → State
goal: Type

full_name: Lean.Export.instOfStateName
code: instance : OfState Name 
goal: Lean.Export.OfState Lean.Name

full_name: Lean.Export.instOfStateLevel
code: instance : OfState Level 
goal: Lean.Export.OfState Lean.Level

full_name: Lean.Export.instOfStateExpr
code: instance : OfState Expr 
goal: Lean.Export.OfState Lean.Expr

full_name: Lean.ExportM
code: abbrev ExportM 
goal: Type

full_name: Lean.Export.alloc
code: def alloc {α} [BEq α] [Hashable α] [OfState α] (a : α) : ExportM Nat 
goal: Lean.ExportM Nat

full_name: Lean.Export.exportName
code: def exportName (n : Name) : ExportM Nat 
goal: Lean.ExportM Nat

full_name: Lean.Export.exportLevel
code: def exportLevel (L : Level) : ExportM Nat 
goal: Lean.ExportM Nat

full_name: Lean.Export.biStr
code: def biStr : BinderInfo → String
  
goal: Lean.BinderInfo → String

full_name: Lean.Export.runExportM
code: def runExportM {α : Type} (m : ExportM α) : CoreM α 
goal: Lean.CoreM α