let iter_file_lines f name =
  let ic = open_in name in
  try
    while true do
      let line = input_line ic in
      f line
    done
  with
    End_of_file -> close_in ic
  | e -> close_in ic; raise e