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.

On Mon, Aug 10, 2020 at 12:03 PM Guido van Rossum <> wrote:
The Steering Council has appointed me PEP Delegate for PEP 612.

With the last bit of feedback out of the way I intend to accept the current draft, unless objections are made here within the next 24 hours.

Thanks Mark for your work on the design and (IIUC) the prototype and for carefully taking the feedback offered into account.

--Guido van Rossum (
Typing-sig mailing list --
To unsubscribe send an email to
Member address: