closed vs open types
Both sum and product types have closed and open variations:
| Product | Sum | |
|---|---|---|
| Closed | structs/record types | coproducts / variants / enums |
| Open | row types (i.e. extensible records) | polymorphic variants |
Interestingly I don’t think it is possible to define open variants of the dependent product / dependent sum. Without a specific domain to scope over, dependent types seem fairly ill scoped.