File: .lake/packages/lean4/src/lean/Lean/Elab/ComputedFields.lean

full_name: Lean.Elab.ComputedFields.initFn._@..lake.packages.lean4.src.lean.Lean.Elab.ComputedFields._hyg.6
code: builtin_initialize computedFieldAttr : TagAttribute ←
  registerTagAttribute `computed_field "Marks a function as a computed field of an inductive" fun _ => do
    unless (← getOptions).getBool `elaboratingComputedFields do
      throwError "The @[computed_field] attribute can only be used in the with-block of an inductive"
goal: IO Lean.TagAttribute

full_name: Lean.Elab.ComputedFields.computedFieldAttr
code: builtin_initialize computedFieldAttr : TagAttribute ←
  registerTagAttribute `computed_field "Marks a function as a computed field of an inductive" fun _ => do
    unless (← getOptions).getBool `elaboratingComputedFields do
      throwError "The @[computed_field] attribute can only be used in the with-block of an inductive"
goal: Lean.TagAttribute

full_name: Lean.Elab.ComputedFields.mkUnsafeCastTo
code: def mkUnsafeCastTo (expectedType : Expr) (e : Expr) : MetaM Expr 
goal: Lean.MetaM Lean.Expr

full_name: Lean.Elab.ComputedFields.isScalarField
code: def isScalarField (ctor : Name) : CoreM Bool 
goal: Lean.CoreM Bool

full_name: Lean.Elab.ComputedFields.Context.compFields
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Array Lean.Name

full_name: Lean.Elab.ComputedFields.Context.params
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Array Lean.Expr

full_name: Lean.Elab.ComputedFields.Context.compFieldVars
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Array Lean.Expr

full_name: Lean.Elab.ComputedFields.Context.indices
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Array Lean.Expr

full_name: Lean.Elab.ComputedFields.Context.lparams
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: List Lean.Level

full_name: Lean.Elab.ComputedFields.Context
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Type

full_name: Lean.Elab.ComputedFields.Context.val
code: structure Context extends InductiveVal where
  lparams : List Level
  params : Array Expr
  compFields : Array Name
  compFieldVars : Array Expr
  indices : Array Expr
  val : Expr
goal: Lean.Expr

full_name: Lean.Elab.ComputedFields.M
code: abbrev M 
goal: Type

full_name: Lean.Elab.ComputedFields.getComputedFieldValue
code: def getComputedFieldValue (computedField : Name) (ctorTerm : Expr) : MetaM Expr 
goal: Lean.MetaM Lean.Expr

full_name: Lean.Elab.ComputedFields.validateComputedFields
code: def validateComputedFields : M Unit 
goal: Lean.Elab.ComputedFields.M Unit

full_name: Lean.Elab.ComputedFields.mkImplType
code: def mkImplType : M Unit 
goal: Lean.Elab.ComputedFields.M Unit

full_name: Lean.Elab.ComputedFields.overrideCasesOn
code: def overrideCasesOn : M Unit 
goal: Lean.Elab.ComputedFields.M Unit

full_name: Lean.Elab.ComputedFields.overrideConstructors
code: def overrideConstructors : M Unit 
goal: Lean.Elab.ComputedFields.M Unit

full_name: Lean.Elab.ComputedFields.overrideComputedFields
code: def overrideComputedFields : M Unit 
goal: Lean.Elab.ComputedFields.M Unit

full_name: Lean.Elab.ComputedFields.mkComputedFieldOverrides
code: def mkComputedFieldOverrides (declName : Name) (compFields : Array Name) : MetaM Unit 
goal: Lean.MetaM Unit

full_name: Lean.Elab.ComputedFields.setComputedFields
code: /--
Sets the computed fields for a block of mutual inductives,
adding the implementation via `implemented_by`.

The `computedFields` argument contains a pair
for every inductive in the mutual block,
consisting of the name of the inductive
and the names of the associated computed fields.
-/
def setComputedFields (computedFields : Array (Name × Array Name)) : MetaM Unit 
goal: Lean.MetaM Unit