| 94 | | === Multiple levels of nesting === |
| | 95 | === Splitting and combining === |
| | 96 | |
| | 97 | Due to lifted conditionals (or, generally, case constructs), arrays with repeated segments may be split (packed) and combined. Arrays with repeated segments can be split (or packed) by including a repeated segment in the result exactly if one of its repetitions is included. This can be determined by disjunctively combining all flags for one sequence of repeated segments. |
| | 98 | |
| | 99 | Arrays with repeated segments can not always be combined without duplicating the data corresponding to repeated segments (after all, a disjoint segment may be inserted into a sequence of repeated segments). For simplicity, we may want to expand all repeated segments in `combinePA`. (It seems that this should not lead to unexpected blow-ups as the repeated data now is part of a functions result and should be accounted for in its complexity estimate.) |
| | 100 | |
| | 101 | === Multiple levels of nesting (unconcat and concat) === |