fun first_permutation(idx: Int) do
for i in [0..p.length[ do p[i] = i
for i in [0..count.length[.reverse_iterator do
var d = idx / fact[i]
count[i] = d
idx = idx % fact[i]
p.copy_to(0, i+1, pp, 0)
for j in [0..i] do p[j] = if j + d <= i then pp[j+d] else pp[j+d-i-1]
end
end
lib/actors/examples/fannkuchredux/fannkuchredux.nit:36,2--48,4