# Subtyping rules for \`...\` in callable types

**URL:** <https://discuss.python.org/t/subtyping-rules-for-in-callable-types/50136>\
**Category:** Typing\
**Tags:** typing-spec\
**Created:** [April 2, 2024, 5:53pm UTC](https://discuss.python.org/t/subtyping-rules-for-in-callable-types/50136 "2024-04-02T17:53:22Z")\
**Posts on this page:** 1\
**Showing post:** 18

<div class="post-metadata">

**Author:** ![mikeshardmind](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/mikeshardmind/32/14381_2.png) [@mikeshardmind](https://discuss.python.org/u/mikeshardmind)\
**Post date:** [April 3, 2024, 5:47am UTC](https://discuss.python.org/t/subtyping-rules-for-in-callable-types/50136/18 "2024-04-03T05:47:20Z")

</div>

I know I said tomorrow, but this was one of those things that nagged at me and I ended up just finding 2 examples that I thought it could negatively affect, evaluated them, and it did not. it shouldn’t be a problem for intersections. The remaining concern from me is on `...` allowing incompatible kwarg use. I don’t think it’s something that is clearly specified right now. While I’d prefer if we don’t allow it, and I think there’s a rationale that works for this, I’m fine with the outcome being allowing it as long as it’s clearly specified.

Edit: see comment [here](https://discuss.python.org/t/take-2-rules-for-subclassing-any/47981/23) for the full related context, the most relevant part is below. It took me more to piece together what wasn’t sitting right with me…

> [@Take 2: Rules for subclassing Any](https://discuss.python.org/t/take-2-rules-for-subclassing-any/47981/23):
>
> One example of something _else_ that would be affected is `Callable[..., Any]`. In this `...` would be an expression of potential args and kwargs having bounds Lower: `()`, Upper: `(*args: Any, **kwargs: Any)`,

The safe subtyping of gradual types _in general_ is more complicated than we have language for.

---

_[View the full topic](https://discuss.python.org/t/subtyping-rules-for-in-callable-types/50136)._
