File: .lake/packages/lean4/src/lean/Lean/Compiler/InitAttr.lean

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Compiler.InitAttr.0.Lean.getIOTypeArg
code: private def getIOTypeArg : Expr → Option Expr
  
goal: Lean.Expr → Option Lean.Expr

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Compiler.InitAttr.0.Lean.isUnitType
code: private def isUnitType : Expr → Bool
  
goal: Lean.Expr → Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Compiler.InitAttr.0.Lean.isIOUnit
code: private def isIOUnit (type : Expr) : Bool 
goal: Bool

full_name: Lean.runModInit
code: /--
  Run the initializer of the given module (without `builtin_initialize` commands).
  Return `false` if the initializer is not available as native code.
  Initializers do not have corresponding Lean definitions, so they cannot be interpreted in this case. -/
@[extern "lean_run_mod_init"]
unsafe opaque runModInit (mod : Name) : IO Bool
goal: IO Bool

full_name: Lean.runInit
code: /-- Run the initializer for `decl` and store its value for global access. Should only be used while importing. -/
@[extern "lean_run_init"]
unsafe opaque runInit (env : @& Environment) (opts : @& Options) (decl initDecl : @& Name) : IO Unit
goal: IO Unit

full_name: Lean.initFn._@..lake.packages.lean4.src.lean.Lean.Compiler.InitAttr._hyg.219
code: /-- Set of modules for which we have already run the module initializer in the interpreter. -/
builtin_initialize interpretedModInits : IO.Ref NameSet ← IO.mkRef {}
goal: IO (IO.Ref Lean.NameSet)

full_name: Lean.interpretedModInits
code: /-- Set of modules for which we have already run the module initializer in the interpreter. -/
builtin_initialize interpretedModInits : IO.Ref NameSet ← IO.mkRef {}
goal: IO.Ref Lean.NameSet

full_name: Lean.registerInitAttrUnsafe
code: unsafe def registerInitAttrUnsafe (attrName : Name) (runAfterImport : Bool) (ref : Name) : IO (ParametricAttribute Name) 
goal: IO (Lean.ParametricAttribute Lean.Name)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Compiler.InitAttr.0.Lean.registerInitAttrInner
code: @[implemented_by registerInitAttrUnsafe]
private opaque registerInitAttrInner (attrName : Name) (runAfterImport : Bool) (ref : Name) : IO (ParametricAttribute Name)
goal: IO (Lean.ParametricAttribute Lean.Name)

full_name: Lean.registerInitAttr
code: @[inline]
def registerInitAttr (attrName : Name) (runAfterImport : Bool) (ref : Name := by exact decl_name%) : IO (ParametricAttribute Name) 
goal: IO (Lean.ParametricAttribute Lean.Name)

full_name: Lean.regularInitAttr
code: builtin_initialize regularInitAttr : ParametricAttribute Name ← registerInitAttr `init true
goal: Lean.ParametricAttribute Lean.Name

full_name: Lean.initFn._@..lake.packages.lean4.src.lean.Lean.Compiler.InitAttr._hyg.1160
code: builtin_initialize regularInitAttr : ParametricAttribute Name ← registerInitAttr `init true
goal: IO (Lean.ParametricAttribute Lean.Name)

full_name: Lean.initFn._@..lake.packages.lean4.src.lean.Lean.Compiler.InitAttr._hyg.1190
code: builtin_initialize builtinInitAttr : ParametricAttribute Name ← registerInitAttr `builtin_init false
goal: IO (Lean.ParametricAttribute Lean.Name)

full_name: Lean.builtinInitAttr
code: builtin_initialize builtinInitAttr : ParametricAttribute Name ← registerInitAttr `builtin_init false
goal: Lean.ParametricAttribute Lean.Name

full_name: Lean.getInitFnNameForCore?
code: def getInitFnNameForCore? (env : Environment) (attr : ParametricAttribute Name) (fn : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.getBuiltinInitFnNameFor?
code: @[export lean_get_builtin_init_fn_name_for]
def getBuiltinInitFnNameFor? (env : Environment) (fn : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.getRegularInitFnNameFor?
code: @[export lean_get_regular_init_fn_name_for]
def getRegularInitFnNameFor? (env : Environment) (fn : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.getInitFnNameFor?
code: @[export lean_get_init_fn_name_for]
def getInitFnNameFor? (env : Environment) (fn : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.isIOUnitInitFnCore
code: def isIOUnitInitFnCore (env : Environment) (attr : ParametricAttribute Name) (fn : Name) : Bool 
goal: Bool

full_name: Lean.isIOUnitRegularInitFn
code: @[export lean_is_io_unit_regular_init_fn]
def isIOUnitRegularInitFn (env : Environment) (fn : Name) : Bool 
goal: Bool

full_name: Lean.isIOUnitBuiltinInitFn
code: @[export lean_is_io_unit_builtin_init_fn]
def isIOUnitBuiltinInitFn (env : Environment) (fn : Name) : Bool 
goal: Bool

full_name: Lean.isIOUnitInitFn
code: def isIOUnitInitFn (env : Environment) (fn : Name) : Bool 
goal: Bool

full_name: Lean.hasInitAttr
code: def hasInitAttr (env : Environment) (fn : Name) : Bool 
goal: Bool

full_name: Lean.setBuiltinInitAttr
code: def setBuiltinInitAttr (env : Environment) (declName : Name) (initFnName : Name := Name.anonymous) : Except String Environment 
goal: Except String Lean.Environment

full_name: Lean.declareBuiltin
code: def declareBuiltin (forDecl : Name) (value : Expr) : CoreM Unit 
goal: Lean.CoreM Unit