That seems undesirable. A programmer who has a value annotated with static type (x: int = 0) -> None who wants to pass 0 might assume it's safe to call it without the argument. But if that value might be a function of type (x: int = 42) -> None then that program should not type check. 

On Tue, 28 Sept 2021, 16:16 Eric Traut, <eric@traut.com> wrote:
> I'm curious about the semantics of default values in a callable type

The value of a default doesn't affect the type of the callable, but the presence of a default does.

From a type perspective:

`(x: int = 42) -> None` is equivalent to both `(x: int = 0) -> None` and `(x: int = ...) -> None`.

and

`(x: int = ...) -> None` is compatible with both `(x: int) -> None` and `() -> None`.

 -Eric

--
Eric Traut
Contributor to pyright & pylance
Microsoft Corp.
_______________________________________________
Typing-sig mailing list -- typing-sig@python.org
To unsubscribe send an email to typing-sig-leave@python.org
https://mail.python.org/mailman3/lists/typing-sig.python.org/
Member address: kmillikin@google.com