Module ObjFile
type 'a segment= private{name : string;pos : int64;len : int64;hash : Stdlib.Digest.t;}type 'a id= private{id : string;}Private to ensure the phantom tag is injective
val make_id : string -> 'a idval open_in : file:string -> in_handleval close_in : in_handle -> unitval marshal_in_segment : in_handle -> segment:'a id -> 'a * Stdlib.Digest.tval get_segment : in_handle -> segment:'a id -> 'a segmentval segments : in_handle -> Stdlib.Obj.t segment CString.Map.tval open_out : file:string -> out_handleval close_out : out_handle -> unitval marshal_out_segment : out_handle -> segment:'a id -> 'a -> unitval marshal_out_binary : out_handle -> segment:'a id -> Stdlib.out_channel * (unit -> unit)marshal_out_binary oh segmentis a low level, stateful, API returningoc, stop. Once called no other API can be used on the sameohand onlyStdlib.output_*APIs should be used onoc.stop ()must be invoked in order to signal that all data was written tooc(which should not be used afterwards). Only after callingstopthe other API can be used onoh.