let create ?desc data_of_string string_of_data =
  let wrappers = {
      CF.to_raw = (fun a -> CF.string_wrappers.CF.to_raw (string_of_data a)) ;
      CF.of_raw = (fun s -> data_of_string (CF.string_wrappers.CF.of_raw s));
    }
  in
  create_from_cf_wrappers ?desc wrappers