def list.go
import bend-kit-property@0.4.0.0/generate.bend as Generateimport Base
import bend-kit-random@0.1.0.1/random.bend as Rand
98# n + 1 items prepended to acc; hr holds the next item.
99def list.go(~T: Data, ~gen: Rand.Rng -> T & Rand.Rng, n: Nat, acc: List<&2, T>, hr: T & Rand.Rng) -> List<&2, T> & Rand.Rng:
100 match n:
101 case 0n:
102 (h, r) = hr
103 (h <> acc, r)
104 case 1n+p:
105 (h, r) = hr
106 list.go(~T, ~gen, p, h <> acc, gen(r))