I agree, I saw this after I posted. If the keyword is 'define' the names should definitely come before 'as'.
If the keyword is 'expose' as I first thought of, the names should come after 'as'. Other possible words with names after 'as': reveal, publish, reify, create, etc. If some word is intuitive enough, I'd prefer this order. It's closer to what 'import' and 'with' do in conjunction with 'as'.
David Mertz wrote:
define Typevar as T, S, R
I quite like this, but it should be the other way around:
define T, S, R as TypeVar
Yes, I *know* the name being bound comes after 'as' in
other places, but I think consistency with the obvious
English meaning is more important.
One other thing, 'define' is so similar to 'def' that
I think it would be needlessly confusing to have both,
so just make it
def T, S, R as TypeVar
Also, yes, you would have to curry if you want the
constructor to have arguments. I think that's a small
price to pay for the benefits: less magic, no
restrictions on the form of the constructor expression,
and the ability to re-use it for multiple bound names.
Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/