val create : ('a, 'b) kind -> 'c layout -> int -> ('a, 'b, 'c) t
val init : ('a, 'b) kind -> 'c layout -> int -> (int -> 'a) -> ('a, 'b, 'c) t
val dim : ('a, 'b, 'c) t -> int
val kind : ('a, 'b, 'c) t -> ('a, 'b) kind
val layout : ('a, 'b, 'c) t -> 'c layout
val change_layout : ('a, 'b, 'c) t -> 'd layout -> ('a, 'b, 'd) t
val size_in_bytes : ('a, 'b, 'c) t -> int
val get : ('a, 'b, 'c) t -> int -> 'a
val set : ('a, 'b, 'c) t -> int -> 'a -> unit
val sub : ('a, 'b, 'c) t -> int -> int -> ('a, 'b, 'c) t
val slice : ('a, 'b, 'c) t -> int -> ('a, 'b, 'c) Array0.t
val blit : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> unit
val fill : ('a, 'b, 'c) t -> 'a -> unit
val of_array : ('a, 'b) kind -> 'c layout -> 'a array -> ('a, 'b, 'c) t
val unsafe_get : ('a, 'b, 'c) t -> int -> 'a
val unsafe_set : ('a, 'b, 'c) t -> int -> 'a -> unit