type cst = private | Arg_int_lit of int| Arg_string_lit of string| Arg_js_literal of string
type label = private | Obj_label of {name : string;
}| Obj_empty| Obj_optional of {name : string;for_sure_no_nested_option : bool;
}
type attr = | Poly_var_string of {descr : (string * string) list;
}| Poly_var of {descr : (string * string) list option;
}| Int of (string * int) list| Arg_cst of cst| Fn_uncurry_arity of int| Extern_unit| Nothing| Ignore| Unwrap
type label_noname = | Arg_label| Arg_empty| Arg_optional
type obj_param = {obj_arg_type : attr;obj_arg_label : label;
}val cst_obj_literal : string -> cstval cst_string : string -> cstval obj_label : string -> labelval optional : bool -> string -> label