sig
  val find_index : ('-> bool) -> 'a array -> int
  val find_index_from : ('-> bool) -> 'a array -> int -> int
  val ensure : ('-> bool) -> 'a array -> bool
  val ensure_range : ('-> bool) -> 'a array -> int -> int -> bool
  val swap : 'a array -> int -> int -> unit
  val rev : 'a array -> unit
  val pop : 'a array -> 'a * 'a array
  val push : '-> 'a array -> 'a array
  val munge : cmp:('-> '-> int) -> f:('-> 'a) -> 'b array -> 'b array
  val stable_munge :
    cmp:('-> '-> int) -> f:('-> 'a) -> 'b array -> 'b array
  val fast_munge :
    cmp:('-> '-> int) -> f:('-> 'a) -> 'b array -> 'b array
end