fun inverse_permutation' [] arr counter = arr
| inverse_permutation' (a::b) arr counter = (
Array.update (arr, a, counter);
inverse_permutation' b arr (counter + 1))
fun inverse_permutation lst = Array.vector
(inverse_permutation' lst (Array.array (length lst, 0)) 0)