Yeah Guido, that's correct, thank you for bringing it up. The point of my monkey patch is to be able to specify the type *once* and have it both be used for compile time verification and runtime usage. So something like this was my example `np.ndarray[np.int64].arange(10)`.
If I could not have to monkeypatch to do this, it would be ideal! I gave an example of how to add that code the built in generic class: https://github.com/saulshanabrook/peps/blob/master/pep-9999.md#reference-imp..., it would just changing the `getattr` to check if the original class returns a descriptor for that attribute and passing in the generic class for `cls` instead of the original class.