sig   type float32_elt = Float32_elt   type float64_elt = Float64_elt   type int8_signed_elt = Int8_signed_elt   type int8_unsigned_elt = Int8_unsigned_elt   type int16_signed_elt = Int16_signed_elt   type int16_unsigned_elt = Int16_unsigned_elt   type int32_elt = Int32_elt   type int64_elt = Int64_elt   type int_elt = Int_elt   type nativeint_elt = Nativeint_elt   type complex32_elt = Complex32_elt   type complex64_elt = Complex64_elt   type ('a, 'b) kind =       Float32 : (float, Bigarray.float32_elt) Bigarray.kind     | Float64 : (float, Bigarray.float64_elt) Bigarray.kind     | Int8_signed : (int, Bigarray.int8_signed_elt) Bigarray.kind     | Int8_unsigned : (int, Bigarray.int8_unsigned_elt) Bigarray.kind     | Int16_signed : (int, Bigarray.int16_signed_elt) Bigarray.kind     | Int16_unsigned : (int, Bigarray.int16_unsigned_elt) Bigarray.kind     | Int32 : (int32, Bigarray.int32_elt) Bigarray.kind     | Int64 : (int64, Bigarray.int64_elt) Bigarray.kind     | Int : (int, Bigarray.int_elt) Bigarray.kind     | Nativeint : (nativeint, Bigarray.nativeint_elt) Bigarray.kind     | Complex32 : (Complex.t, Bigarray.complex32_elt) Bigarray.kind     | Complex64 : (Complex.t, Bigarray.complex64_elt) Bigarray.kind     | Char : (char, Bigarray.int8_unsigned_elt) Bigarray.kind   val float32 : (float, Bigarray.float32_elt) Bigarray.kind   val float64 : (float, Bigarray.float64_elt) Bigarray.kind   val complex32 : (Complex.t, Bigarray.complex32_elt) Bigarray.kind   val complex64 : (Complex.t, Bigarray.complex64_elt) Bigarray.kind   val int8_signed : (int, Bigarray.int8_signed_elt) Bigarray.kind   val int8_unsigned : (int, Bigarray.int8_unsigned_elt) Bigarray.kind   val int16_signed : (int, Bigarray.int16_signed_elt) Bigarray.kind   val int16_unsigned : (int, Bigarray.int16_unsigned_elt) Bigarray.kind   val int : (int, Bigarray.int_elt) Bigarray.kind   val int32 : (int32, Bigarray.int32_elt) Bigarray.kind   val int64 : (int64, Bigarray.int64_elt) Bigarray.kind   val nativeint : (nativeint, Bigarray.nativeint_elt) Bigarray.kind   val char : (char, Bigarray.int8_unsigned_elt) Bigarray.kind   val kind_size_in_bytes : ('a, 'b) Bigarray.kind -> int   type c_layout = C_layout_typ   type fortran_layout = Fortran_layout_typ   type 'a layout =       C_layout : Bigarray.c_layout Bigarray.layout     | Fortran_layout : Bigarray.fortran_layout Bigarray.layout   val c_layout : Bigarray.c_layout Bigarray.layout   val fortran_layout : Bigarray.fortran_layout Bigarray.layout   module Genarray :     sig       type ('a, 'b, 'c) t       external create :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout -> int array -> ('a, 'b, 'c) Bigarray.Genarray.t         = "caml_ba_create"       external num_dims : ('a, 'b, 'c) Bigarray.Genarray.t -> int         = "caml_ba_num_dims"       val dims : ('a, 'b, 'c) Bigarray.Genarray.t -> int array       external nth_dim : ('a, 'b, 'c) Bigarray.Genarray.t -> int -> int         = "caml_ba_dim"       external kind :         ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b) Bigarray.kind         = "caml_ba_kind"       external layout :         ('a, 'b, 'c) Bigarray.Genarray.t -> 'Bigarray.layout         = "caml_ba_layout"       val size_in_bytes : ('a, 'b, 'c) Bigarray.Genarray.t -> int       external get : ('a, 'b, 'c) Bigarray.Genarray.t -> int array -> 'a         = "caml_ba_get_generic"       external set :         ('a, 'b, 'c) Bigarray.Genarray.t -> int array -> '-> unit         = "caml_ba_set_generic"       external sub_left :         ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t ->         int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t         = "caml_ba_sub"       external sub_right :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t ->         int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t         = "caml_ba_sub"       external slice_left :         ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t ->         int array -> ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t         = "caml_ba_slice"       external slice_right :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t ->         int array -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t         = "caml_ba_slice"       external blit :         ('a, 'b, 'c) Bigarray.Genarray.t ->         ('a, 'b, 'c) Bigarray.Genarray.t -> unit = "caml_ba_blit"       external fill : ('a, 'b, 'c) Bigarray.Genarray.t -> '-> unit         = "caml_ba_fill"       val map_file :         Unix.file_descr ->         ?pos:int64 ->         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         bool -> int array -> ('a, 'b, 'c) Bigarray.Genarray.t     end   module Array1 :     sig       type ('a, 'b, 'c) t       val create :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout -> int -> ('a, 'b, 'c) Bigarray.Array1.t       external dim : ('a, 'b, 'c) Bigarray.Array1.t -> int = "%caml_ba_dim_1"       external kind :         ('a, 'b, 'c) Bigarray.Array1.t -> ('a, 'b) Bigarray.kind         = "caml_ba_kind"       external layout : ('a, 'b, 'c) Bigarray.Array1.t -> 'Bigarray.layout         = "caml_ba_layout"       val size_in_bytes : ('a, 'b, 'c) Bigarray.Array1.t -> int       external get : ('a, 'b, 'c) Bigarray.Array1.t -> int -> 'a         = "%caml_ba_ref_1"       external set : ('a, 'b, 'c) Bigarray.Array1.t -> int -> '-> unit         = "%caml_ba_set_1"       external sub :         ('a, 'b, 'c) Bigarray.Array1.t ->         int -> int -> ('a, 'b, 'c) Bigarray.Array1.t = "caml_ba_sub"       external blit :         ('a, 'b, 'c) Bigarray.Array1.t ->         ('a, 'b, 'c) Bigarray.Array1.t -> unit = "caml_ba_blit"       external fill : ('a, 'b, 'c) Bigarray.Array1.t -> '-> unit         = "caml_ba_fill"       val of_array :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout -> 'a array -> ('a, 'b, 'c) Bigarray.Array1.t       val map_file :         Unix.file_descr ->         ?pos:int64 ->         ('a, 'b) Bigarray.kind ->         'Bigarray.layout -> bool -> int -> ('a, 'b, 'c) Bigarray.Array1.t       external unsafe_get : ('a, 'b, 'c) Bigarray.Array1.t -> int -> 'a         = "%caml_ba_unsafe_ref_1"       external unsafe_set :         ('a, 'b, 'c) Bigarray.Array1.t -> int -> '-> unit         = "%caml_ba_unsafe_set_1"     end   module Array2 :     sig       type ('a, 'b, 'c) t       val create :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout -> int -> int -> ('a, 'b, 'c) Bigarray.Array2.t       external dim1 : ('a, 'b, 'c) Bigarray.Array2.t -> int         = "%caml_ba_dim_1"       external dim2 : ('a, 'b, 'c) Bigarray.Array2.t -> int         = "%caml_ba_dim_2"       external kind :         ('a, 'b, 'c) Bigarray.Array2.t -> ('a, 'b) Bigarray.kind         = "caml_ba_kind"       external layout : ('a, 'b, 'c) Bigarray.Array2.t -> 'Bigarray.layout         = "caml_ba_layout"       val size_in_bytes : ('a, 'b, 'c) Bigarray.Array2.t -> int       external get : ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> 'a         = "%caml_ba_ref_2"       external set :         ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> '-> unit         = "%caml_ba_set_2"       external sub_left :         ('a, 'b, Bigarray.c_layout) Bigarray.Array2.t ->         int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array2.t         = "caml_ba_sub"       external sub_right :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Array2.t ->         int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array2.t         = "caml_ba_sub"       val slice_left :         ('a, 'b, Bigarray.c_layout) Bigarray.Array2.t ->         int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t       val slice_right :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Array2.t ->         int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array1.t       external blit :         ('a, 'b, 'c) Bigarray.Array2.t ->         ('a, 'b, 'c) Bigarray.Array2.t -> unit = "caml_ba_blit"       external fill : ('a, 'b, 'c) Bigarray.Array2.t -> '-> unit         = "caml_ba_fill"       val of_array :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         'a array array -> ('a, 'b, 'c) Bigarray.Array2.t       val map_file :         Unix.file_descr ->         ?pos:int64 ->         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         bool -> int -> int -> ('a, 'b, 'c) Bigarray.Array2.t       external unsafe_get :         ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> 'a         = "%caml_ba_unsafe_ref_2"       external unsafe_set :         ('a, 'b, 'c) Bigarray.Array2.t -> int -> int -> '-> unit         = "%caml_ba_unsafe_set_2"     end   module Array3 :     sig       type ('a, 'b, 'c) t       val create :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         int -> int -> int -> ('a, 'b, 'c) Bigarray.Array3.t       external dim1 : ('a, 'b, 'c) Bigarray.Array3.t -> int         = "%caml_ba_dim_1"       external dim2 : ('a, 'b, 'c) Bigarray.Array3.t -> int         = "%caml_ba_dim_2"       external dim3 : ('a, 'b, 'c) Bigarray.Array3.t -> int         = "%caml_ba_dim_3"       external kind :         ('a, 'b, 'c) Bigarray.Array3.t -> ('a, 'b) Bigarray.kind         = "caml_ba_kind"       external layout : ('a, 'b, 'c) Bigarray.Array3.t -> 'Bigarray.layout         = "caml_ba_layout"       val size_in_bytes : ('a, 'b, 'c) Bigarray.Array3.t -> int       external get :         ('a, 'b, 'c) Bigarray.Array3.t -> int -> int -> int -> 'a         = "%caml_ba_ref_3"       external set :         ('a, 'b, 'c) Bigarray.Array3.t -> int -> int -> int -> '-> unit         = "%caml_ba_set_3"       external sub_left :         ('a, 'b, Bigarray.c_layout) Bigarray.Array3.t ->         int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array3.t         = "caml_ba_sub"       external sub_right :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Array3.t ->         int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array3.t         = "caml_ba_sub"       val slice_left_1 :         ('a, 'b, Bigarray.c_layout) Bigarray.Array3.t ->         int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t       val slice_right_1 :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Array3.t ->         int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array1.t       val slice_left_2 :         ('a, 'b, Bigarray.c_layout) Bigarray.Array3.t ->         int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array2.t       val slice_right_2 :         ('a, 'b, Bigarray.fortran_layout) Bigarray.Array3.t ->         int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array2.t       external blit :         ('a, 'b, 'c) Bigarray.Array3.t ->         ('a, 'b, 'c) Bigarray.Array3.t -> unit = "caml_ba_blit"       external fill : ('a, 'b, 'c) Bigarray.Array3.t -> '-> unit         = "caml_ba_fill"       val of_array :         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         'a array array array -> ('a, 'b, 'c) Bigarray.Array3.t       val map_file :         Unix.file_descr ->         ?pos:int64 ->         ('a, 'b) Bigarray.kind ->         'Bigarray.layout ->         bool -> int -> int -> int -> ('a, 'b, 'c) Bigarray.Array3.t       external unsafe_get :         ('a, 'b, 'c) Bigarray.Array3.t -> int -> int -> int -> 'a         = "%caml_ba_unsafe_ref_3"       external unsafe_set :         ('a, 'b, 'c) Bigarray.Array3.t -> int -> int -> int -> '-> unit         = "%caml_ba_unsafe_set_3"     end   external genarray_of_array1 :     ('a, 'b, 'c) Bigarray.Array1.t -> ('a, 'b, 'c) Bigarray.Genarray.t     = "%identity"   external genarray_of_array2 :     ('a, 'b, 'c) Bigarray.Array2.t -> ('a, 'b, 'c) Bigarray.Genarray.t     = "%identity"   external genarray_of_array3 :     ('a, 'b, 'c) Bigarray.Array3.t -> ('a, 'b, 'c) Bigarray.Genarray.t     = "%identity"   val array1_of_genarray :     ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b, 'c) Bigarray.Array1.t   val array2_of_genarray :     ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b, 'c) Bigarray.Array2.t   val array3_of_genarray :     ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b, 'c) Bigarray.Array3.t   val reshape :     ('a, 'b, 'c) Bigarray.Genarray.t ->     int array -> ('a, 'b, 'c) Bigarray.Genarray.t   val reshape_1 :     ('a, 'b, 'c) Bigarray.Genarray.t -> int -> ('a, 'b, 'c) Bigarray.Array1.t   val reshape_2 :     ('a, 'b, 'c) Bigarray.Genarray.t ->     int -> int -> ('a, 'b, 'c) Bigarray.Array2.t   val reshape_3 :     ('a, 'b, 'c) Bigarray.Genarray.t ->     int -> int -> int -> ('a, 'b, 'c) Bigarray.Array3.t end