module Netshm_data:sig..end
type 'a data_manager = {|    | to_int32_array : | (* | Represent the value as an int32_array | *) | 
|    | of_int32_array : | (* | Read the value back from its int32_arrayrepresentation.
 The array is given as list of array fragments in reverse
 order. The fragments must not be empty. | *) | 
|    | of_int32_array_prefix : | (* | Read the value back from its int32_arrayrepresentation.
 Unlikeof_int32_array, it is allowed to pass a prefix
 of the whole array to this function. Asof_int32_array,
 this prefix is given as list of array fragments in reverse
 order. The function may returnNoneif it is not yet
 possible to reconstruct the value. Otherwise the value is
 returned asSome v. | *) | 
|    | hash_fn : | (* | Hash function | *) | 
of_int32_array_prefix is optional.val int32_manager : int32 data_managerint32 as one-element int32_arrayval int64_manager : int64 data_managerint64 as two-element int32_arrayval nativeint_manager : nativeint data_managerint32_manager or int64_manager to represent nativeint,
 depending on the size of nativeint.val int_manager : int data_managerint32_manager or int64_manager to represent int,
 depending on the size of int.val int32_array_manager : Netshm.int32_array data_managerval string_manager : string data_managerval pair_manager : 'a data_manager ->
       'b data_manager -> ('a * 'b) data_managerval left_pair_manager : 'a data_manager -> 'a data_managerpair_manager, but the resulting
 data manager only reads the left value of the pair.
 This data manager does not support to_int32_array.
val option_manager : 'a data_manager -> 'a option data_manager