let arg_spec () = [
    ("-mute",
     Arg.Unit (fun () -> Logger.set_priority Logger.Error),
     " No output unless an error occurs")
    ;
    ("-quiet",
     Arg.Unit (fun () -> Logger.set_priority Logger.Report),
     " Suppress non-essential messages")
    ;
    ("-normal",
     Arg.Unit (fun () -> Logger.set_priority Logger.Notice),
     " Restore the default output of messages")
    ;
    ("-verbose",
     Arg.Unit (fun () -> Logger.set_priority Logger.Info),
     " More informational messages")
    ;
    ("-debug",
     Arg.Unit (fun () -> Logger.set_priority Logger.Debug),
     " All messages, including debugging ones")
    ;
    ("-columns",
     Arg.Int (fun n -> Format.set_margin (max 1 n)),
     "<int> Use <int> columns for pretty-printing")
    ;
    ("-box-depth",
     Arg.Int (fun n -> Format.set_max_boxes (max 1 n)),
     "<int> Use at most <int> nested boxes for pretty-printing")
  ]