let rec make_new_copies (ls: level list) (lev: level) (p: pointer): pointer =
match ls with
| [] -> p
| hd::tl ->
let p = (fun lev' -> if hd=lev' then (p lev)
else (p lev') ) in
make_new_copies tl lev p