let insert_at tree n d =
let d = get_content d in
let rec aux { content = t ; children = l } =
if t = d then node t (n :: l) else node t (auxaux [] l)
and auxaux acc = function
| [] -> List.rev acc
| hd::tl -> auxaux ((aux hd) :: acc) tl
in aux tree