let all_upper_dir fln =
let rec all_upper_dir_aux lst fln =
let dir = dirname fln
in
match lst with
prev_dir :: tl when prev_dir = dir ->
lst
| _ ->
all_upper_dir_aux (dir :: lst) dir
in
all_upper_dir_aux [fln] fln