I personally prefer shorter to type names, so ArgsSpec looks better in my eyes. Concatenate and ListVariadic seems satisfactory for positional arguments. You know, Python supports positional-only, keyword-only, *args and **kwargs also. Could ArgsSpec (or ParameterSpecifications) be extended to explicitly provide these kinds of parameters explicitly? Another thing is the default argument. The exact value of the default is not significant for typing but a flag of the default value presence is important. Can ArgsSpec provide this information?