sig
  val dup_if_block : Obj.t -> Obj.t
  type tag =
      Constructor of int
    | Lazy
    | Closure
    | Object
    | Infix
    | Forward
    | Abstract
    | String
    | Double
    | Double_array
    | Custom
    | Unaligned
    | Out_of_heap
    | Int
  type obj = Int of int | Block of Generic_util_obj.tag * Obj.t array
  val view : Obj.t -> Generic_util_obj.obj
  val tag_view : int -> Generic_util_obj.tag
  type con_id = bool * int
  val con_id : '-> Generic_util_obj.con_id
  val is_con : Obj.t -> bool
  val gsize : Obj.t -> int
  val fields_all2 : (Obj.t -> Obj.t -> bool) -> Obj.t -> Obj.t -> bool
  val listify : Obj.t -> Obj.t
  val is_ext_con : Obj.t -> bool
  val ext_con : Obj.t -> Obj.t
  val ext_con_name : Obj.t -> string
  val ext_con_id : Obj.t -> int
  val poly_hash : '-> int
  val custom_identifier : '-> string
end