This isn't a serious objection, but I wanted to note that "concatenate" is an overloaded term, so I can imagine the name potentially being a point of confusion if it is intended only to refer specifically to concatenating parameters.
In particular, if we/when we add typing for multi-dimensional array shapes, it would be very natural to talk about "concatenating" two array shapes, e.g., for a function that removes a leading axis from arrays:
D = DimensionVar()
S = ShapeVar()
def sum_along_first_axis(array: NDArray[Concatenate[D, S]]) -> NDArray[S]:
return array.sum(axis=0)
This looks very similar to the usage for function parameters, but is manipulating a different type of object.