I posted a survey on a Microsoft-internal Python forum to get feedback about the proposed syntax options from other Python developers who are not part of the typing community. I received 19 responses. As with any survey data, the results should be taken with a grain of salt. Question 1: Do you use type annotations (sometimes called “type hints”) in Python? A (0%): No, I never use type annotations in Python B (32%): I occasionally use type annotations in Python C (68%): I frequently use type annotations in Python Question 2: Have you used “generic types”? A (0%): No, I don't know what that means B (47%): I have used generics in other programming languages but not Python C (53%): I have used generics (TypeVars) in Python Question 3: To define a generic class in Python, which of the following syntax options would you prefer? A (5%): using (K, V) class CustomDict(dict[K, V]): ... B (42%): class CustomDict<K, V>(dict[K, V]): ... C (42%): class CustomDict[K, V](dict[K, V]): ... D (11%): Other (one said "any of the above" and another said "anything but A") Question 4: To indicate that a type variable “T” must be compatible with a particular type (say, a “str”), which of the following syntax options would you prefer? A (5%): class MyClass[T <: str]: ... B (79%): class MyClass[T: str]: ... C: (5%): class MyClass[T(bound=str)]: ... D: (5%): class MyClass[T extends str]: ... E: (0%): class MyClass[T where T <: str]: ... F: (5%): Other ("any of the above") Conclusions: Both angle and square brackets are OK with this audience. As we previously discussed, angle brackets has some major problems in Python, so square brackets makes sense here. A simple colon for type parameter bounds is strongly preferred by this audience. -Eric