let is_file d =
  try (Sys.file_exists d) && (not (Sys.is_directory d))
  with | e -> error ~opn: "is_file" ~fn: d ~e