{α : Type} →
  Array Lean.Elab.Term.PatternVarDecl →
    Array Lean.Expr →
      Lean.Expr →
        (Array Lean.LocalDecl → Array Lean.Meta.Match.Pattern → Lean.Expr → Lean.Elab.TermElabM α) →
          Lean.Elab.TermElabM α