File: .lake/packages/lean4/src/lean/Lean/Compiler/LCNF/Level.lean

full_name: Lean.Compiler.LCNF.NormLevelParam.State.paramNames
code: /-- State for the universe level normalizer monad. -/
structure State where
  /-- Counter for generating new (normalized) universe parameter names. -/
  nextIdx    : Nat := 1
  /-- Mapping from existing universe parameter names to the new ones. -/
  map        : HashMap Name Level := {}
  /-- Parameters that have been normalized. -/
  paramNames : Array Name := #[]
goal: Array Lean.Name

full_name: Lean.Compiler.LCNF.NormLevelParam.State
code: /-- State for the universe level normalizer monad. -/
structure State where
  /-- Counter for generating new (normalized) universe parameter names. -/
  nextIdx    : Nat := 1
  /-- Mapping from existing universe parameter names to the new ones. -/
  map        : HashMap Name Level := {}
  /-- Parameters that have been normalized. -/
  paramNames : Array Name := #[]
goal: Type

full_name: Lean.Compiler.LCNF.NormLevelParam.State.map
code: /-- State for the universe level normalizer monad. -/
structure State where
  /-- Counter for generating new (normalized) universe parameter names. -/
  nextIdx    : Nat := 1
  /-- Mapping from existing universe parameter names to the new ones. -/
  map        : HashMap Name Level := {}
  /-- Parameters that have been normalized. -/
  paramNames : Array Name := #[]
goal: Lean.HashMap Lean.Name Lean.Level

full_name: Lean.Compiler.LCNF.NormLevelParam.State.nextIdx
code: /-- State for the universe level normalizer monad. -/
structure State where
  /-- Counter for generating new (normalized) universe parameter names. -/
  nextIdx    : Nat := 1
  /-- Mapping from existing universe parameter names to the new ones. -/
  map        : HashMap Name Level := {}
  /-- Parameters that have been normalized. -/
  paramNames : Array Name := #[]
goal: Nat

full_name: Lean.Compiler.LCNF.NormLevelParam.M
code: /-- Monad for the universe level normalizer -/
abbrev M 
goal: Type

full_name: Lean.Compiler.LCNF.NormLevelParam.normLevel
code: /--
Normalize universe level parameter names in the given universe level.
-/
partial def normLevel (u : Level) : M Level 
goal: Lean.Compiler.LCNF.NormLevelParam.M Lean.Level

full_name: Lean.Compiler.LCNF.NormLevelParam.normExpr
code: /--
Normalize universe level parameter names in the given expression.
-/
partial def normExpr (e : Expr) : M Expr 
goal: Lean.Compiler.LCNF.NormLevelParam.M Lean.Expr

full_name: Lean.Compiler.LCNF.normLevelParams
code: /--
Normalize universe level parameter names in the given expression.
The function also returns the list of universe level parameter names that have been normalized.
-/
def normLevelParams (e : Expr) : Expr × List Name 
goal: Lean.Expr × List Lean.Name

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitType
code: abbrev visitType (type : Expr) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitArg
code: def visitArg (arg : Arg) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitArgs
code: def visitArgs (args : Array Arg) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitLetValue
code: def visitLetValue (e : LetValue) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitParam
code: def visitParam (p : Param) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.CollectLevelParams.visitParams
code: def visitParams (ps : Array Param) : Visitor 
goal: Lean.CollectLevelParams.Visitor

full_name: Lean.Compiler.LCNF.Decl.setLevelParams
code: /--
Collect universe level parameters collecting in the type, parameters, and value, and then
set `decl.levelParams` with the resulting value.
-/
def Decl.setLevelParams (decl : Decl) : Decl 
goal: Lean.Compiler.LCNF.Decl