let replicate list num = let rec replicateInner ch num = match num with | 0 -> [] | _ -> ch::replicateInner ch (num-1) let rec replicateOuter list num = match list with | [] -> [] | h::t -> (replicateInner h num) @ replicateOuter t num replicateOuter list num