@friend Ooh, that's a brilliant example! More fine grained types definitely allows you to offer a smaller, more relevant set of possibilities in completion.
miniblog.
Related Posts
Are there examples of IDE services deliberately leveraging elaborate type systems?
I'm struggling to think of what a richer type system enables in the IDE space. The existence of void* in C, interface{} in Go, or a lack of generics, doesn't seem to have limited possibilities.
My favourite programming model is single machine, single thread. It's so much easier to reason about when you have fewer failure possibilities.
https://www.msreverseengineering.com/blog/2018/2/26/concrete-and-abstract-interpretation-explained-through-chess uses chess to describe concrete and abstract interpretation: considering state spaces, approximating, and dealing with intractably large sets of possibilities!

