3 ms·
We reasonably assume that A ∩ B = ∅ in all practical cases, such as `int | None` or `string | number `, etc. Yes, a Cartesian product is tagged (each axis is),
by nine_k 2y ago
We reasonably assume that A ∩ B = ∅ in all practical cases, such as `int | None` or `string | number `, etc.
Yes, a Cartesian product is tagged (each axis is), but it does not affect the fact that len(A * B) = len(A) * len(B), hence it's logical to use multiplication to denote "record types".
- marcosdumay 2y agoThat's not a good assumption, and even the original example is Bool + Bool; len(Bool ∪ Bool) = 2 * len(Bool) is trivially false. About the Cartesian product, the tags create that rule. Untagged multiplication again has fewer elements.