If you are sure it's memory-safe ( I'm not 😅 ) - you can cast `openArray` to
`UncheckedArray` that can be captured:
# Same as above but want to accept variable length element array
proc newOrder2*[T](elements: var openArray[T]) =
let length = elements.len
var elements = cast[ptr UncheckedArray[T]](elements)
var index = createUncheckedArray[int](length)
init_0_to_len index.withLength length
(index.with_length length).sort do (a, b: int) -> int:
elements[a].cmp elements[b]
echo "newOrder: ", index.withLength length
discard index
Run