sig
  type !'a t
  val create : unit -> 'a Dynarray.t
  val make : int -> 'a -> 'a Dynarray.t
  val init : int -> (int -> 'a) -> 'a Dynarray.t
  val get : 'a Dynarray.t -> int -> 'a
  val set : 'a Dynarray.t -> int -> 'a -> unit
  val length : 'a Dynarray.t -> int
  val is_empty : 'a Dynarray.t -> bool
  val get_last : 'a Dynarray.t -> 'a
  val find_last : 'a Dynarray.t -> 'a option
  val copy : 'a Dynarray.t -> 'a Dynarray.t
  val add_last : 'a Dynarray.t -> 'a -> unit
  val append_array : 'a Dynarray.t -> 'a array -> unit
  val append_list : 'a Dynarray.t -> 'a list -> unit
  val append : 'a Dynarray.t -> 'a Dynarray.t -> unit
  val append_seq : 'a Dynarray.t -> 'a Stdlib.Seq.t -> unit
  val append_iter :
    'a Dynarray.t -> (('a -> unit) -> 'x -> unit) -> 'x -> unit
  val blit :
    src:'a Dynarray.t ->
    src_pos:int -> dst:'a Dynarray.t -> dst_pos:int -> len:int -> unit
  val pop_last_opt : 'a Dynarray.t -> 'a option
  val pop_last : 'a Dynarray.t -> 'a
  val remove_last : 'a Dynarray.t -> unit
  val truncate : 'a Dynarray.t -> int -> unit
  val clear : 'a Dynarray.t -> unit
  val iter : ('a -> unit) -> 'a Dynarray.t -> unit
  val iteri : (int -> 'a -> unit) -> 'a Dynarray.t -> unit
  val map : ('a -> 'b) -> 'a Dynarray.t -> 'b Dynarray.t
  val mapi : (int -> 'a -> 'b) -> 'a Dynarray.t -> 'b Dynarray.t
  val fold_left : ('acc -> 'a -> 'acc) -> 'acc -> 'a Dynarray.t -> 'acc
  val fold_right : ('a -> 'acc -> 'acc) -> 'a Dynarray.t -> 'acc -> 'acc
  val filter : ('a -> bool) -> 'a Dynarray.t -> 'a Dynarray.t
  val filter_map : ('a -> 'b option) -> 'a Dynarray.t -> 'b Dynarray.t
  val exists : ('a -> bool) -> 'a Dynarray.t -> bool
  val for_all : ('a -> bool) -> 'a Dynarray.t -> bool
  val exists2 : ('a -> 'b -> bool) -> 'a Dynarray.t -> 'b Dynarray.t -> bool
  val for_all2 : ('a -> 'b -> bool) -> 'a Dynarray.t -> 'b Dynarray.t -> bool
  val mem : 'a -> 'a Dynarray.t -> bool
  val memq : 'a -> 'a Dynarray.t -> bool
  val find_opt : ('a -> bool) -> 'a Dynarray.t -> 'a option
  val find_index : ('a -> bool) -> 'a Dynarray.t -> int option
  val find_map : ('a -> 'b option) -> 'a Dynarray.t -> 'b option
  val find_mapi : (int -> 'a -> 'b option) -> 'a Dynarray.t -> 'b option
  val equal : ('a -> 'a -> bool) -> 'a Dynarray.t -> 'a Dynarray.t -> bool
  val compare : ('a -> 'a -> int) -> 'a Dynarray.t -> 'a Dynarray.t -> int
  val of_array : 'a array -> 'a Dynarray.t
  val to_array : 'a Dynarray.t -> 'a array
  val of_list : 'a list -> 'a Dynarray.t
  val to_list : 'a Dynarray.t -> 'a list
  val of_seq : 'a Stdlib.Seq.t -> 'a Dynarray.t
  val to_seq : 'a Dynarray.t -> 'a Stdlib.Seq.t
  val to_seq_reentrant : 'a Dynarray.t -> 'a Stdlib.Seq.t
  val to_seq_rev : 'a Dynarray.t -> 'a Stdlib.Seq.t
  val to_seq_rev_reentrant : 'a Dynarray.t -> 'a Stdlib.Seq.t
  val capacity : 'a Dynarray.t -> int
  val ensure_capacity : 'a Dynarray.t -> int -> unit
  val ensure_extra_capacity : 'a Dynarray.t -> int -> unit
  val fit_capacity : 'a Dynarray.t -> unit
  val set_capacity : 'a Dynarray.t -> int -> unit
  val reset : 'a Dynarray.t -> unit
  val unsafe_to_iarray : capacity:int -> ('a Dynarray.t -> unit) -> 'a iarray
end