I think the parent is raising the point that knowing that there's a problem is only half of the issue you need to solve. Being able to assert that certain types only appear in certain places is still important: if I pass the wrong type as a function argument, I don't know whether there's a bug somewhere upstream where that data came from, or whether there's a bug in the function where I'm using a parameter incorrectly. Or if I'm not returning where I should be, or returning where I shouldn't be.