sig
  type 'a t
  type 'a fill = Elem of '| Susp of (int -> 'a)
  val make : int -> 'GrowArray.fill -> 'GrowArray.t
  val num_alloc_index : 'GrowArray.t -> int
  val max_init_index : 'GrowArray.t -> int
  val reset_max_init_index : 'GrowArray.t -> unit
  val getg : 'GrowArray.t -> int -> 'a
  val setg : 'GrowArray.t -> int -> '-> unit
  val get : 'GrowArray.t -> int -> 'a
  val set : 'GrowArray.t -> int -> '-> unit
  val clear : 'GrowArray.t -> unit
  val copy : 'GrowArray.t -> 'GrowArray.t
  val deep_copy : 'GrowArray.t -> ('-> 'a) -> 'GrowArray.t
  val iter : ('-> unit) -> 'GrowArray.t -> unit
  val iteri : (int -> '-> unit) -> 'GrowArray.t -> unit
  val iter2 :
    (int -> '-> '-> unit) -> 'GrowArray.t -> 'GrowArray.t -> unit
  val fold_left : ('-> '-> 'a) -> '-> 'GrowArray.t -> 'a
  val fold_lefti : ('-> int -> '-> 'a) -> '-> 'GrowArray.t -> 'a
  val fold_right : ('-> '-> 'b) -> 'GrowArray.t -> '-> 'b
  val d_growarray :
    Pretty_utils.sformat ->
    (int, 'a) Pretty_utils.formatter2 ->
    'GrowArray.t Pretty_utils.formatter
  val restoreGA : ?deepCopy:('-> 'a) -> 'GrowArray.t -> unit -> unit
  val find : 'GrowArray.t -> ('-> bool) -> int option
end