let list_of_double l = let déjà_construite = ref [] in let accumule x = déjà_construite := x :: !déjà_construite in print_double accumule l; List.rev !déjà_construite;; let l = list_of_double d;;
val l : int list = [1; 2; 3; 4]