- specialize: Lean.Compiler.SpecializeAttributeKind
- nospecialize: Lean.Compiler.SpecializeAttributeKind
Equations
- fixed: Lean.Compiler.SpecArgKind
- fixedNeutral: Lean.Compiler.SpecArgKind
- fixedHO: Lean.Compiler.SpecArgKind
- fixedInst: Lean.Compiler.SpecArgKind
- other: Lean.Compiler.SpecArgKind
Equations
- mutualDecls : List Lean.Name
- argKinds : Lean.Compiler.SpecArgKind
Equations
- Lean.Compiler.instInhabitedSpecInfo = { default := { mutualDecls := default, argKinds := default } }
Equations
- Lean.Compiler.instInhabitedSpecState = { default := { specInfo := default, cache := default } }
- info: Lean.Name → Lean.Compiler.SpecInfo → Lean.Compiler.SpecEntry
- cache: Lean.Expr → Lean.Name → Lean.Compiler.SpecEntry
Equations
- Lean.Compiler.instInhabitedSpecEntry = { default := Lean.Compiler.SpecEntry.info default default }
Equations
- Lean.Compiler.SpecState.addEntry s e = match e with | Lean.Compiler.SpecEntry.info name info => { specInfo := Lean.SMap.insert s.specInfo name info, cache := s.cache } | Lean.Compiler.SpecEntry.cache key fn => { specInfo := s.specInfo, cache := Lean.SMap.insert s.cache key fn }
Equations
- Lean.Compiler.SpecState.switch x = match x with | { specInfo := m₁, cache := m₂ } => { specInfo := Lean.SMap.switch m₁, cache := Lean.SMap.switch m₂ }
def
Lean.Compiler.addSpecializationInfo
(env : Lean.Environment)
(fn : Lean.Name)
(info : Lean.Compiler.SpecInfo)
: