ArraySliceWithStride works as you expect.
Code:
let abc = Array("abcdef")
let some = abc[1.~]
some[1] == abc[1]
some[1] == abc[2]
let same = some.map{ $0 }
same[1] == abc[1]
same[1] == abc[2]
Output:
["a", "b", "c", "d", "e", "f"]
[b, c, d, e, f]
false
true
(6 times) // f
false
true
ArraySliceWithStride was made for presentation of a possible implementation of striding operators in my pitch.