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 -> cst
val cst_string : string -> cst
val obj_label : string -> label
val optional : bool -> string -> label