- Maybe the design sucks, why does so much of the code know about type A?
- Maybe it's a good thing - you didn't know everything upfront, an assumption has changed, so you should change the code?
- Maybe you want to experiment? We should find a way to defer type errors to runtime?
- Maybe we should invest in tooling to make this problem more tractable? (Jackpot!?)
We, as software engineers, should be actively looking to advance the state of the art. We should be building tools to support our ways of working, not rallying against those that do.