let () = let filenames = ref [] in let compressing = ref true in let usage = Printf.sprintf "Usage: %s " Sys.argv.(0) in Arg.parse [ "-c", Arg.Set compressing, "Compress"; "-d", Arg.Clear compressing, "Decompress"; ] (fun filename -> filenames := filename :: !filenames) usage; let filenames = List.rev !filenames in List.iter (if !compressing then Zipper.compress else Zipper.decompress) filenames