{α : Type} →
  String →
    optParam (Lean.MetaM α) failure →
      α →
        (addDecl : Lean.Name → Lean.ConstantInfo → α → Lean.MetaM α) →
          optParam (Lean.Name → Lean.ConstantInfo → α → Lean.MetaM α) addDecl →
            (optParam (α → Lean.MetaM α) fun a => pure a) → IO (Batteries.Tactic.DeclCache α)