Honestly, I haven't delved into type checking much, so maybe I'm making this up, but what if you write a function that is type hinted to take a Mapping, and uses | or |=, and all the test code uses a built in dict, and all seems to be well.
import typingimport collectionsimport builtinsdef foo(t: typing.Set, c: collections.Set, b: builtins.set):print(t + t)print(t | t)print(t.union(t))print(c + c)print(c | c)print(c.union(c))print(b + b)print(b | b)print(b.union(b))