sig
  type 'a im_array = 'a array
  type variant_shape = private {
    constructors : string Bs_dyn.im_array;
    arities : int Bs_dyn.im_array;
  }
  type record_shape = string Bs_dyn.im_array
  type value = private
      Int32 of int32
    | Int64 of int64
    | Int of int
    | Nativeint of nativeint
    | Bool of bool
    | Float of float
    | Char of char
    | String of string
    | OptionNone
    | OptionSome of Bs_dyn.value
    | Tuple of Bs_dyn.value Bs_dyn.im_array
    | Array of Bs_dyn.value Bs_dyn.im_array
    | List of Bs_dyn.value Bs_dyn.im_array
    | Record of Bs_dyn.record_shape * Bs_dyn.value Bs_dyn.im_array
    | Variant of Bs_dyn.variant_shape * int * Bs_dyn.value Bs_dyn.im_array
  type 'a to_value = ('-> Bs_dyn.value [@bs])
  val int32_to_value : int32 Bs_dyn.to_value
  val int64_to_value : int64 Bs_dyn.to_value
  val int_to_value : int Bs_dyn.to_value
  val nativeint_to_value : nativeint Bs_dyn.to_value
  val bool_to_value : bool Bs_dyn.to_value
  val float_to_value : float Bs_dyn.to_value
  val char_to_value : char Bs_dyn.to_value
  val string_to_value : string Bs_dyn.to_value
  val array_to_value : 'Bs_dyn.to_value -> 'a array Bs_dyn.to_value
  val list_to_value : 'Bs_dyn.to_value -> 'a list Bs_dyn.to_value
  val option_to_value : 'Bs_dyn.to_value -> 'a option Bs_dyn.to_value
  val record_to_value :
    Bs_dyn.record_shape -> Bs_dyn.value Bs_dyn.im_array -> Bs_dyn.value
  val variant_to_value :
    Bs_dyn.variant_shape ->
    int -> Bs_dyn.value Bs_dyn.im_array -> Bs_dyn.value
  val tuple_2_to_value :
    'Bs_dyn.to_value -> 'Bs_dyn.to_value -> ('a * 'b) Bs_dyn.to_value
  val tuple_3_to_value :
    'Bs_dyn.to_value ->
    'Bs_dyn.to_value ->
    'Bs_dyn.to_value -> ('a * 'b * 'c) Bs_dyn.to_value
  val tuple_4_to_value :
    'Bs_dyn.to_value ->
    'Bs_dyn.to_value ->
    'Bs_dyn.to_value ->
    'Bs_dyn.to_value -> ('a * 'b * 'c * 'd) Bs_dyn.to_value
  val tuple_5_to_value :
    'a0 Bs_dyn.to_value ->
    'a1 Bs_dyn.to_value ->
    'a2 Bs_dyn.to_value ->
    'a3 Bs_dyn.to_value ->
    'a4 Bs_dyn.to_value -> ('a0 * 'a1 * 'a2 * 'a3 * 'a4) Bs_dyn.to_value
  val tuple_6_to_value :
    'a0 Bs_dyn.to_value ->
    'a1 Bs_dyn.to_value ->
    'a2 Bs_dyn.to_value ->
    'a3 Bs_dyn.to_value ->
    'a4 Bs_dyn.to_value ->
    'a5 Bs_dyn.to_value ->
    ('a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5) Bs_dyn.to_value
  val shape_of_variant :
    string Bs_dyn.im_array -> int array -> Bs_dyn.variant_shape
  val shape_of_record : string Bs_dyn.im_array -> Bs_dyn.record_shape
end