while that works, it does not fully document what is expected from caller. And AFAIK using tuples like that is not very common. I'd prefer something like:
def foo(allowed: Optional[List[ElemType]] = None):
allowed = allowed or []
...