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