Issue #28649: typing-clear-caches.patch
diff --git a/Lib/typing.py b/Lib/typing.py
index e748fd9..f3e446e 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -611,12 +611,16 @@
                         ("many" if alen > elen else "few", repr(cls), alen, elen))
 
 
+_cleanups = []
+
+
 def _tp_cache(func):
     """ Caching for __getitem__ of generic types with a fallback to
     original function for non-hashable arguments.
     """
 
     cached = functools.lru_cache()(func)
+    _cleanups.append(cached.cache_clear)
     @functools.wraps(func)
     def inner(*args, **kwds):
         try: