<i>That&#x27;s what types are: enforced documentation.</i><p>That&#x27;s an interesting way to think about it, but I&#x27;m not sure it applies here. From the example given about money being a string or a float.  A type would just enforce either or, but the consumer of the data would still need to know what it is, and convert it to whatever is necessary for them.