let repeat_periodic_pattern p k = assert (k > 0); let rec repeat v k = if k = 1 then v else repeat (p.v @ v) (k - 1) in { u = p.u; v = repeat p.v k; }