struct
let string ?(default = string "") ~doc switches =
Opt_string {switches; doc; default}
let flag ?(default = bool false) ~doc switches =
Opt_flag {switches; doc; default}
let (&) x y = Opt_cons (x, y)
let usage s = Opt_end s
end