let main filenames () : unit Deferred.t =
  match filenames with
  | [] -> cat_stdin ()
  | fs -> Deferred.List.iter fs ~f:cat_file