let fold_right l ~f ~init =     fold ~f:(fun a b -> f b a) ~init (List.rev l)