vector :: (Random.Random -> a) -> Natural.Natural -> Random.Random -> [a]
vector f n r =
  if n == 0 then []
  else let (r1, r2) = Random.split r in f r1 : vector f (n - 1) r2
vector :: (Random.Random -> a) -> Natural.Natural -> Random.Random -> [a]
vector f n r =
  if n == 0 then []
  else let (r1, r2) = Random.split r in f r1 : vector f (n - 1) r2
vector f n r =
  if n == 0 then []
  else let (r1, r2) = Random.split r in f r1 : vector f (n - 1) r2