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