This should be the case. Type violations would automatically appear on your IDEs when you update Elixir. However, if you need additional metadata/features, then we need to expose them from Elixir and Language Servers need to consume it. But that's implementation work and not "type system" work. :)
> But regardless, this is one of my main hangups with dialyzer: its `underspecs` and `overspecs` design gets it wrong.
I believe recent Erlang/OTP versions changed this to give you more fine grained control for the precise reasons you mentioned.
> So I guess my question with this approach, is whether you can explicitly spec "larger" sets than is inferred? And if so, whether the given specs overrule the inferred ones elsewhere.
I am 99% sure the theory allows both options, so we will pick one based on patterns and community needs.