> Which then goes back to: what is the use case of Slipping an Array? Same as slipping any other type of Iterable: Fine-grained, elegant flattening and concatenating.
Compare: my @all = flat $first, @rest; my @all = $first, |@rest; When you *know* that $first is a Scalar and @rest is an Array, those two do the same thing because `flat` doesn't descend into item containers. But if those are, say, function parameters, then they can become bound to other things, e.g. the calling code could pass a List to `@rest` which *doesn't* have its elements itemized, so the version with `flat` would destroy the elements' internal structure. Even if that wasn't the case, I'd consider the `|` version more elegant than the `flat` version, because it denotes very clearly to the reader *where* exactly something is being flattened into the outer list. > because Slip is a List, it uses List.AT-POS, and that one > doesn’t create a WHENCE with a container to be filled at a later time. Couldn't `@array.Slip` be made to properly iterate @array behind the scenes (the same way that `@array.map` would iterate it), instead of reaching into @array's guts and copying its elements in a way that misinterprets some of them?