let make ~name ~parse ~print ~default ~help ~fcli () =
  let () =
    check_variable_name name;
    if Hashtbl.mem metaconf name then
      failwithf
        "Duplicate definition for configuration variable %S." name
  in
  let set, get = OUnitPropList.new_property default in
  let parse_set str conf = set conf (parse str) in
  let get_print conf = print (get conf) in
    Hashtbl.add metaconf name
      {help = help;
       get_print = get_print;
       parse_set = parse_set;
       cli = (fun conf -> fcli (get conf) (set conf))};
    get