Consider making `staticmethod` and `classmethod` generic
It makes sense, because they are very callable-like. However:
>>> staticmethod[int] Traceback (most recent call last): File "<python-input-0>", line 1, in <module> staticmethod[int] ~~~~~~~~~~~~^^^^^ TypeError: type 'staticmethod' is not subscriptable >>> classmethod[int] Traceback (most recent call last): File "<python-input-1>", line 1, in <module> classmethod[int] ~~~~~~~~~~~^^^^^ TypeError: type 'classmethod' is not subscriptable
We should consider making them generics in runtime as well.