sig   type t   external repr : '-> Obj.t = "%identity"   external obj : Obj.t -> 'a = "%identity"   external magic : '-> 'b = "%identity"   external is_block : Obj.t -> bool = "caml_obj_is_block"   external is_int : Obj.t -> bool = "%obj_is_int"   external tag : Obj.t -> int = "caml_obj_tag"   external size : Obj.t -> int = "%obj_size"   external field : Obj.t -> int -> Obj.t = "%obj_field"   external set_field : Obj.t -> int -> Obj.t -> unit = "%obj_set_field"   external set_tag : Obj.t -> int -> unit = "caml_obj_set_tag"   val double_field : Obj.t -> int -> float   val set_double_field : Obj.t -> int -> float -> unit   external new_block : int -> int -> Obj.t = "caml_obj_block"   external dup : Obj.t -> Obj.t = "caml_obj_dup"   external truncate : Obj.t -> int -> unit = "caml_obj_truncate"   external add_offset : Obj.t -> Int32.t -> Obj.t = "caml_obj_add_offset"   val first_non_constant_constructor_tag : int   val last_non_constant_constructor_tag : int   val lazy_tag : int   val closure_tag : int   val object_tag : int   val infix_tag : int   val forward_tag : int   val no_scan_tag : int   val abstract_tag : int   val string_tag : int   val double_tag : int   val double_array_tag : int   val custom_tag : int   val final_tag : int   val int_tag : int   val out_of_heap_tag : int   val unaligned_tag : int   val extension_constructor : '-> extension_constructor   val extension_name : extension_constructor -> string   val extension_id : extension_constructor -> int   val marshal : Obj.t -> bytes   val unmarshal : bytes -> int -> Obj.t * int   module Ephemeron :     sig       type obj_t = Obj.t       type t       val create : int -> Obj.Ephemeron.t       val length : Obj.Ephemeron.t -> int       val get_key : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t option       val get_key_copy : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t option       val set_key : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t -> unit       val unset_key : Obj.Ephemeron.t -> int -> unit       val check_key : Obj.Ephemeron.t -> int -> bool       val blit_key :         Obj.Ephemeron.t -> int -> Obj.Ephemeron.t -> int -> int -> unit       val get_data : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t option       val get_data_copy : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t option       val set_data : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t -> unit       val unset_data : Obj.Ephemeron.t -> unit       val check_data : Obj.Ephemeron.t -> bool       val blit_data : Obj.Ephemeron.t -> Obj.Ephemeron.t -> unit     end end