Module External_arg_spec

type cst = pri
  1. | Arg_int_lit(int)
  2. | Arg_string_lit(string)
  3. | Arg_js_literal(string)
;
type label = pri
  1. | Obj_label of {
    1. name: string,
    }
  2. | Obj_empty
  3. | Obj_optional of {
    1. name: string,
    2. for_sure_no_nested_option: bool,
    }
;
type attr =
  1. | Poly_var_string of {
    1. descr: list((string, string)),
    }
  2. | Poly_var of {
    1. descr: option(list((string, string))),
    }
  3. | Int(list((string, int)))
  4. | Arg_cst(cst)
  5. | Fn_uncurry_arity(int)
  6. | Extern_unit
  7. | Nothing
  8. | Ignore
  9. | Unwrap
;
type label_noname =
  1. | Arg_label
  2. | Arg_empty
  3. | Arg_optional
;
type obj_param = {
  1. obj_arg_type: attr,
  2. obj_arg_label: label,
};
type param = {
  1. arg_type: attr,
  2. arg_label: label_noname,
};
type obj_params = list(obj_param);
type params = list(param);
let cst_obj_literal: string => cst;
let cst_int: int => cst;
let cst_string: string => cst;
let empty_label: label;
let obj_label: string => label;
let optional: bool => string => label;
let empty_kind: attr => obj_param;
let dummy: param;