sig type t type raw_data = nativeint external repr : 'a -> Obj.t = "%identity" external obj : Obj.t -> 'a = "%identity" external magic : 'a -> 'b = "%identity" val is_block : Obj.t -> bool external is_int : Obj.t -> bool = "%obj_is_int" external tag : Obj.t -> int = "caml_obj_tag" [@@noalloc] external size : Obj.t -> int = "%obj_size" external reachable_words : Obj.t -> int = "caml_obj_reachable_words" 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 raw_field : Obj.t -> int -> Obj.raw_data = "caml_obj_raw_field" external set_raw_field : Obj.t -> int -> Obj.raw_data -> unit = "caml_obj_set_raw_field" 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 -> Stdlib.Int32.t -> Obj.t = "caml_obj_add_offset" external with_tag : int -> Obj.t -> Obj.t = "caml_obj_with_tag" 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 module Closure : sig type info = { arity : int; start_env : int; } val info : Obj.t -> Obj.Closure.info end module Extension_constructor : sig type t = extension_constructor val of_val : 'a -> Obj.Extension_constructor.t val name : Obj.Extension_constructor.t -> string val id : Obj.Extension_constructor.t -> int end val extension_constructor : 'a -> 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 val max_ephe_length : int end end