let with_file_out_gen flags mode fn func =
  with_file (open_out_gen flags mode) "with_file_out_gen" close_out func fn