"Strong types" /= "Static types", and "Static types" /= "Contracts". Invalid states are often a runtime property. Contracts are a much better tool for representing valid value-states than types are.
Quote Tweet
Pervasive defensive programming is a symptom of a lack of strong types. If your language can make invalid states unrepresentable then you only need to validate input at the edges of your system
2
5
11


