Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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".



That'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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: