> > The issue I mention above is not related to subtyping. > I > > don't understand how you made that connection. > > It's simple: an interface does not guarantee type safety: > the wrong class with the right interface can be at the > wrong place at the wrong time, thus creating havoc with > the program.
I suspect this is an theoretical problem. I can't say I've ever come across it in many years of coding
> And then we have the problem of null...static type > checking is useless in this area, unless null is made a > type.
Yes it's a problem. Better null handling would strengthen static typing.
> But then we step into functional programming > territory, where nullable types are algebraic.
But so what? Are you saying adopting features of functional programming for static typing is bad? It seems to me that all that is happening is that the [dodgy analogy]goal posts in the argument are being steadily shifted whenever a shot is lined up[/dodgy analogy].