- The post clarifies the correct definition of tagged vs untagged unions: tagged unions store a runtime tag to distinguish variants, while untagged unions do not.
- Pascal had both tagged ('discriminated') and untagged ('free') unions, but the author notes that Wirth advocated for tagged unions despite preferring flexibility.
- ML's 'abstype' keyword allowed defining custom sum types with named constructors, though built-in sum types lacked pattern matching and relied on functions like isl and outr.
- The naming of 'sum' and 'product' types likely originated from the analogous disjoint union and Cartesian product in set theory, but early type theorists like Martin-Löf used 'disjoint union' instead of 'sum'.
- The comment suggests further investigation into how sum types were discussed in type theory and the theory of type systems, as that history may predate the programming language papers cited.