Where do type systems come from? (2017)
If by &quot;type systems&#x2F;checking&quot; one refers to constraints on &quot;valid operations in context&quot; like comparisons, subtractions, additions (or maybe in a prog.lang context assignment to lexically static identifiers) then physical units of measure (seconds, meters|its ancient cousins, etc.) were the first type system.  I.e., one cannot add&#x2F;compare&#x2F;etc. meters &amp; seconds without conversion and not all conversions are possible.<p>This remains the first such system most people learn in elementary school.  Historically such ideas arose along with measurements themselves and computations upon their results like comparison&#x2F;subtraction&#x2F;even taxation.<p>Yes, this is all (typically) manually checked and explicit metadata symbols are carried through calculations.  I still think it&#x27;s the primordial example that few mention in discussions like these.