sig
  type t
  val blit : (t, t) Blit_intf.blit
  val blito : (t, t) Blit_intf.blito
  val unsafe_blit : (t, t) Blit_intf.blit
  val sub : (t, t) Blit_intf.sub
  val subo : (t, t) Blit_intf.subo
  val invariant : t Invariant_intf.inv
  val create : len:int -> Obj_array.t
  val copy : Obj_array.t -> Obj_array.t
  val singleton : Obj.t -> Obj_array.t
  val empty : Obj_array.t
  val length : Obj_array.t -> int
  val get : Obj_array.t -> int -> Obj.t
  val unsafe_get : Obj_array.t -> int -> Obj.t
  val set : Obj_array.t -> int -> Obj.t -> unit
  val unsafe_set : Obj_array.t -> int -> Obj.t -> unit
  val unsafe_set_assuming_currently_int : Obj_array.t -> int -> Obj.t -> unit
  val unsafe_set_int_assuming_currently_int :
    Obj_array.t -> int -> int -> unit
  val unsafe_clear_if_pointer : Obj_array.t -> int -> unit
  val truncate : Obj_array.t -> len:int -> unit
  val sexp_of_t : Obj_array.t -> Sexplib.Sexp.t
end