
I'd strongly advise against this. It would seem to lead to ambiguities when matching arguments with parameters. For example: ```python @overload def foo(arg1: bool=..., arg2: Literal[True]) -> str: ... foo(True) # Does this match the overload? ``` Would the rule be "if there's any possible way to construe an argument list as matching an overload, it should be matched"? The code for matching arguments with parameters is already extremely complicated in a type checker because it needs to deal with *args parameters, **kwargs parameters, position-only separators, keyword-only separators, unpack operators on args, TypeVar assignments, ParamSpec parameter assignments (P.args, P.kwargs), and *args with variadic type variables. More complexity in this code is not needed! -- Eric Traut Contributor to Pyright and Pylance Microsoft Corp.