let arg_spec_of_integer opt_name minimum opt_ref doc =
(opt_name,
Arg.Int
(fun n ->
if n >= minimum then
opt_ref := n
else
let s =
if minimum = 0 then "negative"
else "lesser than " ^ (string_of_int minimum)
in
raise (Arg.Bad ("Incorrect " ^ s ^ " value `" ^ (string_of_int n) ^
"' for option " ^ opt_name))),
"<int> " ^ doc ^ " (default "
^ (string_of_int !opt_ref) ^ ")")