The flip-side of record types (product types), in which each element has an instance of all fields, are tagged union types (sum types), in which each element has an instance of exactly one type from a list of possible types. For example,
union[int32, string] -> [1, 2, "three"]
union[int32, var * int32] -> [1, 2, [3, 4], [], 5]
union[tuple[int32, int32], tuple[int32, int32, int32]] -> [(1, 2), (3, 4, 5)]
This can be implemented, for instance, with an array of tags (types), optional indexes (offsets), and an array for each type. See, for example, the Arrow implementation.
Are there any plans to support specifications of this kind of data?
The flip-side of record types (product types), in which each element has an instance of all fields, are tagged union types (sum types), in which each element has an instance of exactly one type from a list of possible types. For example,
This can be implemented, for instance, with an array of tags (types), optional indexes (offsets), and an array for each type. See, for example, the Arrow implementation.
Are there any plans to support specifications of this kind of data?