let iter_lines f ic =
  try
    while true do
      let line = input_line ic in
      f line
    done
  with
    End_of_file -> ()
  | e -> raise e