sig
  type ('a, 'b, 'c) t = ('a, 'b, 'c) Bigarray.Genarray.t
  external create :
    ('a, 'b) Extlib.ExtBigarray.Bigarray.kind ->
    'Extlib.ExtBigarray.Bigarray.layout ->
    int array -> ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t
    = "caml_ba_create"
  external num_dims :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> int
    = "caml_ba_num_dims"
  val dims : ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> int array
  external nth_dim :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> int -> int
    = "caml_ba_dim"
  external kind :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    ('a, 'b) Extlib.ExtBigarray.Bigarray.kind = "caml_ba_kind"
  external layout :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    'Extlib.ExtBigarray.Bigarray.layout = "caml_ba_layout"
  external get :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> int array -> 'a
    = "caml_ba_get_generic"
  external set :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    int array -> '-> unit = "caml_ba_set_generic"
  external sub_left :
    ('a, 'b, Extlib.ExtBigarray.Bigarray.c_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t ->
    int ->
    int ->
    ('a, 'b, Extlib.ExtBigarray.Bigarray.c_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t = "caml_ba_sub"
  external sub_right :
    ('a, 'b, Extlib.ExtBigarray.Bigarray.fortran_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t ->
    int ->
    int ->
    ('a, 'b, Extlib.ExtBigarray.Bigarray.fortran_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t = "caml_ba_sub"
  external slice_left :
    ('a, 'b, Extlib.ExtBigarray.Bigarray.c_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t ->
    int array ->
    ('a, 'b, Extlib.ExtBigarray.Bigarray.c_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t = "caml_ba_slice"
  external slice_right :
    ('a, 'b, Extlib.ExtBigarray.Bigarray.fortran_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t ->
    int array ->
    ('a, 'b, Extlib.ExtBigarray.Bigarray.fortran_layout)
    Extlib.ExtBigarray.Bigarray.Genarray.t = "caml_ba_slice"
  external blit :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> unit
    = "caml_ba_blit"
  external fill :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> '-> unit
    = "caml_ba_fill"
  val map_file :
    Unix.file_descr ->
    ?pos:int64 ->
    ('a, 'b) Extlib.ExtBigarray.Bigarray.kind ->
    'Extlib.ExtBigarray.Bigarray.layout ->
    bool -> int array -> ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t
  val iter :
    ('-> unit) ->
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> unit
  val iteri :
    ((int, [ `Read ]) Extlib.ExtArray.Array.Cap.t -> '-> unit) ->
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> unit
  val enum :
    ('a, 'b, 'c) Extlib.ExtBigarray.Bigarray.Genarray.t -> 'Extlib.Enum.t
  val map :
    ('-> 'b) ->
    ('b, 'c) Bigarray.kind ->
    ('a, 'd, 'e) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    ('b, 'c, 'e) Extlib.ExtBigarray.Bigarray.Genarray.t
  val mapi :
    ((int, [ `Read ]) Extlib.ExtArray.Array.Cap.t -> '-> 'b) ->
    ('b, 'c) Bigarray.kind ->
    ('a, 'd, 'e) Extlib.ExtBigarray.Bigarray.Genarray.t ->
    ('b, 'c, 'e) Extlib.ExtBigarray.Bigarray.Genarray.t
end