def shuffle.run
import bend-kit-random@0.1.0.1/random.bend as Randomimport Base
135def shuffle.run(~T: Data, +h: T, +xs: List<&2, T>, r: Rng) -> List<&2, T> & Rng:
136 +m = (U32.from_nat(List.length(&2, T, xs)) - 1 : U32)
137 shuffle.fin(~T, m,
138 shuffle.go(~T, U32.to_nat(m), m,
139 shuffle.fill(~T, xs, 0, Array.new(T, Nat.add(1n, U32.log2(m)), h)),
140 below((m + 1 : U32), r)))