Module Bs_dyn

module Bs_dyn: sig .. end
An experimentation of runtime types in OCaml, unstable API, only for internal use

type 'a im_array = 'a array 
type variant_shape = private {
   constructors : string im_array;
   arities : int im_array;
}
type record_shape = string im_array 
type value = private 
| Int32ofint32
| Int64ofint64
| Intofint
| Nativeintofnativeint
| Boolofbool
| Floatoffloat
| Charofchar
| Stringofstring
| OptionNone
| OptionSomeofvalue
| Tupleofvalue im_array
| Arrayofvalue im_array
| Listofvalue im_array
| Recordofrecord_shape * value im_array
| Variantofvariant_shape * int * value im_array
type 'a to_value = ('a -> value [@bs]) 
val int32_to_value : int32 to_value
val int64_to_value : int64 to_value
val int_to_value : int to_value
val nativeint_to_value : nativeint to_value
val bool_to_value : bool to_value
val float_to_value : float to_value
val char_to_value : char to_value
val string_to_value : string to_value
val array_to_value : 'a to_value -> 'a array to_value
Make sure value_of* below are always fully applied
val list_to_value : 'a to_value -> 'a list to_value
val option_to_value : 'a to_value -> 'a option to_value
val record_to_value : record_shape -> value im_array -> value
val variant_to_value : variant_shape -> int -> value im_array -> value
val tuple_2_to_value : 'a to_value -> 'b to_value -> ('a * 'b) to_value
val tuple_3_to_value : 'a to_value ->
'b to_value -> 'c to_value -> ('a * 'b * 'c) to_value
val tuple_4_to_value : 'a to_value ->
'b to_value ->
'c to_value ->
'd to_value -> ('a * 'b * 'c * 'd) to_value
val tuple_5_to_value : 'a0 to_value ->
'a1 to_value ->
'a2 to_value ->
'a3 to_value ->
'a4 to_value -> ('a0 * 'a1 * 'a2 * 'a3 * 'a4) to_value
val tuple_6_to_value : 'a0 to_value ->
'a1 to_value ->
'a2 to_value ->
'a3 to_value ->
'a4 to_value ->
'a5 to_value -> ('a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5) to_value
val shape_of_variant : string im_array -> int array -> variant_shape
val shape_of_record : string im_array -> record_shape