let make_string_opt name default help =
  make
    ~name
    ~parse:
    (function
       | "none" -> None
       | str -> Some str)
    ~print:
    (function
       | Some x -> x
       | None -> "none")
    ~default
    ~help
    ~fcli:
    (fun get set ->
       [cli_name name,
        Arg.String (fun str -> set (Some str)),
        "str "^help;

        cli_name ("no_"^name),
        Arg.Unit (fun () -> set None),
        Printf.sprintf " Reset value of %s." name])
    ()