sig
  module Array :
    sig
      type 'a t = 'a array
      val rev : 'a array -> 'a array
      val rev_in_place : 'a array -> unit
      val iter2 : ('-> '-> unit) -> 'a array -> 'b array -> unit
      val map2 : ('-> '-> 'c) -> 'a array -> 'b array -> 'c array
      val for_all : ('-> bool) -> 'a array -> bool
      val exists : ('-> bool) -> 'a array -> bool
      val mem : '-> 'a array -> bool
      val memq : '-> 'a array -> bool
      val find : ('-> bool) -> 'a array -> 'a
      val findi : ('-> bool) -> 'a array -> int
      val filter : ('-> bool) -> 'a array -> 'a array
      val find_all : ('-> bool) -> 'a array -> 'a array
      val partition : ('-> bool) -> 'a array -> 'a array * 'a array
      val enum : 'a array -> 'Enum.t
      val of_enum : 'Enum.t -> 'a array
      external create_float : int -> float array = "caml_make_float_vect"
      val make_float : int -> float array
      module Floatarray :
        sig
          external create : int -> floatarray = "caml_floatarray_create"
          external length : floatarray -> int = "%floatarray_length"
          external get : floatarray -> int -> float = "%floatarray_safe_get"
          external set : floatarray -> int -> float -> unit
            = "%floatarray_safe_set"
          external unsafe_get : floatarray -> int -> float
            = "%floatarray_unsafe_get"
          external unsafe_set : floatarray -> int -> float -> unit
            = "%floatarray_unsafe_set"
        end
      val for_all2 : ('-> '-> bool) -> 'a array -> 'b array -> bool
      val exists2 : ('-> '-> bool) -> 'a array -> 'b array -> bool
      external length : 'a array -> int = "%array_length"
      external get : 'a array -> int -> 'a = "%array_safe_get"
      external set : 'a array -> int -> '-> unit = "%array_safe_set"
      external make : int -> '-> 'a array = "caml_make_vect"
      external create : int -> '-> 'a array = "caml_make_vect"
      val init : int -> (int -> 'a) -> 'a array
      val make_matrix : int -> int -> '-> 'a array array
      val create_matrix : int -> int -> '-> 'a array array
      val append : 'a array -> 'a array -> 'a array
      val concat : 'a array list -> 'a array
      val sub : 'a array -> int -> int -> 'a array
      val copy : 'a array -> 'a array
      val fill : 'a array -> int -> int -> '-> unit
      val blit : 'a array -> int -> 'a array -> int -> int -> unit
      val to_list : 'a array -> 'a list
      val of_list : 'a list -> 'a array
      val iter : ('-> unit) -> 'a array -> unit
      val map : ('-> 'b) -> 'a array -> 'b array
      val iteri : (int -> '-> unit) -> 'a array -> unit
      val mapi : (int -> '-> 'b) -> 'a array -> 'b array
      val fold_left : ('-> '-> 'a) -> '-> 'b array -> 'a
      val fold_right : ('-> '-> 'a) -> 'b array -> '-> 'a
      val sort : ('-> '-> int) -> 'a array -> unit
      val stable_sort : ('-> '-> int) -> 'a array -> unit
      val fast_sort : ('-> '-> int) -> 'a array -> unit
      external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
      external unsafe_set : 'a array -> int -> '-> unit
        = "%array_unsafe_set"
      val to_seq : 'a array -> 'Stdlib.Seq.t
      val to_seqi : 'a array -> (int * 'a) Stdlib.Seq.t
      val of_seq : 'Stdlib.Seq.t -> 'a array
    end
end