let rec increase_prefix p n =
  assert (n >= 0);
  if n = 0 then p
  else
    match p.v with
    | [] -> assert false
    | b :: v -> increase_prefix { u = p.u @ [b]; v = p.v @ [b]; } (n - 1)